Thread (145 messages) 145 messages, 6 authors, 2017-07-09

Re: [PATCH v5 10/19] bus: introduce bus scan policies

From: Thomas Monjalon <hidden>
Date: 2017-07-04 23:01:33

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 <redacted>
[...]
quoted hunk ↗ jump to hunk
@@ -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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help