From: Matan Azrad <matan@mellanox.com>
To: "Ananyev, Konstantin" <konstantin.ananyev@intel.com>,
"Richardson, Bruce" <bruce.richardson@intel.com>
Cc: "Burakov, Anatoly" <anatoly.burakov@intel.com>,
Thomas Monjalon <thomas@monjalon.net>,
"dev@dpdk.org" <dev@dpdk.org>,
"pmatilai@redhat.com" <pmatilai@redhat.com>,
"david.marchand@6wind.com" <david.marchand@6wind.com>,
"Guo, Jia" <jia.guo@intel.com>,
"stephen@networkplumber.org" <stephen@networkplumber.org>,
"fbl@redhat.com" <fbl@redhat.com>
Subject: Re: [dpdk-dev] kernel binding of devices + hotplug
Date: Sun, 22 Apr 2018 11:26:53 +0000 [thread overview]
Message-ID: <AM4PR0501MB26574619E4D3B6BEB365D805D28A0@AM4PR0501MB2657.eurprd05.prod.outlook.com> (raw)
In-Reply-To: <2601191342CEEE43887BDE71AB977258AE916AF5@IRSMSX102.ger.corp.intel.com>
Hi Konstantin
From: Ananyev, Konstantin, Tuesday, April 17, 2018 2:00 PM
> Hi Matan,
> > Hi Konstantin
> > From: Ananyev, Konstantin, Tuesday, April 17, 2018 12:23 PM
> > > > Actually you say that the whitelist\blacklist mechanism is not
> > > > good enough
> > > and the binding workarounds it.
> > > > The user need to specify somehow the devices it want to run, I
> > > > think that specifying the device you want by -w option (no need to
> > > > specify what you don't want in -w case) is really simpler and
> > > > more descriptive than
> > > binding each device you want by prior process to its correct driver.
> > >
> > > But what if user changes his mind and decides to give particular
> > > device back to the kernel?
> > > Should he restart the dpdk application? In some cases it might be
> > > not desirable.
> >
> > And what is the behavior now in this case?
>
> Now we don't have hotplug support at all, so nothing to worry about, I guess
> :)
Looks like we are going to support it soon (Guo series have started it) :)
We have already fail-safe driver to support hot-plug, and a real use case to manage Azure dpdk system.
I think we must take it into account when we discuss on binding.
> > Looks like if we want to solve it we need to add mechanism to stop these
> particular devices DPDK management in any case.
>
> I am not talking about managing a device itself (start/stop/attach/detach).
> Let say you start dpdk with '-w dev -w dev2'.
> dev1 is active, traffic is going through it, etc., while dev2 is unplugged.
> Now user is about to plug dev2, though just before that he changed his mind
> and decided to give that device to kernel (or different dpdk app), ideally
> without re-starting the app.
> With just command-line support there is no option to do that.
> Same for opposite case - you started dpdk app with '-w dev1' and then
> decided that you also want that app to manage hot-pluggable dev2 too.
And what if the user wants to switch the management from a dpdk application to other user-space\dpdk application?
Here the binding method doesn't work.
Looks like you are suggesting a new feature regardless binding.
> > > > > It also allows better usability across systems, since the same
> > > > > commandline can be used on multiple systems with different
> > > > > hardware, with the actual device management rules having been
> > > > > already configured at system install/setup time in udev.
> > > >
> > > > But the user still needs to configure the udev per device for each
> > > > system, I
> > > think that command line is better.
> > > >
> > > > > > Regarding the conflict of system rules for a device, it is
> > > > > > again the user
> > > > > responsibility, whatever we will decide for the binding
> > > > > procedure of DPDK application the user needs to take it into
> > > > > account and to solve such like conflicts.
> > > > > > One option is to remove any binding rules of a DPDK device in
> > > > > > the DPDK
> > > > > application initialization and adjust the new rules by the PMDs,
> > > > > then any conflict should not disturb the user.
> > > > >
> > > > > If the device management is only managed in one place, i.e. not
> > > > > in DPDK, then there is no conflict to manage.
> > > >
> > > > I can't agree with this statement, The essence of DPDK is to give
> > > > a good alternative to managing network devices, DPDK actually
> > > > takes a lot of management area to manage by itself to do the user
> > > > life better :)
> > >
> > > From my point - it is not about managing particular device.
> > > It is about making decision who (kenel/dpdk) will manage that device.
> >
> > Doesn't the w\b mechanism comes to solve it?
>
> It does till some extent, but I don't think it is the best possible way.
Why? pros and cons against alternative ways...
> >
> > > From usability perspective it seems to me that better to keep it in
> > > one place for all devices.
> > > So udev (or any other sysadmin tool) seems like a right choice here.
> >
> > Please explain why?
> > And if you are talking about 1 place:
> > Why not to do the binding in the same place where we define which device
> to run?
>
> Not all devices are always managed by dpdk apps.
> Some of them will still be managed by kernel.
> Again there could be several independent dpdk apps running on the same
> system.
> Obviously dpdk app itself can't be a centric place to handle all that varieties.
You can use whitelist way to specify the devices for each app and that's it.
The binding to UIO driver cannot choose the specific user-space\dpdk application for the device management.
> Again - if there exists a system tool that provides that functionality - why not
> to use it?
Use it by dpdk or any other user-space application needs to manage devices.
next prev parent reply other threads:[~2018-04-22 11:26 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-13 16:31 Thomas Monjalon
2018-04-13 16:40 ` Bruce Richardson
2018-04-13 17:40 ` Burakov, Anatoly
2018-04-14 20:10 ` Matan Azrad
2018-04-16 8:31 ` Bruce Richardson
2018-04-16 16:11 ` Matan Azrad
2018-04-16 16:57 ` Stephen Hemminger
2018-04-16 17:10 ` Matan Azrad
2018-04-16 17:18 ` Stephen Hemminger
2018-04-16 17:32 ` Matan Azrad
2018-04-16 17:50 ` Thomas Monjalon
2018-04-17 9:23 ` Ananyev, Konstantin
2018-04-17 10:42 ` Matan Azrad
2018-04-17 11:00 ` Ananyev, Konstantin
2018-04-22 11:26 ` Matan Azrad [this message]
2018-04-16 9:26 ` Guo, Jia
2018-04-16 16:11 ` Matan Azrad
2018-04-15 5:01 ` Wiles, Keith
2018-04-15 1:48 ` Stephen Hemminger
2018-04-18 14:11 ` Flavio Leitner
2018-04-18 18:17 ` Stephen Hemminger
2018-04-18 18:54 ` Flavio Leitner
2018-04-19 6:04 ` Alejandro Lucero
2018-04-19 8:24 ` Thomas Monjalon
2018-04-19 8:40 ` Bruce Richardson
2018-04-19 9:47 ` 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=AM4PR0501MB26574619E4D3B6BEB365D805D28A0@AM4PR0501MB2657.eurprd05.prod.outlook.com \
--to=matan@mellanox.com \
--cc=anatoly.burakov@intel.com \
--cc=bruce.richardson@intel.com \
--cc=david.marchand@6wind.com \
--cc=dev@dpdk.org \
--cc=fbl@redhat.com \
--cc=jia.guo@intel.com \
--cc=konstantin.ananyev@intel.com \
--cc=pmatilai@redhat.com \
--cc=stephen@networkplumber.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).