Re: virtio-net mq vq initialization

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



"Michael S. Tsirkin" <mst@xxxxxxxxxx> writes:
> On Sun, Apr 14, 2013 at 11:59:42AM -0400, Sasha Levin wrote:
>> On 04/14/2013 11:53 AM, Michael S. Tsirkin wrote:
>> >> > 
>> >> > Initializing them only when they're actually needed will do the trick here.
>> > Not initializing, adding the buffers. In the current spec, initialization
>> > is always done before DRIVER_OK.
>> 
>> Yeah, that's better, but we're going to need a spec change either way since even
>> adding the buffers is specifically stated to happen before DRIVER_OK:
>> 
>> """
>> 	6. The receive virtqueues should be filled with receive buffers. This is described
>> in detail below in “Setting Up Receive Buffers”.
>> """
>> 
>> Thanks,
>> Sasha
>
> Yes but that's a minor point, specific to virio-net.
> The main point was to ensure that VQs should have buffers before they get
> any packets.
>
> OTOH VQ init bere DRIVER_OK is a generic virtio thing: DRIVER_OK means
> we can start sending interrupts and we expect driver to be ready to get
> them.
>
> Let's solve the real problem with buffers, a couple of pages per VQ
> shouldn't be an issue.

Yeah, let's not populate the extra virtqueues until someone turns
multiqueue on.

I appended to the last paragraph under Setting Up Receive Buffers:

        If VIRTIO_NET_F_MQ is negotiated, each of receiveq0...receiveqN that
        will be used should be populated with receive buffers

Added: 
       before multiqueue is activated (See [sub:Automatic-receive-steering]).

Cheers,
Rusty.
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux