[dpdk-dev] [PATCH v2 01/10] lib/librte_vhost: add vhost user private info structure

Zhang, Roy Fan roy.fan.zhang at intel.com
Wed Mar 21 10:10:06 CET 2018


Hi Maxime,

Thanks for the review.

> 
> I think this include isn't needed looking at the rest of the patch.

I agree. I will remove this line here.

> >   #define VHOST_USER_VERSION    0x1
> >
> > +typedef int (*msg_handler)(struct virtio_net *dev, struct VhostUserMsg
> *msg,
> > +		int fd);
> > +
> > +struct vhost_user_dev_priv {
> > +	msg_handler vhost_user_msg_handler;
> > +	char data[0];
> > +};
> >
> >   /* vhost_user.c */
> >   int vhost_user_msg_handler(int vid, int fd);
> >
> 
> I think the wording is a bit misleading, I'm fine with having a private_data
> pointer, but it should only be used by the external backend.
> 
> Maybe what you need here is a new API to be to register a callback for the
> external backend to handle specific requests.

That's exactly what I need. 
Shall I rework the code like this?

/* vhost.h */
struct virtio_net {
	....
	void *extern_data; /*<< private data for external backend */
	
}

/* vhost_user.h */
typedef int (*msg_handler)(struct virtio_net *dev, struct VhostUserMsg *msg,
		int fd);

struct vhost_user_dev_extern {
	msg_handler post_vhost_user_msg_handler;
	char data[0];
};

int 
vhost_user_register_call_back(struct virtio_net *dev, msg_handler post_msg_handler);

> 
> Also, it might be interesting for the external backend to register callbacks for
> existing requests. For example .pre_vhost_user_msg_handler
> and .post_vhost_user_msg_handler. Doing so, the external backend could
> for example catch beforehand any change that could affect resources being
> used. Tomasz, Pawel, do you think that could help for the issue you reported?
> 


I think it is definitely a good idea. However there will be a problem. As vhost_crypto does not require pre_vhost_user_msg_handler I think it may not appropriate to add pre_vhost_user_msg_handler in this patchset. 

Thanks a million Maxime.

> Thanks,
> Maxime


More information about the dev mailing list