From: "Andrzej Ostruszka [C]" <aostruszka@marvell.com> To: "Varghese, Vipin" <vipin.varghese@intel.com>, "dev@dpdk.org" <dev@dpdk.org>, Thomas Monjalon <thomas@monjalon.net> Subject: Re: [dpdk-dev] [PATCH 1/4] lib: introduce IF Proxy library Date: Wed, 8 Apr 2020 18:13:19 +0000 Message-ID: <d7486348-3fd6-a9c6-682f-7c6005216660@marvell.com> (raw) In-Reply-To: <4C9E0AB70F954A408CC4ADDBF0F8FA7D4D49CD1D@BGSMSX101.gar.corp.intel.com> On 4/8/20 5:04 AM, Varghese, Vipin wrote: > Hi Andrzej, > > Thanks for the reply. Please find explanations for some of the queries > > snipped >>>> +uint64_t rte_ifpx_events_available(void) { >>>> + /* All events are supported on Linux. */ >>>> + return (1ULL << RTE_IFPX_NUM_EVENTS) - 1; >>> Should we give the available from the used count? >> >> I'm not sure I follow what you wanted to ask. I want to return bitmask with >> each bit being lit for every event type. I could go with or'ing of all (1ULL << >> RTE_IFPX_MAC_CHANGE) | (1ULL << RTE_IFPX_MTU_CHANGE) ... >> but deemed that this would be simpler. > > I assume the function `rte_ifpx_events_available` returns current available events. That is at time t0, if we have used 3 events the return of function will give back ` return ((1ULL << RTE_IFPX_NUM_EVENTS) - 1 - ifpx_consumed_events);`. It returns events available on given platform - static thing, dependent on the implementation of IF Proxy (currently only Linux supported though - and it supports all events defined so far). >>>> + >>>> +void rte_ifpx_callbacks_unregister(void) >>>> +{ >>>> + rte_spinlock_lock(&ifpx_lock); >>>> + memset(&ifpx_callbacks.cbs, 0, sizeof(ifpx_callbacks.cbs)); >>> What would happen to pending events, are agreeing to drop all? >> >> ifpx_events_notify() is called under the same lock. So either someone calls this >> unregister and then notify will not find any callback or the other way. Note >> that notify drops the lock for the time of callback call (to allow modifications >> from the callback) but the pointer is first copied - so the behaviour would be as >> if the unregister was called later. >> >> I'm not sure I answered your question though - if not then please ask again >> with some more details. > > Let us assume we have 3 callbacks to service for event_a namely cb-1, cb-2, and cb-3. So tail-list cb-1->cb-2->cb3, the user invoked unregister. What will happen to the 3 events? Should we finish the 3 callback handler and then remove. Hhhmmm, have you been reviewing latest version? With the introduction of event queues there is now only one global set of callbacks (no list), so only 1 callback for each possible event type. >>> Assuming all the events are executed `if and only if` the current process if >> Primary? If it is secondary for physical interface certain `rte_eth_api` will fail. >> Can we have check the events are processed for primary only? >> >> Yes that was my assumption however at the moment I'm using: >> - rte_eth_iterator_init/next/cleanup() >> - rte_eth_dev_info_get() >> - rte_eth_dev_get_mtu() >> - rte_eth_macaddr_get() >> - rte_eth_dev_mac_addr_add() >> - rte_dev_probe/remove() >> >> Is there a problem with these? If it is, then I'll think about adding check for >> secondary. > Based on my limited testing with PF and VF, certain functions works and other do not. In case of TUN PMD set/get mac_addr is not present. TUN is not being used (for that reason) - only TAP. I could add check for PRIMARY, but that way I would be artificially excluding cases where that would work without the change. So for now I intend to leave things like they are and address the actual problem (if it pops up). Note also that I'm not checking errors for the mac_get/set so if given functionality is not supported nothing will happen. With regards Andrzej Ostruszka
next prev parent reply other threads:[~2020-04-08 18:13 UTC|newest] Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-03-06 16:41 [dpdk-dev] [PATCH 0/4] Introduce IF proxy library Andrzej Ostruszka 2020-03-06 16:41 ` [dpdk-dev] [PATCH 1/4] lib: introduce IF Proxy library Andrzej Ostruszka 2020-03-31 12:36 ` Harman Kalra 2020-03-31 15:37 ` Andrzej Ostruszka [C] 2020-04-01 5:29 ` Varghese, Vipin 2020-04-01 20:08 ` Andrzej Ostruszka [C] 2020-04-08 3:04 ` Varghese, Vipin 2020-04-08 18:13 ` Andrzej Ostruszka [C] [this message] 2020-03-06 16:41 ` [dpdk-dev] [PATCH 2/4] if_proxy: add library documentation Andrzej Ostruszka 2020-03-06 16:41 ` [dpdk-dev] [PATCH 3/4] if_proxy: add simple functionality test Andrzej Ostruszka 2020-03-06 16:41 ` [dpdk-dev] [PATCH 4/4] if_proxy: add example application Andrzej Ostruszka 2020-03-06 17:17 ` [dpdk-dev] [PATCH 0/4] Introduce IF proxy library Andrzej Ostruszka 2020-03-10 11:10 ` [dpdk-dev] [PATCH v2 " Andrzej Ostruszka 2020-03-10 11:10 ` [dpdk-dev] [PATCH v2 1/4] lib: introduce IF Proxy library Andrzej Ostruszka 2020-07-02 0:34 ` Stephen Hemminger 2020-07-07 20:13 ` Andrzej Ostruszka [C] 2020-07-08 16:07 ` Morten Brørup 2020-07-09 8:43 ` Andrzej Ostruszka [C] 2020-07-22 0:40 ` Thomas Monjalon 2020-07-22 8:45 ` Jerin Jacob 2020-07-22 8:56 ` Thomas Monjalon 2020-07-22 9:09 ` Jerin Jacob 2020-07-22 9:27 ` Thomas Monjalon 2020-07-22 9:54 ` Jerin Jacob 2020-07-23 14:09 ` [dpdk-dev] [EXT] " Andrzej Ostruszka [C] 2020-03-10 11:10 ` [dpdk-dev] [PATCH v2 2/4] if_proxy: add library documentation Andrzej Ostruszka 2020-03-10 11:10 ` [dpdk-dev] [PATCH v2 3/4] if_proxy: add simple functionality test Andrzej Ostruszka 2020-03-10 11:10 ` [dpdk-dev] [PATCH v2 4/4] if_proxy: add example application Andrzej Ostruszka 2020-03-25 8:08 ` [dpdk-dev] [PATCH v2 0/4] Introduce IF proxy library David Marchand 2020-03-25 11:11 ` Morten Brørup 2020-03-26 17:42 ` Andrzej Ostruszka 2020-04-02 13:48 ` Andrzej Ostruszka [C] 2020-04-03 17:19 ` Thomas Monjalon 2020-04-03 19:09 ` Jerin Jacob 2020-04-03 21:18 ` Morten Brørup 2020-04-03 21:57 ` Thomas Monjalon 2020-04-04 10:18 ` Jerin Jacob 2020-04-10 10:41 ` Morten Brørup 2020-04-04 18:30 ` Andrzej Ostruszka [C] 2020-04-04 19:58 ` Thomas Monjalon 2020-04-10 10:03 ` Morten Brørup 2020-04-10 12:28 ` Jerin Jacob 2020-03-26 12:41 ` Andrzej Ostruszka 2020-03-30 19:23 ` Andrzej Ostruszka 2020-04-03 21:42 ` Thomas Monjalon 2020-04-04 18:07 ` Andrzej Ostruszka [C] 2020-04-04 19:51 ` Thomas Monjalon 2020-04-16 16:11 ` [dpdk-dev] [PATCH " Stephen Hemminger 2020-04-16 16:49 ` Jerin Jacob 2020-04-16 17:04 ` Stephen Hemminger 2020-04-16 17:26 ` Andrzej Ostruszka [C] 2020-04-16 17:27 ` Jerin Jacob 2020-04-16 17:12 ` Andrzej Ostruszka [C] 2020-04-16 17:19 ` Stephen Hemminger 2020-05-04 8:53 ` [dpdk-dev] [PATCH v3 " Andrzej Ostruszka 2020-05-04 8:53 ` [dpdk-dev] [PATCH v3 1/4] lib: introduce IF Proxy library Andrzej Ostruszka 2020-05-04 8:53 ` [dpdk-dev] [PATCH v3 2/4] if_proxy: add library documentation Andrzej Ostruszka 2020-05-04 8:53 ` [dpdk-dev] [PATCH v3 3/4] if_proxy: add simple functionality test Andrzej Ostruszka 2020-05-04 8:53 ` [dpdk-dev] [PATCH v3 4/4] if_proxy: add example application Andrzej Ostruszka 2020-06-22 9:21 ` [dpdk-dev] [PATCH v4 0/4] Introduce IF proxy library Andrzej Ostruszka 2020-06-22 9:21 ` [dpdk-dev] [PATCH v4 1/4] lib: introduce IF Proxy library Andrzej Ostruszka 2020-06-22 9:21 ` [dpdk-dev] [PATCH v4 2/4] if_proxy: add library documentation Andrzej Ostruszka 2020-06-22 9:21 ` [dpdk-dev] [PATCH v4 3/4] if_proxy: add simple functionality test Andrzej Ostruszka 2020-06-22 9:21 ` [dpdk-dev] [PATCH v4 4/4] if_proxy: add example application Andrzej Ostruszka
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=d7486348-3fd6-a9c6-682f-7c6005216660@marvell.com \ --to=aostruszka@marvell.com \ --cc=dev@dpdk.org \ --cc=thomas@monjalon.net \ --cc=vipin.varghese@intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
DPDK patches and discussions This inbox may be cloned and mirrored by anyone: git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \ dev@dpdk.org public-inbox-index dev Example config snippet for mirrors. Newsgroup available over NNTP: nntp://inbox.dpdk.org/inbox.dpdk.dev AGPL code for this site: git clone https://public-inbox.org/public-inbox.git