Re: [PATCH net-next RFC WIP] Patch for XDP support for virtio_net
From: David Miller <davem@davemloft.net>
Date: 2016-10-26 17:11:24
From: "Michael S. Tsirkin" <mst@redhat.com> Date: Wed, 26 Oct 2016 20:07:19 +0300
On Wed, Oct 26, 2016 at 12:52:45PM -0400, David Miller wrote:quoted
From: "Michael S. Tsirkin" <mst@redhat.com> Date: Wed, 26 Oct 2016 19:36:45 +0300quoted
On Wed, Oct 26, 2016 at 03:52:02PM +0200, Jesper Dangaard Brouer wrote:quoted
On Sat, 22 Oct 2016 04:07:23 +0000 Shrijeet Mukherjee [off-list ref] wrote:quoted
This patch adds support for xdp ndo and also inserts the xdp program call into the merged RX buffers and big buffers pathsI really appreciate you are doing this for virtio_net. My first question is: Is the (packet) page data writable? (MST might be able to answer?) As this is currently an XDP requirement[1].I'm not sure I understand what does writable mean. Could you explain a bit more pls? We do copy data into skb ATM but I plan to change that.The packet data area must be writable,This is the part I don't fully understand. It's in RAM so of course it's writeable.
Pages in SKB frag lists are not usually writable, because they share space with data from other packets the way drivers usually carve up pages to receive packets into. It is therefore illegal for the networking code to write into SKB frag pages. Pages used for XDP processed packets must not have this restriction.
We share pages between arbitrary multiple packets. I think that's OK
That's exactly what is not allowed with XDP. Each packet must be the sole user of a page, otherwise the semantics required by XDP are not met.