"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