> +struct vhost_device_user_ctx {
> +     int                     *fds;
> +     int                     fd_num;
> +     struct vhost_driver     *drv;
> +};
> +
>  /*
>   * Structure used to identify device context.
>   */
> @@ -83,6 +89,7 @@ struct vhost_device_ctx {
>       vhost_driver_type_t     type;   /* driver type. */
>       uint64_t                fh;     /* Populated with fi->fh to track the
> device index. */
>       union {
> +             struct vhost_device_user_ctx user;
>               struct vhost_device_cuse_ctx cdev;
>       };
>  };

Tetsuya:
It is ok we define the enum ctx, but so far I don't see absolute necessity to 
have user ctx.
Will send out RFC patch of my implementation today or next day to make it more 
clear.

I don't understand  why we keep two device lists.
  * in real case, will we allow to register two drivers?
     Besides, we have the open question whether we still need to keep the DPDK 
cuse driver. It requires maintenance effort
and extra kernel module;
     Btw, your framework to allow dynamically register different vhost driver 
is nice!
  * If two drivers are simultaneously accessing the device list, we could add 
lock.

> +user_get_device(struct vhost_device_ctx ctx)
> +user_add_config_ll_entry(struct virtio_net_config_ll *new_ll_dev)
> +user_rm_config_ll_entry(struct virtio_net_config_ll *ll_dev, struct
> +user_get_config_ll_root(void)
> +user_init_device(struct vhost_device_ctx ctx, struct virtio_net *dev)

Reply via email to