All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Wiles, Keith" <keith.wiles@intel.com>
To: Jan Blunck <jblunck@infradead.org>
Cc: Jerin Jacob <jerin.jacob@caviumnetworks.com>,
	Shreyansh Jain <shreyansh.jain@nxp.com>,
	"dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [PATCH 3/7] eal: move virtual device probing into a bus
Date: Wed, 15 Feb 2017 21:56:45 +0000	[thread overview]
Message-ID: <A5639D7A-3964-4437-8B92-457238DEB00A@intel.com> (raw)
In-Reply-To: <CALe+Z02oSPoFFWz8bhfWrXroJ8xbnyKTSxy4Jfy+wuVM3s0yCw@mail.gmail.com>


> On Feb 15, 2017, at 2:06 PM, Jan Blunck <jblunck@infradead.org> wrote:
> 
> On Wed, Feb 15, 2017 at 7:09 PM, Wiles, Keith <keith.wiles@intel.com> wrote:
>> 
>> I guess I see this differently, meaning we modified the system to put vdev devices last only because we do not have clean way to startup the system for pdev/vdev devices. The application should be agnostic to the devices being started and the system needs to determine the correct order without a chicken and egg problem. The test-pmd application just starts from 0 to n to initialize devices, which he should be able to do in any order. It is possible the application could initialize the devices (pdev/vdev) in any order, which the current design would break if they tried to init the bonding driver first.
>> 
> 
> Apart from the usability (vdevs always first) I wonder what kind of
> usecase you are after. If I understand you correctly you want to:
> - probe the virtual devices first
> - start/configure the virtual devices last
> 
> ... and only in some cases. From what I understand this requires a
> domain specific way to model dependencies between ports, e.g. some
> standardized device arguments parsed by EAL, and combined with your
> requirement to assign the lowest port numbers for the vdev devices
> even a scheduler.

I do not think moving vdev to the front is going to really solve my use case it, as it will create more problems then solve. The real case here is if the application developer inits devices out of order then he can hit the bonding driver bug. The current solution does not really fix the problem only bandaid the problem for the common ordered case.

Do we need to solve this problem, maybe not, but it needs to be documented or we need to provide a cleaner way for the application to startup all devices in the correct order. A possible way is to have callback to the application in the correct order for him to initialize the devices, but not a great solution per say.

> 
> Maybe we could reduce complexity by doing some simple things instead:
> if you present the ports in reverse order to the users the vdev come
> first. Probably this even increases usability because the most recent
> created port is the one that the user is anyway most interested in.
> 
>> What happens if a vdev needs to be initialized before a pdev device?
>> 
> 
> This should never happen. The pdev devices offer a plain view on the
> "system", which means no topology at all. The vdev devices are devices
> that do not have a "system" representation, e.g. a library. I don't
> think the EAL should offer an alternative API to system programming in
> a way that you enumerate your PCI devices through a vdev that is
> accessing hardware through another library.
> 
>> Not saying we need to solve this problem now, but need to figure this out some how. Maybe we need a priority for pdev/vdev devices to determine init order????
>> 

Regards,
Keith

  reply	other threads:[~2017-02-15 21:56 UTC|newest]

