[dpdk-dev,6/7] eal: add struct rte_vdev_device
Checks
Commit Message
This adds the rte_vdev_device structure which embeds a generic rte_device.
Signed-off-by: Jan Blunck <jblunck@infradead.org>
---
lib/librte_eal/common/eal_common_vdev.c | 5 +++++
lib/librte_eal/common/include/rte_vdev.h | 5 +++++
2 files changed, 10 insertions(+)
Comments
On 2/15/2017 10:02 AM, Jan Blunck wrote:
> This adds the rte_vdev_device structure which embeds a generic rte_device.
>
> Signed-off-by: Jan Blunck <jblunck@infradead.org>
<...>
>
> +struct rte_vdev_device {
> + TAILQ_ENTRY(rte_vdev_device) next; /**< Next attached vdev */
> + struct rte_device device; /**< Inherit core device */
What do you think adding a name field here ?
"dev->device.devargs->virt.drv_name" used a few times, since probing
virtual devices done based on name.
This is device name, and accessing it via "devargs->virt.drv_name" is
not that clear. It is possible to create a name field here, set it
during probe or init to point devargs field and use it wherever
required, does it make sense?
> +};
> +
> /** Double linked list of virtual device drivers. */
> TAILQ_HEAD(vdev_driver_list, rte_vdev_driver);
>
>
On Wed, Feb 15, 2017 at 6:11 PM, Ferruh Yigit <ferruh.yigit@intel.com> wrote:
> On 2/15/2017 10:02 AM, Jan Blunck wrote:
>> This adds the rte_vdev_device structure which embeds a generic rte_device.
>>
>> Signed-off-by: Jan Blunck <jblunck@infradead.org>
>
> <...>
>
>>
>> +struct rte_vdev_device {
>> + TAILQ_ENTRY(rte_vdev_device) next; /**< Next attached vdev */
>> + struct rte_device device; /**< Inherit core device */
>
> What do you think adding a name field here ?
>
> "dev->device.devargs->virt.drv_name" used a few times, since probing
> virtual devices done based on name.
>
> This is device name, and accessing it via "devargs->virt.drv_name" is
> not that clear. It is possible to create a name field here, set it
> during probe or init to point devargs field and use it wherever
> required, does it make sense?
>
Why don't we add such a thing to the generic rte_device instead? While
we are at it we might want to also add a driver private data field.
Thoughts?
@@ -42,6 +42,11 @@
#include <rte_common.h>
#include <rte_devargs.h>
+/** Double linked list of virtual device drivers. */
+TAILQ_HEAD(vdev_device_list, rte_vdev_device);
+
+static struct vdev_device_list vdev_device_list =
+ TAILQ_HEAD_INITIALIZER(vdev_device_list);
struct vdev_driver_list vdev_driver_list =
TAILQ_HEAD_INITIALIZER(vdev_driver_list);
@@ -40,6 +40,11 @@ extern "C" {
#include <sys/queue.h>
#include <rte_dev.h>
+struct rte_vdev_device {
+ TAILQ_ENTRY(rte_vdev_device) next; /**< Next attached vdev */
+ struct rte_device device; /**< Inherit core device */
+};
+
/** Double linked list of virtual device drivers. */
TAILQ_HEAD(vdev_driver_list, rte_vdev_driver);