DPDK patches and discussions
 help / color / mirror / Atom feed
From: Matan Azrad <matan@nvidia.com>
To: Stephen Hemminger <stephen@networkplumber.org>
Cc: "matan@mellanox.com" <matan@mellanox.com>,
	"grive@u246.net" <grive@u246.net>, "dev@dpdk.org" <dev@dpdk.org>,
	Raslan Darawsheh <rasland@nvidia.com>
Subject: Re: [dpdk-dev] [PATCH] net/vdev_netvsc: handle removal of associated pci device
Date: Mon, 7 Sep 2020 08:09:27 +0000
Message-ID: <MW2PR12MB2492E2C60BCBA327C194731ADF280@MW2PR12MB2492.namprd12.prod.outlook.com> (raw)
In-Reply-To: <20200906113309.4a320400@hermes.lan>

Hi Stephen

From: Stephen Hemminger:
> On Sun, 6 Sep 2020 12:38:18 +0000
> Matan Azrad <matan@nvidia.com> wrote:
> 
> > Hi Stephen
> >
> > From: Stephen Hemminger:
> > > The vdev_netvsc was not detecting when the associated PCI device
> > > (SRIOV) was removed. Because of that it would keep feeding the same
> > > (removed) device to failsafe PMD which would then unsuccessfully try
> > > and probe for it.
> > >
> > > Change to use a mark/sweep method to detect that PCI device was
> > > removed, and also only tell failsafe about new PCI devices.
> > > Vdev_netvsc does not have to keep stuffing the pipe with the same
> > > already existing PCI device.
> >
> > As I know, the vdev_netvsc driver doesn't call to failsafe if the PCI device is
> not detected by the readlink command(considered as removed)...
> > Am I missing something?
> 
> The original code is broken because ctx_yield is not cleared, it keeps sending
> the same value.

Looking on the code again, It looks like ctx->yield has no effect on the next pipe write,
It is just used for log.

After the PCI interface matching to the netvsc interface, the pipe write is triggered only if the readlink commands success to see the plugged-in PCI device:
readlink /sys/class/net/[iface]/device/subsystem shows "pci"
readlink /sys/class/net/[iface]/device shows the pci device ID.

So, the assumption is when the above readlink failed on the interface the device is removed(plugged-out) and the fd write will not happen.

The code will continue to retry probe again and again until success only for plugged-in pci device matched the netvsc device.

> It looks like device removal and add was never tested.

This is basic test we have to test plug-in plug-out and it passed every day in the last years.

Maybe something new and special in your setup?

> If you test removal you will see that vdev_netvsc:
>  1. Sends same PCI device repeatedly to failsafe (every alarm call)
>     This is harmless, but useless.
>  2. When device is removed, keeps doing #1

  reply	other threads:[~2020-09-07  8:09 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-19 17:53 Stephen Hemminger
2020-09-06  8:11 ` Long Li
2020-09-06 12:38 ` Matan Azrad
2020-09-06 18:33   ` Stephen Hemminger
2020-09-07  8:09     ` Matan Azrad [this message]
2020-09-15  4:53       ` Long Li
2020-09-15  7:00         ` Matan Azrad
2020-09-25 20:30           ` Long Li
2020-10-19 22:33             ` Thomas Monjalon
2020-10-19 22:36               ` Thomas Monjalon
2020-10-20  9:13                 ` Gaëtan Rivet

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=MW2PR12MB2492E2C60BCBA327C194731ADF280@MW2PR12MB2492.namprd12.prod.outlook.com \
    --to=matan@nvidia.com \
    --cc=dev@dpdk.org \
    --cc=grive@u246.net \
    --cc=matan@mellanox.com \
    --cc=rasland@nvidia.com \
    --cc=stephen@networkplumber.org \
    /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