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: [virtio-comment] Re: [PATCH V2 4/6] virtio-pci: implement VIRTIO_F_QUEUE_STATE


> From: Michael S. Tsirkin <mst@redhat.com>
> Sent: Thursday, November 9, 2023 2:12 PM
> 
> On Thu, Nov 09, 2023 at 06:28:17AM +0000, Parav Pandit wrote:
> > > >> The registers are control path in config space, how 400G or 800G affect??
> > > > Because those are the one in practice requires large number of VQs.
> > > >
> > > > You are asking per VQ register commands to modify things
> > > > dynamically via
> > > this one vq at a time, serializing all the operations.
> > > > It does not scale well with high q count.
> > > This is not dynamically, it only happens when SUSPEND and RESUME.
> > > This is the same mechanism how virtio initialize a virtqueue,
> > > working for many years.
> > No. when virtio driver initializes it for the first time, there is no active traffic
> that gets lost.
> > This is because the interface is not yet up and not part of the network yet.
> >
> > The resume must be fast enough, because the remote node is sending
> packets.
> > Hence it is different from driver init time queue enable.
> 
> Maybe but I think not qualitatively different.
> If you care about these things please provide some estimates.
> I just don't see how queue resume writes even with 64k queues will saturate an
> express link.
> 
It is not the bw of the link.
It is how the need for the device to be always read to suspend those many queues through register interface.

> 
> > > >> See the virtio common cfg, you will find the max number of vqs is
> > > >> there, num_queues.
> > > > :)
> > > > Sure. those values at high q count affects.
> > > the driver need to initialize them anyway.
> > That is before the traffic starts from remote end.
> >
> > > >
> > > >>> Device didnât support LM.
> > > >>> Many limitations existed all these years and TC is improving and
> > > >>> expanding
> > > >> them.
> > > >>> So all these years do not matter.
> > > >> Not sure what are you talking about, haven't we initialize the
> > > >> device and vqs in config space for years?????? What's wrong with this
> mechanism?
> > > >> Are you questioning virito-pci fundamentals???
> > > > Donât point to in-efficient past to establish similar in-efficient future.
> > > interesting, you know this is a one-time thing, right?
> > > and you are aware of this has been there for years.
> > > >
> > > >>>>>> Like how to set a queue size and enable it?
> > > >>>>> Those are meant to be used before DRIVER_OK stage as they are
> > > >>>>> init time
> > > >>>> registers.
> > > >>>>> Not to keep abusing them..
> > > >>>> don't you need to set queue_size at the destination side?
> > > >>> No.
> > > >>> But the src/dst does not matter.
> > > >>> Queue_size to be set before DRIVER_OK like rest of the
> > > >>> registers, as all
> > > >> queues must be created before the driver_ok phase.
> > > >>> Queue_reset was last moment exception.
> > > >> create a queue? Nvidia specific?
> > > >>
> > > > Huh. No.
> > > > Do git log and realize what happened with queue_reset.
> > > You didn't answer the question, does the spec even has defined "create a
> vq"?
> >
> > Enabled/created = tomato/tomato when discussing the spec in non-normative
> email conversation.
> > It's irrelevant.
> >
> > All I am saying is, when we know the limitations of the transport and
> > when industry is forwarding to not introduced more and more on-die register
> for once in lifetime work of device migration, we just use the optimal command
> and queue interface that is native to virtio.
> 
> we really do not need to prematurely optimize all things.
> control path is control path it is going to be slow because virtio designed it to be
> slow and drivers don't optimize it.
> Shaving off a microsecond here or there is going to do nothing except increase
> maintainance costs.

Control path post device initialization for large part is through the cvq.


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