On 7/12/22 14:28, Thomas Monjalon wrote:
12/07/2022 14:26, Thomas Monjalon:
12/07/2022 11:16, Maxime Coquelin:
On 5/18/21 09:34, Thomas Monjalon wrote:
There is a layer violation in the vDPA API which encourages to destroy
a full device with rte_dev_remove() instead of just closing the port.
The plan is to introduce a new function in 21.08, promote in 21.11,
and deprecate rte_vdpa_get_rte_device() in 21.11.
[...]
+* vdpa: The vDPA API should not try to manipulate or export
+ any ``rte_device`` object, which belongs to the bus layer.
+ The function ``rte_vdpa_get_rte_device()`` will be deprecated in 21.11,
+ when its usage will be replaced with a function ``rte_vdpa_close()``.
+ The new function should enter in 21.08 and get promoted to stable in 21.11.
+ A port close function will allow to close a single port without destroying
+ the rest of the device.
Maybe there was some changes since you posted the announce, but I don't
see why rte_vdpa_close() would be needed. It seems the only user of
rte_vdpa_get_rte_device() is the internal vDPA example, and it only use
it to get and print the device name.
You're right, it was an oversight.
So we need only to get the rte_device name.
I propose to replace
struct rte_device *rte_vdpa_get_rte_device(struct rte_vdpa_device
*vdpa_dev);
with
const char *rte_vdpa_get_name(void);
sorry, I missed a parameter :)
It would be:
const char *rte_vdpa_get_name(struct rte_vdpa_device *vdpa_dev);
Or do you prefer "rte_vdpa_get_device_name"?
rte_vdpa_get_device_name may be prefered to avoid confusion with the
socket name.
Thanks,
Maxime