All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Monjalon <thomas@monjalon.net>
To: Gaetan Rivet <gaetan.rivet@6wind.com>
Cc: dev@dpdk.org
Subject: Re: [PATCH v5 10/19] bus: introduce bus scan policies
Date: Wed, 05 Jul 2017 01:01:31 +0200	[thread overview]
Message-ID: <30613628.0y91ajZ5LG@xps> (raw)
In-Reply-To: <7052a1a87238f7a1f184b4a853c4fb73c564d3ab.1498001626.git.gaetan.rivet@6wind.com>

21/06/2017 01:35, Gaetan Rivet:
> Scan policies describe the way a bus should scan the system to search
> for possible devices.
> 
> Three flags are introduced:
>   RTE_BUS_SCAN_UNDEFINED: Configuration is irrelevant for this bus
>   RTE_BUS_SCAN_WHITELIST: Scanning should be limited to declared devices
>   RTE_BUS_SCAN_BLACKLIST: Scanning should exclude only declared devices
> 
> Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
[...]
> @@ -148,6 +164,7 @@ struct rte_bus {
>  	rte_bus_plug_t plug;         /**< Probe single device for drivers */
>  	rte_bus_unplug_t unplug;     /**< Remove single device from driver */
>  	rte_bus_parse_t parse;       /**< Parse a device name */
> +	struct rte_bus_conf conf;    /**< Bus configuration */
>  };

You are making explicit what exists currently:
	- the PCI bus has a whitelist/blacklist policy
	- the vdev bus is only a whitelist
It is a good step to deinterlace some spaghettis in the code.

For the next step, the bus should have no policy. It scans everything.
We can have a probing policy, but it should not be stored in the bus.
I suggest to add a callback in the probe function which would implement
the probing policy:
	FOREACH_DEV_IN_BUS {
		if (user_callback(dev, user_data))
			probe_one(dev);
	}

For compatibility, rte_eal_init() would call rte_bus_probe() with a
default callback which checks the whitelists and blacklists for PCI.

  reply	other threads:[~2017-07-04 23:01 UTC|newest]

