OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

virtio-comment message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [PATCH 0/2] Selective queue enabling


On Tue, Jun 6, 2023 at 9:10âPM Michael S. Tsirkin <mst@redhat.com> wrote:
>
> On Tue, Jun 06, 2023 at 07:55:09PM +0200, Eugenio PÃrez wrote:
> > This series allows the driver to start the device (as set DRIVER_OK) with only
> > some queues enabled, and then enable another queues later.
> >
> > This is the current way to migrate net device state through control
> > virtqueue, in a software assisted framework with vDPA:
> > * First, only net CVQ is enabled at DRIVER_OK
> > * All the control commands (mac address, mq, etc) needed for the device
> > to behave the same as the source of migration are sent
> > * Finally all the dataplane queues are enabled.
>
> In my opinion, this is somewhat problematic. Specifically, currently
> devices tend to deduce how many queues are needed by looking
> at the state at DRIVER_OK time.
>
> Question: what is wrong with enabling queues initially and then
> doing a reset right after DRIVER_OK? You can even allocate
> memory for just one queue (zeroing it out).
>
> Granted this looks kind of ugly but side-steps this problem with
> no need for spec changes.
>

The problem is that the rx queues can start receiving, as the guest
already has buffers there. Apart from that, the back and forth
introduces latencies.

Maybe a better angle is to start all the queues as if they're reset,
write 1 just to CVQ, configure the device, and then write 1 to all
dataplane vqs?

Thanks!

> > Eugenio PÃrez (2):
> >   virtio: introduce selective queue enabling
> >   virtio: pci support virtqueue selective enabling
> >
> >  content.tex       | 15 +++++++++++++--
> >  transport-pci.tex |  4 ++++
> >  2 files changed, 17 insertions(+), 2 deletions(-)
> >
> > --
> > 2.31.1
> >
>



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]