Thread (123 messages) 123 messages, 7 authors, 2017-07-08

Re: [PATCH v5 5/7] bus: add helper to find a bus from a device name

From: Thomas Monjalon <hidden>
Date: 2017-06-29 08:21:57

29/06/2017 09:56, Jan Blunck:
On Wed, Jun 28, 2017 at 7:03 PM, Thomas Monjalon [off-list ref] wrote:
quoted
27/06/2017 20:55, Jan Blunck:
quoted
On Wed, Jun 21, 2017 at 1:30 AM, Gaetan Rivet [off-list ref] wrote:
quoted
 /**
+ * Find a bus capable of identifying a device.
+ *
+ * @param str
+ *   A device identifier (PCI address, virtual PMD name, ...).
+ *
+ * @return
+ *   A valid bus handle if found.
+ *   NULL if no bus is able to parse this device.
+ */
+struct rte_bus *rte_bus_from_dev(const char *str);
I still don't agree with this. The bus name should be passed
explicitly by the user of the API.

NAK.
Please explain why you think the bus name should be explicit.
If the bus is ambiguous, it can be explicited by the user.

I see some good benefits in being tolerant with the bus/device
representation. It provides a smooth transition to the bus model.
We build libraries. The applications we build with the help of those
libraries get notified by the OS about device events. Those devices
are chields of their parent bus. At the time the event is fired the OS
already knows about:

- the bus name (parent)
- the device name (child)
- additional event parameters (environment)

Blame me that I probably spent too much time with Kay Sievers and
GregKH to understand that device naming is easy to get wrong. Just
look at the hyperv device names and how they switched to the UUID
scheme. I don't think that hyperv is the only bus that uses UUID as
device identification. We should not codify a policy of how to deduce
a bus name from a given device name if that is knowledge that is
already present externally. Otherwise I fear this part of the EAL will
be subject to constant churn.
OK I understand your point that it is a weak identification.
It is as weak as what we have currently.
It works at least when we have only PCI and VDEV.
However it does not prevent to use a strong identification with
bus and parent names.
I see rte_bus_from_dev() as a helper to transition to the new strong
identification model. So we could remove it in few releases.
Does it make sense?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help