All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Monjalon <thomas@monjalon.net>
To: "Gaëtan Rivet" <gaetan.rivet@6wind.com>
Cc: dev@dpdk.org
Subject: Re: [PATCH] net/failsafe: do not probe device if plugged out
Date: Thu, 13 Jul 2017 08:52:33 +0200	[thread overview]
Message-ID: <1868638.SUpGZpUFpc@xps> (raw)
In-Reply-To: <20170712203957.GG11154@bidouze.vm.6wind.com>

12/07/2017 22:39, Gaëtan Rivet:
> Hi Thomas,
> 
> Nice idea. A few remarks below:
> 
> On Wed, Jul 12, 2017 at 08:28:12PM +0200, Thomas Monjalon wrote:
> >  	FOREACH_SUBDEV(sdev, i, dev) {
> >  		if (sdev->state != DEV_PARSED)
> >  			continue;
> >  		da = &sdev->devargs;
> > +
> 
> Superfluous line.

I don't think so :) It is isolating the "skip" block with its comment.

> > +		/* skip plugged out devices */
> > +		if (! first_init
> > +				&& sdev->cmdline == NULL
> > +				&& strcmp(da->bus->name, "vdev") != 0) {
> 
> Use first_init == false instead of negation.
> && should be at the end of the line instead of the start of the next
> one.

Yes

> Indentation is wrong.

No, the coding style is to put 2 tabs for continuation lines.

> > +			da->bus->scan();
> > +			if (bus->find_device(NULL, cmp_dev_name, da->name) == NULL)
> > +				continue; /* device not found */
> 
> da->bus->find_device instead of bus->find_device.
> This function cannot find the device back currently on the PCI bus,
> blocking the plugging of VF.
> 
> The PCI bus will scan the VF while no rte_devargs exists to
> describe it within the global list. If the device exists, it will
> detect it, allocate it and then set its name.
> Without any rte_devargs, the name of a PCI device falls back to its
> canonical name (DomBDF instead of BDF). The name comparison with
> da->name can only succeed if the slave was declared using the DomBDF
> format.
> 
> The fix is to do a deep copy of the rte_devargs (the API has been
> sent previously with the rte_devargs rework but I have since removed
> it) and insert it using rte_eal_devargs_insert(). This is essentially
> the solution I used for the rte_eal_hotplug_add() fix[1].
> 
> The alternative fix is to propose an API for buses to transform device
> names into their canonical form on demand... And it would certainly only
> be useful for the PCI bus.
> 
> The issue is discussed there:
> [1]: http://dpdk.org/ml/archives/dev/2017-July/071155.html

OK, I was not aware of this exact issue.
So I will wait above fix.

  reply	other threads:[~2017-07-13  6:52 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-12 18:28 [PATCH] net/failsafe: do not probe device if plugged out Thomas Monjalon
2017-07-12 20:39 ` Gaëtan Rivet
2017-07-13  6:52   ` Thomas Monjalon [this message]
2017-07-13  8:14     ` Gaëtan Rivet
2017-07-13  9:17       ` Thomas Monjalon
2017-07-18  8:39         ` Ferruh Yigit
2017-07-18 20:49           ` Thomas Monjalon

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=1868638.SUpGZpUFpc@xps \
    --to=thomas@monjalon.net \
    --cc=dev@dpdk.org \
    --cc=gaetan.rivet@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.