[dpdk-dev] [PATCH v5 resend 05/12] vhost: add VHOST_USER_SET_VRING_ENABLE message

Yuanhan Liu yuanhan.liu at linux.intel.com
Tue Sep 22 04:21:22 CEST 2015


On Mon, Sep 21, 2015 at 12:02:20PM +0300, Michael S. Tsirkin wrote:
> On Mon, Sep 21, 2015 at 10:22:52AM +0800, Yuanhan Liu wrote:
> > On Sun, Sep 20, 2015 at 12:37:35PM +0300, Michael S. Tsirkin wrote:
> > > On Fri, Sep 18, 2015 at 11:10:54PM +0800, Yuanhan Liu wrote:
> > > > From: Changchun Ouyang <changchun.ouyang at intel.com>
> > > > 
> > > > This message is used to enable/disable a specific vring queue pair.
> > > > The first queue pair is enabled by default.
> > > > 
> > > > Signed-off-by: Changchun Ouyang <changchun.ouyang at intel.com>
> > > > Signed-off-by: Yuanhan Liu <yuanhan.liu at linux.intel.com>
> > > > ---
> > [snip...]
> > > >  void
> > > >  user_destroy_device(struct vhost_device_ctx ctx)
> > > >  {
> > > 
> > > It might be a good idea to flush any packets being processed
> > > on relevant cores at this point.
> > 
> > They are offloaded to the application (examples/vhost/vhost-switch in
> > this case).
> > 
> > user_destroy_device will invoke the application's "destroy_device()"
> > callback in the end, which, in our case, will set "remove" flag. The
> > core worker will then drain and free the RX queue and free TX queue
> > once the "remove" flag is set.
> > 
> > 	--yliu
> 
> 
> Oh, I really meant user_set_vring_enable.

Will a per-vring callback help then?

We may prototype the callback to "vring_state_changed(dev, vring_index)"
so that the application could either, as you suggested, flushes any packets
haven't been processed yet, or simply drops them.

	--yliu


More information about the dev mailing list