Re: [virtio] [OASIS Issue Tracker] Updated: (VIRTIO-11) Method to stop activity on a queue?

From
Cornelia Huck <>
Date
2013-10-25T13:14:18+00:00
ID
20131025151411.05679c59@gondolin
Thread
Re: [virtio] [OASIS Issue Tracker] Updated: (VIRTIO-11) Method to stop activity on a queue?
On Fri, 25 Oct 2013 13:16:01 +1030
Rusty Russell <> wrote:

> OASIS Issues Tracker <> writes:
> >      [ http://tools.oasis-open.org/issues/browse/VIRTIO-11?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
> >
> > Rusty Russell updated VIRTIO-11:
> > --------------------------------
> >
> >     Description: 
> > This has been requested for network devices before.
> >
> > In particular, in Linux when a network device is closed we leave the buffers in the receive queue, since we can't remove them without resetting the device.
> >
> >   was:This has been requested for network devices before.  Sometimes it would be useful to stop all queue activity; for example this would allow the driver to stop queue, process any pending interrupts, then pull buffers out of the queue.
> >
> >
> > This is now available in the draft for PCI.
> 
> And it could be done for MMIO by setting QueuePFN to zero, though the
> spec should specify that as allowed on a live device.
> 
> I'm not sure the best way to add this functionality to CCW.  Cornelia?

I'm not quite sure what the requirements are here.

- Allow the guest to deregister a single vq? The SET_VQ command should
  be able to do that; we would need to make it amply clear that this can
  be done in-flight, though.
- Allow the guest to tell the host to leave a queue alone for a time?
  The best approach for that would probably be a new command (or a
  hypercall) passing a queue-active mask; this would allow the guest to
  re-enable queue usage later on.
- Or the reverse: Allow the host to temporarily halt processing.
  Probably with unsolicited interrupts indicating a state change,
  similar to what storage servers do. This would be per-device, however.

> 
> Cheers,
> Rusty.