All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ferruh Yigit <ferruh.yigit@intel.com>
To: kumaraparameshwaran rathinavel <kumaraparamesh92@gmail.com>
Cc: Thomas Monjalon <thomas@monjalon.net>,
	"Wiles, Keith" <keith.wiles@intel.com>, <dev@dpdk.org>,
	Kumara Parameshwaran <kparameshwar@vmware.com>,
	Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>,
	David Marchand <david.marchand@redhat.com>
Subject: Re: [PATCH] net/tap: Bug fix to populate fds in secondary process
Date: Tue, 18 Jan 2022 12:12:34 +0000	[thread overview]
Message-ID: <923832f2-c8a0-84e9-360c-e79549a480a6@intel.com> (raw)
In-Reply-To: <CANxNyatvCNNC35idXfqSZekE-z6H2LCchXFCuzYKcCAhqEyBWw@mail.gmail.com>

On 1/18/2022 11:21 AM, kumaraparameshwaran rathinavel wrote:

Comment moved down.

Please don't top post, it makes very hard to follow the discussion and bad
for archives to visit discussion later.

> 
> On Tue, Jan 18, 2022 at 3:17 PM Ferruh Yigit <ferruh.yigit@intel.com <mailto:ferruh.yigit@intel.com>> wrote:
> 
>     On 1/17/2022 6:33 PM, Thomas Monjalon wrote:
>      > 17/01/2022 19:28, Ferruh Yigit:
>      >>> +   ret = rte_eth_dev_get_port_by_name(request_param->port_name, &port_id);
>      >>> +   if (ret) {
>      >>> +           TAP_LOG(ERR, "Failed to get port id for %s",
>      >>> +                   request_param->port_name);
>      >>> +           return -1;
>      >>> +   }
>      >>> +   dev = &rte_eth_devices[port_id];
>      >>
>      >> Since this is not really related with your patch, I want to have a separate thread for it.
>      >>
>      >> It is not good to access the 'rte_eth_devices' global variable directly from a driver, that
>      >> is error prone.
>      >>
>      >> Btw, what 'peer' supposed to contain?
>      >>
>      >> It can be solved by adding an internal API, only for drivers to get eth_dev from the name,
>      >> like: 'rte_eth_dev_get_by_name()'.
>      >> This way a few other usage can be converted to this API.
>      >>
>      >> @Thomas and @Andrew what do you think about the new API proposal?
>      >
>      > It looks similar to rte_eth_dev_get_port_by_name() which returns a port_id.
> 
>     Exactly, but get eth_dev directly for drivers. For drivers no need to work with port_id
>     handler, they can use eth_dev directly.
> 
>     Another solution can be an getter function for drivers, which gets port_id and returns
>     the eth_dev.
> 
>      > It is a bit strange for an ethdev driver to not have access to its own ethdev struct.
>      > Isn't there something broken in the logic?
>      >
> 
>     This is callback function between primary and secondary applications sync. So port name
>     will be same for both, but eth_dev will be different and port_id may be different.
>     Driver finds its own eth_dev from the shared port name.
> 

> Just wanted to bring it to your attention,
> 
> In Mellanox driver there is a requirement to exchange fds between primary and secondary and similar usage is seen, the primary sends the port_id and the secondary refers to the rte_eth_devices in the driver,
> The functions are
>             - mlx5_mp_secondary_handle in secondary
>             - mlx5_mp_req_start_rxtx in primary which is invoked from mlx5_dev_start.
> 
> In my implementation I have used the name and invoked get_port_by_name, I can also pass the port_id from the primary to make it uniform. So with similar usage in Mellanox is there a problem there as well on referring to the rte_eth_devices from the PMD ?
> 

It would be same, still will be accessing to the 'rte_eth_devices'.
That is why a new API for drivers may help.

  reply	other threads:[~2022-01-18 12:12 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-26  4:15 [PATCH] net/tap: Bug fix to populate fds in secondary process Kumara Parameshwaran
2022-01-17 18:22 ` Ferruh Yigit
2022-01-18  4:39   ` Kumara Parameshwaran
2022-01-18  9:10     ` Ferruh Yigit
2022-01-18 10:52       ` kumaraparameshwaran rathinavel
2022-01-18 12:14         ` Ferruh Yigit
2022-01-17 18:28 ` Ferruh Yigit
2022-01-17 18:33   ` Thomas Monjalon
2022-01-18  9:47     ` Ferruh Yigit
2022-01-18 11:21       ` kumaraparameshwaran rathinavel
2022-01-18 12:12         ` Ferruh Yigit [this message]
2022-01-18 12:31           ` Thomas Monjalon
2022-01-17 22:16 ` Stephen Hemminger
2022-01-18  5:22   ` Kumara Parameshwaran
2022-01-18 16:21     ` Stephen Hemminger
2022-01-19  4:33       ` kumaraparameshwaran rathinavel
2022-01-19  4:51         ` Stephen Hemminger
  -- strict thread matches above, loose matches on Subject: below --
2022-01-21  4:29 Kumara Parameshwaran
2022-01-24  9:47 ` Ferruh Yigit
2022-01-20 13:38 Kumara Parameshwaran
2022-01-20 13:26 Kumara Parameshwaran
2022-01-20 11:12 Kumara Parameshwaran
2022-01-20 15:49 ` Stephen Hemminger
2022-01-24  9:32 ` Ferruh Yigit
2021-11-25 12:25 Kumara Parameshwaran
2021-11-25 12:23 Kumara Parameshwaran
2021-11-25 12:04 Kumara Parameshwaran

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=923832f2-c8a0-84e9-360c-e79549a480a6@intel.com \
    --to=ferruh.yigit@intel.com \
    --cc=andrew.rybchenko@oktetlabs.ru \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=keith.wiles@intel.com \
    --cc=kparameshwar@vmware.com \
    --cc=kumaraparamesh92@gmail.com \
    --cc=thomas@monjalon.net \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.