Thread overview: 145+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-24 15:14 [PATCH 00/14] Generic devargs parsing Gaetan Rivet
2017-05-24 15:14 ` [PATCH 01/14] net/bonding: properly reference PCI header Gaetan Rivet
2017-05-24 15:14 ` [PATCH 02/14] net/bnxt: " Gaetan Rivet
2017-05-24 15:14 ` [PATCH 03/14] net/mlx5: " Gaetan Rivet
2017-05-24 15:14 ` [PATCH 04/14] net/e1000: " Gaetan Rivet
2017-05-24 15:14 ` [PATCH 05/14] net/ixgbe: " Gaetan Rivet
2017-05-24 15:14 ` [PATCH 06/14] net/sfc: " Gaetan Rivet
2017-05-24 15:14 ` [PATCH 07/14] app/testpmd: " Gaetan Rivet
2017-05-24 15:14 ` [PATCH 08/14] dev: device kernel module is a device attribute Gaetan Rivet
2017-05-24 15:14 ` [PATCH 09/14] bus: introduce bus scan policies Gaetan Rivet
2017-05-24 15:14 ` [PATCH 10/14] devargs: parse bus policies Gaetan Rivet
2017-05-24 15:14 ` [PATCH 11/14] devargs: generic device representation Gaetan Rivet
2017-05-24 15:14 ` [PATCH 12/14] net/virtio: do not reference device type Gaetan Rivet
2017-05-24 15:14 ` [PATCH 13/14] devargs: generic device types Gaetan Rivet
2017-05-24 15:14 ` [PATCH 14/14] devargs: introduce cleaner parsing helper Gaetan Rivet
2017-05-24 16:16 ` [PATCH v2 00/14] Generic devargs parsing Gaetan Rivet
2017-05-24 16:16   ` [PATCH v2 01/14] net/bonding: properly reference PCI header Gaetan Rivet
2017-05-24 16:16   ` [PATCH v2 02/14] net/bnxt: " Gaetan Rivet
2017-05-24 16:16   ` [PATCH v2 03/14] net/mlx5: " Gaetan Rivet
2017-05-24 16:16   ` [PATCH v2 04/14] net/e1000: " Gaetan Rivet
2017-05-24 16:16   ` [PATCH v2 05/14] net/ixgbe: " Gaetan Rivet
2017-05-24 16:16   ` [PATCH v2 06/14] net/sfc: " Gaetan Rivet
2017-05-24 16:16   ` [PATCH v2 07/14] app/testpmd: " Gaetan Rivet
2017-05-24 16:16   ` [PATCH v2 08/14] dev: device kernel module is a device attribute Gaetan Rivet
2017-05-24 16:16   ` [PATCH v2 09/14] bus: introduce bus scan policies Gaetan Rivet
2017-05-24 16:16   ` [PATCH v2 10/14] devargs: parse bus policies Gaetan Rivet
2017-05-24 16:16   ` [PATCH v2 11/14] devargs: generic device representation Gaetan Rivet
2017-05-24 16:16   ` [PATCH v2 12/14] net/virtio: do not reference device type Gaetan Rivet
2017-05-24 16:16   ` [PATCH v2 13/14] devargs: generic device types Gaetan Rivet
2017-05-24 16:16   ` [PATCH v2 14/14] devargs: introduce cleaner parsing helper Gaetan Rivet
2017-06-01 10:10   ` [PATCH v3 00/14] Generic devargs parsing Gaetan Rivet
2017-06-01 10:10     ` [PATCH v3 01/14] net/bonding: properly reference PCI header Gaetan Rivet
2017-06-01 10:10     ` [PATCH v3 02/14] net/bnxt: " Gaetan Rivet
2017-06-01 10:10     ` [PATCH v3 03/14] net/mlx5: " Gaetan Rivet
2017-06-01 10:10     ` [PATCH v3 04/14] net/e1000: " Gaetan Rivet
2017-06-01 10:10     ` [PATCH v3 05/14] net/ixgbe: " Gaetan Rivet
2017-06-01 10:10     ` [PATCH v3 06/14] net/sfc: " Gaetan Rivet
2017-06-01 10:10     ` [PATCH v3 07/14] app/testpmd: " Gaetan Rivet
2017-06-01 10:10     ` [PATCH v3 08/14] dev: device kernel module is a device attribute Gaetan Rivet
2017-06-01 10:10     ` [PATCH v3 09/14] bus: introduce bus scan policies Gaetan Rivet
2017-06-01 10:10     ` [PATCH v3 10/14] devargs: parse bus policies Gaetan Rivet
2017-06-01 10:10     ` [PATCH v3 11/14] devargs: generic device representation Gaetan Rivet
2017-06-01 10:10     ` [PATCH v3 12/14] net/virtio: do not reference device type Gaetan Rivet
2017-06-01 10:10     ` [PATCH v3 13/14] devargs: generic device types Gaetan Rivet
2017-06-01 10:10     ` [PATCH v3 14/14] devargs: introduce cleaner parsing helper Gaetan Rivet
2017-06-07 23:56     ` [PATCH v4 00/19] Generic devargs parsing Gaetan Rivet
2017-06-07 23:56       ` [PATCH v4 01/19] net/bonding: properly reference PCI header Gaetan Rivet
2017-06-07 23:56       ` [PATCH v4 02/19] net/bnxt: " Gaetan Rivet
2017-06-07 23:56       ` [PATCH v4 03/19] net/mlx5: " Gaetan Rivet
2017-06-07 23:56       ` [PATCH v4 04/19] net/e1000: " Gaetan Rivet
2017-06-07 23:56       ` [PATCH v4 05/19] net/ixgbe: " Gaetan Rivet
2017-06-14  9:33         ` Dai, Wei
2017-06-14  9:48           ` Gaëtan Rivet
2017-06-07 23:56       ` [PATCH v4 06/19] net/sfc: " Gaetan Rivet
2017-06-07 23:56       ` [PATCH v4 07/19] app/testpmd: " Gaetan Rivet
2017-06-07 23:56       ` [PATCH v4 08/19] test: " Gaetan Rivet
2017-06-07 23:56       ` [PATCH v4 09/19] dev: device kernel module is a device attribute Gaetan Rivet
2017-06-07 23:56       ` [PATCH v4 10/19] bus: introduce bus scan policies Gaetan Rivet
2017-06-07 23:56       ` [PATCH v4 11/19] devargs: parse bus policies Gaetan Rivet
2017-06-07 23:56       ` [PATCH v4 12/19] devargs: generic device representation Gaetan Rivet
2017-06-07 23:56       ` [PATCH v4 13/19] pci: update device name Gaetan Rivet
2017-06-07 23:57       ` [PATCH v4 14/19] net/virtio: do not reference device type Gaetan Rivet
2017-06-07 23:57       ` [PATCH v4 15/19] devargs: generic device types Gaetan Rivet
2017-06-07 23:57       ` [PATCH v4 16/19] devargs: introduce cleaner parsing helper Gaetan Rivet
2017-06-07 23:57       ` [PATCH v4 17/19] devargs: clone function Gaetan Rivet
2017-06-07 23:57       ` [PATCH v4 18/19] devargs: remove function Gaetan Rivet
2017-06-07 23:57       ` [PATCH v4 19/19] eal: change whitelist / blacklist command line doc Gaetan Rivet
2017-06-20 23:35       ` [PATCH v5 00/19] Generic devargs parsing Gaetan Rivet
2017-06-20 23:35         ` [PATCH v5 01/19] net/bonding: properly reference PCI header Gaetan Rivet
2017-06-20 23:35         ` [PATCH v5 02/19] net/bnxt: " Gaetan Rivet
2017-06-20 23:35         ` [PATCH v5 03/19] net/mlx5: " Gaetan Rivet
2017-06-20 23:35         ` [PATCH v5 04/19] net/e1000: " Gaetan Rivet
2017-06-20 23:35         ` [PATCH v5 05/19] net/ixgbe: " Gaetan Rivet
2017-06-20 23:35         ` [PATCH v5 06/19] net/sfc: " Gaetan Rivet
2017-06-20 23:35         ` [PATCH v5 07/19] app/testpmd: " Gaetan Rivet
2017-06-20 23:35         ` [PATCH v5 08/19] test: " Gaetan Rivet
2017-06-20 23:35         ` [PATCH v5 09/19] dev: device kernel module is a device attribute Gaetan Rivet
2017-06-20 23:35         ` [PATCH v5 10/19] bus: introduce bus scan policies Gaetan Rivet
2017-07-04 23:01           ` Thomas Monjalon [this message]
2017-06-20 23:35         ` [PATCH v5 11/19] devargs: parse bus policies Gaetan Rivet
2017-06-20 23:35         ` [PATCH v5 12/19] devargs: generic device representation Gaetan Rivet
2017-06-28  7:44           ` Thomas Monjalon
2017-06-28  8:05             ` Gaëtan Rivet
2017-06-28 14:18           ` [PATCH] examples/ethtool: explicit PCI header dependency Thomas Monjalon
2017-06-20 23:35         ` [PATCH v5 13/19] pci: update device name Gaetan Rivet
2017-06-20 23:35         ` [PATCH v5 14/19] net/virtio: do not reference device type Gaetan Rivet
2017-06-20 23:35         ` [PATCH v5 15/19] devargs: generic device types Gaetan Rivet
2017-06-20 23:35         ` [PATCH v5 16/19] devargs: introduce cleaner parsing helper Gaetan Rivet
2017-06-27 22:19           ` Thomas Monjalon
2017-06-27 23:46           ` Wiles, Keith
2017-07-04 21:50             ` Gaëtan Rivet
2017-06-20 23:35         ` [PATCH v5 17/19] devargs: clone function Gaetan Rivet
2017-06-20 23:35         ` [PATCH v5 18/19] devargs: remove function Gaetan Rivet
2017-06-20 23:35         ` [PATCH v5 19/19] eal: change whitelist / blacklist command line doc Gaetan Rivet
2017-06-26 14:58           ` Mcnamara, John
2017-07-04 23:56         ` [PATCH v6 00/19] Generic devargs parsing Gaetan Rivet
2017-07-04 23:56           ` [PATCH v6 01/19] net/bonding: properly reference PCI header Gaetan Rivet
2017-07-04 23:56           ` [PATCH v6 02/19] net/bnxt: " Gaetan Rivet
2017-07-04 23:56           ` [PATCH v6 03/19] net/mlx5: " Gaetan Rivet
2017-07-04 23:56           ` [PATCH v6 04/19] net/e1000: " Gaetan Rivet
2017-07-04 23:56           ` [PATCH v6 05/19] net/ixgbe: " Gaetan Rivet
2017-07-04 23:56           ` [PATCH v6 06/19] net/sfc: " Gaetan Rivet
2017-07-04 23:56           ` [PATCH v6 07/19] app/testpmd: " Gaetan Rivet
2017-07-04 23:56           ` [PATCH v6 08/19] test: " Gaetan Rivet
2017-07-04 23:56           ` [PATCH v6 09/19] dev: device kernel module is a device attribute Gaetan Rivet
2017-07-04 23:56           ` [PATCH v6 10/19] bus: introduce bus scan policies Gaetan Rivet
2017-07-04 23:56           ` [PATCH v6 11/19] devargs: parse bus policies Gaetan Rivet
2017-07-04 23:56           ` [PATCH v6 12/19] devargs: generic device representation Gaetan Rivet
2017-07-04 23:56           ` [PATCH v6 13/19] pci: update device name Gaetan Rivet
2017-07-04 23:56           ` [PATCH v6 14/19] net/virtio: do not reference device type Gaetan Rivet
2017-07-05  0:09             ` Gaëtan Rivet
2017-07-04 23:56           ` [PATCH v6 15/19] devargs: generic device types Gaetan Rivet
2017-07-04 23:56           ` [PATCH v6 16/19] devargs: introduce cleaner parsing helper Gaetan Rivet
2017-07-04 23:56           ` [PATCH v6 17/19] devargs: clone function Gaetan Rivet
2017-07-04 23:56           ` [PATCH v6 18/19] devargs: remove function Gaetan Rivet
2017-07-04 23:56           ` [PATCH v6 19/19] eal: change whitelist / blacklist command line doc Gaetan Rivet
2017-07-05  0:23             ` Thomas Monjalon
2017-07-05 10:27             ` Mcnamara, John
2017-07-05  0:32           ` [PATCH v6 00/19] Generic devargs parsing Thomas Monjalon
2017-07-05  7:46             ` Gaëtan Rivet
2017-07-07  0:04           ` [PATCH v7 00/17] " Gaetan Rivet
2017-07-07  0:04             ` [PATCH v7 01/17] net/bonding: properly reference PCI header Gaetan Rivet
2017-07-07  0:04             ` [PATCH v7 02/17] net/bnxt: " Gaetan Rivet
2017-07-07  0:04             ` [PATCH v7 03/17] net/mlx5: " Gaetan Rivet
2017-07-07  0:04             ` [PATCH v7 04/17] net/e1000: " Gaetan Rivet
2017-07-07  0:04             ` [PATCH v7 05/17] net/ixgbe: " Gaetan Rivet
2017-07-07  0:04             ` [PATCH v7 06/17] net/sfc: " Gaetan Rivet
2017-07-07  0:04             ` [PATCH v7 07/17] app/testpmd: " Gaetan Rivet
2017-07-07  0:04             ` [PATCH v7 08/17] test: " Gaetan Rivet
2017-07-07  0:04             ` [PATCH v7 09/17] examples/ethtool: " Gaetan Rivet
2017-07-07  0:04             ` [PATCH v7 10/17] dev: device kernel module is a device attribute Gaetan Rivet
2017-07-07  0:04             ` [PATCH v7 11/17] bus: introduce bus scan policies Gaetan Rivet
2017-07-07  0:04             ` [PATCH v7 12/17] devargs: parse bus policies Gaetan Rivet
2017-07-09 14:50               ` Thomas Monjalon
2017-07-07  0:04             ` [PATCH v7 13/17] devargs: generic device representation Gaetan Rivet
2017-07-07  0:04             ` [PATCH v7 14/17] net/virtio: do not reference device type Gaetan Rivet
2017-07-07  0:04             ` [PATCH v7 15/17] devargs: generic device types Gaetan Rivet
2017-07-07  0:04             ` [PATCH v7 16/17] devargs: introduce cleaner parsing helper Gaetan Rivet
2017-07-07  0:04             ` [PATCH v7 17/17] eal: change whitelist / blacklist command line doc Gaetan Rivet
2017-07-08 22:25               ` Thomas Monjalon
2017-07-08 22:28             ` [PATCH v7 00/17] Generic devargs parsing Thomas Monjalon
2017-07-09  8:37               ` Jan Blunck
2017-07-09 10:17                 ` Thomas Monjalon
2017-07-09 11:16                   ` Jan Blunck
2017-07-09 11:29                     ` 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=30613628.0y91ajZ5LG@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.