On Tue, 10 Jan 2012 09:41:01 -0800, Mike Waychison [off-list ref] wrote:
In preparation for allocating receive buffers in the slow path without
disabling NAPI, split the allocation and addition of receive buffers
apart into two separate functions (per receive buffer type).
While here, move the vi->num accounting into the add functions.
Signed-off-by: Mike Waychison <redacted>
Hi Mike...
This exposes a nasty ugliness in the way virtio_net works. We
allocate an skbuff for the small packet case, and just allocate the
pages for the large packet cases, and alloc the skbuff when we fill the
pages.
I think all the allocators should return a populated skbuff;
this uses a bit more memory in theory, but should make the code simpler.
As an added bonus, your life should get much simpler for these patches.
I'll try to create such a patch tonight, but I'm busy finalizing my
linux.conf.au presentation, so it might take longer :(
Thanks,
Rusty.