Re: [PATCH 1/1] Defer skb allocation for both mergeable buffers andbig packets in virtio_net

From: Anthony Liguori
Date: Tue Nov 24 2009 - 09:36:45 EST


Michael S. Tsirkin wrote:
On Tue, Nov 24, 2009 at 08:54:23AM +1030, Rusty Russell wrote:
On Tue, 24 Nov 2009 02:37:01 am Shirley Ma wrote:
+ skb = (struct sk_buff *)buf;
This cast is unnecessary, but a comment would be nice:
Without this cast there is a compile warning.
Hi Shirley,

Looks like buf is a void *, so no cast should be necessary. But I could
be reading the patch wrong.

However, I question whether making it 16 byte is the right thing: the
ethernet header is 14 bytes long, so don't we want 8 bytes of padding?
Because in QEMU it requires 10 bytes header in a separately, so one page
is used to share between virtio_net_hdr header which is 10 bytes head
and rest of data. So I put 6 bytes offset here between two buffers. I
didn't look at the reason why a seperate buf is used for virtio_net_hdr
in QEMU.
It's a qemu bug. It insists the header be an element in the scatterlist by
itself. Unfortunately we have to accommodate it.

We do? Let's just fix this?

So does lguest. It's been that way since the beginning. Fixing this would result in breaking older guests.

We really need to introduce a feature bit if we want to change this.

Regards,

Anthony Liguori
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/