From: Yuanhan Liu <yuanhan.liu@linux.intel.com>
To: Thomas Monjalon <thomas.monjalon@6wind.com>
Cc: Bruce Richardson <bruce.richardson@intel.com>,
dev@dpdk.org, Ferruh Yigit <ferruh.yigit@intel.com>
Subject: Re: [PATCH v3 1/6] ethdev: fix port data mismatched in multiple process model
Date: Fri, 6 Jan 2017 22:19:37 +0800 [thread overview]
Message-ID: <20170106141937.GZ21228@yliu-dev.sh.intel.com> (raw)
In-Reply-To: <16135200.seSVc815in@xps13>
On Fri, Jan 06, 2017 at 02:12:48PM +0100, Thomas Monjalon wrote:
> 2017-01-06 18:16, Yuanhan Liu:
> > +static void
> > +eth_dev_init(struct rte_eth_dev *eth_dev, uint8_t port_id, const char *name)
> > +{
> > + eth_dev->data = &rte_eth_dev_data[port_id];
> > + eth_dev->attached = DEV_ATTACHED;
> > + eth_dev_last_created_port = port_id;
> > + nb_ports++;
> > +
> > + if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
> > + snprintf(eth_dev->data->name, sizeof(eth_dev->data->name),
> > + "%s", name);
> > + eth_dev->data->port_id = port_id;
> > + }
>
> Why not keeping eth_dev->data filling in rte_eth_dev_allocate?
I could do that.
>
> > +}
> > +
> > struct rte_eth_dev *
> > rte_eth_dev_allocate(const char *name)
> > {
> > @@ -211,12 +226,41 @@ struct rte_eth_dev *
> > }
> >
> > eth_dev = &rte_eth_devices[port_id];
>
> Why not moving this line in eth_dev_init?
Ditto.
>
> > - eth_dev->data = &rte_eth_dev_data[port_id];
> > - snprintf(eth_dev->data->name, sizeof(eth_dev->data->name), "%s", name);
> > - eth_dev->data->port_id = port_id;
> > - eth_dev->attached = DEV_ATTACHED;
> > - eth_dev_last_created_port = port_id;
> > - nb_ports++;
> > + eth_dev_init(eth_dev, port_id, name);
> > +
> > + return eth_dev;
> > +}
>
> [...]
> > +/*
> > + * Attach to a port already registered by the primary process, which
> > + * makes sure that the same device would have the same port id both
> > + * in the primary and secondary process.
> > + */
> > +static struct rte_eth_dev *
> > +eth_dev_attach_secondary(const char *name)
>
> OK, good description
>
> [...]
> > - eth_dev = rte_eth_dev_allocate(ethdev_name);
> > - if (eth_dev == NULL)
> > - return -ENOMEM;
> > + if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
> > + eth_dev = rte_eth_dev_allocate(ethdev_name);
> > + if (eth_dev == NULL)
> > + return -ENOMEM;
>
> You could merge here the rest of primary init below.
Oh, right.
>
> > + } else {
> > + eth_dev = eth_dev_attach_secondary(ethdev_name);
> > + if (eth_dev == NULL) {
> > + /*
> > + * if we failed to attach a device, it means
> > + * the device is skipped, due to some errors.
> > + * Take virtio-net device as example, it could
> > + * due to the device is managed by virtio-net
> > + * kernel driver. For such case, we return a
> > + * positive value, to let EAL skip it as well.
> > + */
>
> I'm not sure we need an example here.
> Is the virtio case special?
Not quite sure, likely not. I was thinking a detailed example helps
people to understand better. I could remove it if you think it's
not necessary.
> nit: "it could due" looks to be a typo
Oops.
--yliu
next prev parent reply other threads:[~2017-01-06 14:17 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-22 7:18 [PATCH 0/3] net/virtio: a temp to fix few multiple process issues Yuanhan Liu
2016-12-22 7:18 ` [PATCH 1/3] net/virtio: fix crash for secondary process Yuanhan Liu
2016-12-22 7:18 ` [PATCH 2/3] net/virtio: fix multiple process support Yuanhan Liu
2016-12-22 7:18 ` [PATCH 3/3] net/virtio: fix wrong Rx/Tx method for secondary process Yuanhan Liu
2016-12-22 7:23 ` [PATCH 0/3] net/virtio: a temp to fix few multiple process issues Yuanhan Liu
2016-12-22 8:29 ` Xu, Qian Q
2016-12-28 11:02 ` [PATCH v2 0/6] net/virtio: fix several " Yuanhan Liu
2016-12-28 11:02 ` [PATCH v2 1/6] ethdev: fix port data mismatched in multiple process model Yuanhan Liu
2017-01-04 17:34 ` Thomas Monjalon
2017-01-05 6:25 ` Yuanhan Liu
2016-12-28 11:02 ` [PATCH v2 2/6] net/virtio: fix wrong Rx/Tx method for secondary process Yuanhan Liu
2016-12-28 11:02 ` [PATCH v2 3/6] net/virtio: store PCI operators pointer locally Yuanhan Liu
2016-12-28 11:02 ` [PATCH v2 4/6] net/virtio: store IO port info locally Yuanhan Liu
2016-12-28 11:02 ` [PATCH v2 5/6] net/virtio: fix multiple process support Yuanhan Liu
2016-12-28 11:14 ` Yuanhan Liu
2016-12-28 11:02 ` [PATCH v2 6/6] net/virtio: remove dead structure field Yuanhan Liu
2017-01-06 10:16 ` [PATCH v3 0/6] net/virtio: fix several multiple process issues Yuanhan Liu
2017-01-06 10:16 ` [PATCH v3 1/6] ethdev: fix port data mismatched in multiple process model Yuanhan Liu
2017-01-06 13:12 ` Thomas Monjalon
2017-01-06 14:19 ` Yuanhan Liu [this message]
2017-01-09 7:50 ` [PATCH v4] " Yuanhan Liu
2017-01-09 17:08 ` Thomas Monjalon
2017-01-10 14:33 ` Yuanhan Liu
2017-01-11 13:32 ` Thomas Monjalon
2017-01-12 3:10 ` Yuanhan Liu
2017-01-19 18:39 ` Ferruh Yigit
2017-01-20 7:58 ` Yuanhan Liu
2017-01-06 10:16 ` [PATCH v3 2/6] net/virtio: fix wrong Rx/Tx method for secondary process Yuanhan Liu
2017-01-08 23:15 ` Stephen Hemminger
2017-01-09 5:19 ` Yuanhan Liu
2017-01-09 8:02 ` Xu, Qian Q
2017-01-09 8:05 ` Wei, FangfangX
2017-01-06 10:16 ` [PATCH v3 3/6] net/virtio: store PCI operators pointer locally Yuanhan Liu
2017-01-06 10:16 ` [PATCH v3 4/6] net/virtio: store IO port info locally Yuanhan Liu
2017-01-06 10:16 ` [PATCH v3 5/6] net/virtio: fix multiple process support Yuanhan Liu
2017-01-06 10:16 ` [PATCH v3 6/6] net/virtio: remove dead structure field Yuanhan Liu
2017-01-12 6:02 ` Yuanhan Liu
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=20170106141937.GZ21228@yliu-dev.sh.intel.com \
--to=yuanhan.liu@linux.intel.com \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
--cc=thomas.monjalon@6wind.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
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.