Thread overview: 91+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-15 10:02 [PATCH 0/7] Rework vdev probing to use rte_bus infrastructure Jan Blunck
2017-02-15 10:02 ` [PATCH 1/7] eal: use different constructor priorities for initcalls Jan Blunck
2017-02-15 14:37   ` Shreyansh Jain
2017-02-15 15:05     ` Jan Blunck
2017-02-16  5:59       ` Shreyansh Jain
2017-02-15 10:02 ` [PATCH 2/7] eal: probe legacy PCI devices before other bus devices Jan Blunck
2017-02-15 14:03   ` Shreyansh Jain
2017-02-15 10:02 ` [PATCH 3/7] eal: move virtual device probing into a bus Jan Blunck
2017-02-15 14:11   ` Shreyansh Jain
2017-02-15 14:13     ` Jan Blunck
2017-02-15 14:20       ` Shreyansh Jain
2017-02-15 14:15     ` Shreyansh Jain
2017-02-15 14:22       ` Wiles, Keith
2017-02-15 14:27         ` Shreyansh Jain
2017-02-15 17:25           ` Jerin Jacob
2017-02-15 18:09             ` Wiles, Keith
2017-02-15 20:06               ` Jan Blunck
2017-02-15 21:56                 ` Wiles, Keith [this message]
2017-02-15 17:06         ` Jan Blunck
2017-02-15 17:10           ` Wiles, Keith
2017-02-15 17:22             ` Wiles, Keith
2017-02-15 10:02 ` [PATCH 4/7] eal: remove unused rte_eal_dev_init() Jan Blunck
2017-02-15 17:11   ` Ferruh Yigit
2017-02-15 10:02 ` [PATCH 5/7] eal: Refactor vdev driver probe/remove Jan Blunck
2017-02-15 10:02 ` [PATCH 6/7] eal: add struct rte_vdev_device Jan Blunck
2017-02-15 17:11   ` Ferruh Yigit
2017-02-16 15:55     ` Jan Blunck
2017-02-15 10:02 ` [PATCH 7/7] eal: make virtual bus use rte_vdev_device Jan Blunck
2017-02-15 17:11   ` Ferruh Yigit
2017-02-15 17:11 ` [PATCH 0/7] Rework vdev probing to use rte_bus infrastructure Ferruh Yigit
2017-02-20 14:17 ` [PATCH v2 0/8] " Jan Blunck
2017-02-21  6:44   ` Shreyansh Jain
2017-02-25 10:28   ` [PATCH v3 00/10] " Jan Blunck
2017-02-27 13:09     ` Jan Blunck
2017-02-28  8:48       ` Shreyansh Jain
2017-02-28  9:19         ` Jan Blunck
2017-02-28  9:28           ` Shreyansh Jain
2017-03-06 10:56     ` [PATCH v4 " Jan Blunck
2017-03-13 17:55       ` Thomas Monjalon
2017-03-27  7:47         ` Jan Blunck
2017-04-11 15:44       ` [PATCH v5 00/12] " Gaetan Rivet
2017-04-11 15:44         ` [PATCH v5 01/12] eal: probe new virtual bus after other bus devices Gaetan Rivet
2017-04-11 15:44         ` [PATCH v5 02/12] eal: move virtual device probing into a bus Gaetan Rivet
2017-04-11 15:44         ` [PATCH v5 03/12] eal: remove unused rte_eal_dev_init() Gaetan Rivet
2017-04-11 15:44         ` [PATCH v5 04/12] eal: Refactor vdev driver probe/remove Gaetan Rivet
2017-04-11 15:44         ` [PATCH v5 05/12] eal: add struct rte_vdev_device Gaetan Rivet
2017-04-11 15:44         ` [PATCH v5 06/12] eal: add virtual device name helper function Gaetan Rivet
2017-04-11 15:44         ` [PATCH v5 07/12] eal: add virtual device arguments " Gaetan Rivet
2017-04-11 15:44         ` [PATCH v5 08/12] eal: make virtual bus use rte_vdev_device Gaetan Rivet
2017-04-11 15:44         ` [PATCH v5 09/12] eal: make virtual driver probe and remove take rte_vdev_device Gaetan Rivet
2017-04-11 15:44         ` [PATCH v5 10/12] net/kni: use generic vdev for probe and remove Gaetan Rivet
2017-04-11 15:44         ` [PATCH v5 11/12] crypto: " Gaetan Rivet
2017-04-11 15:44         ` [PATCH v5 12/12] event: " Gaetan Rivet
2017-04-14 12:21         ` [PATCH v5 00/12] Rework vdev probing to use rte_bus infrastructure Thomas Monjalon
2017-03-06 10:56     ` [PATCH v4 01/10] eal: probe legacy PCI devices before other bus devices Jan Blunck
2017-03-06 10:56     ` [PATCH v4 02/10] eal: probe new virtual bus after " Jan Blunck
2017-03-13 17:42       ` Thomas Monjalon
2017-03-06 10:56     ` [PATCH v4 03/10] eal: move virtual device probing into a bus Jan Blunck
2017-03-13 17:44       ` Thomas Monjalon
2017-03-27  7:46         ` Jan Blunck
2017-03-06 10:56     ` [PATCH v4 04/10] eal: remove unused rte_eal_dev_init() Jan Blunck
2017-03-06 10:56     ` [PATCH v4 05/10] eal: Refactor vdev driver probe/remove Jan Blunck
2017-03-06 10:56     ` [PATCH v4 06/10] eal: add struct rte_vdev_device Jan Blunck
2017-03-06 10:56     ` [PATCH v4 07/10] eal: add virtual device name helper function Jan Blunck
2017-03-06 10:56     ` [PATCH v4 08/10] eal: add virtual device arguments " Jan Blunck
2017-03-06 10:56     ` [PATCH v4 09/10] eal: make virtual bus use rte_vdev_device Jan Blunck
2017-03-13 17:51       ` Thomas Monjalon
2017-03-27  7:43         ` Jan Blunck
2017-03-06 10:56     ` [PATCH v4 10/10] eal: make virtual driver probe and remove take rte_vdev_device Jan Blunck
2017-02-25 10:28   ` [PATCH v3 01/10] eal: probe legacy PCI devices before other bus devices Jan Blunck
2017-02-25 10:28   ` [PATCH v3 02/10] eal: probe new virtual bus after " Jan Blunck
2017-02-27  8:59     ` Shreyansh Jain
2017-02-27  9:09       ` Jan Blunck
2017-02-25 10:28   ` [PATCH v3 03/10] eal: move virtual device probing into a bus Jan Blunck
2017-02-25 10:28   ` [PATCH v3 04/10] eal: remove unused rte_eal_dev_init() Jan Blunck
2017-02-25 10:28   ` [PATCH v3 05/10] eal: Refactor vdev driver probe/remove Jan Blunck
2017-02-25 10:28   ` [PATCH v3 06/10] eal: add struct rte_vdev_device Jan Blunck
2017-02-25 10:28   ` [PATCH v3 07/10] eal: add virtual device name helper function Jan Blunck
2017-02-25 10:28   ` [PATCH v3 08/10] eal: add virtual device arguments " Jan Blunck
2017-02-25 10:28   ` [PATCH v3 09/10] eal: make virtual bus use rte_vdev_device Jan Blunck
2017-02-25 10:28   ` [PATCH v3 10/10] eal: make virtual driver probe and remove take rte_vdev_device Jan Blunck
2017-02-20 14:17 ` [PATCH v2 1/8] eal: use different constructor priorities for initcalls Jan Blunck
2017-02-21 12:30   ` Ferruh Yigit
2017-02-20 14:17 ` [PATCH v2 2/8] eal: probe legacy PCI devices before other bus devices Jan Blunck
2017-02-20 14:17 ` [PATCH v2 3/8] eal: move virtual device probing into a bus Jan Blunck
2017-02-20 14:17 ` [PATCH v2 4/8] eal: remove unused rte_eal_dev_init() Jan Blunck
2017-02-20 14:17 ` [PATCH v2 5/8] eal: Refactor vdev driver probe/remove Jan Blunck
2017-02-20 14:17 ` [PATCH v2 6/8] eal: add struct rte_vdev_device Jan Blunck
2017-02-20 14:17 ` [PATCH v2 7/8] eal: add virtual device name helper function Jan Blunck
2017-02-21 12:25   ` Ferruh Yigit
2017-02-20 14:17 ` [PATCH v2 8/8] eal: make virtual bus use rte_vdev_device Jan Blunck

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=A5639D7A-3964-4437-8B92-457238DEB00A@intel.com \
    --to=keith.wiles@intel.com \
    --cc=dev@dpdk.org \
    --cc=jblunck@infradead.org \
    --cc=jerin.jacob@caviumnetworks.com \
    --cc=shreyansh.jain@nxp.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.