Re: [PATCH v2] virtio_net: fix PAGE_SIZE > 64k

From: John Fastabend
Date: Tue Jan 24 2017 - 22:49:21 EST


On 17-01-24 01:56 PM, Michael S. Tsirkin wrote:
> On Tue, Jan 24, 2017 at 04:10:46PM -0500, David Miller wrote:
>> This works in the regimen that XDP packets always live in exactly one
>> page. That will be needed to mmap the RX ring into userspace, and it
>> helps make adjust_header trivial as well.

I still don't see why this is a hard requirement for mmap let me post
some patches later tonight to show how we do this with af_packet.

>
> I think the point was to avoid resets across xdp attach/detach. If we
> are doing resets now, we could do whatever buffering we want. We could
> also just disable mergeable buffers for that matter.
>
>> MTU 1500, PAGESIZE >= 4096, so a headroom of 256 is no problem, and
>> we still have enough tailroom for skb_shared_info should we wrap
>> the buffer into a real SKB and push it into the stack.
>>
>> If you are trying to do buffering differently for virtio_net, well...
>> that's a self inflicted wound as far as I can tell.
>
> Right but I was wondering about the fact that this makes XDP_PASS
> much slower than processing skbs without XDP, as truesize is huge
> so we'll quickly run out of rmem space.
>
> When XDP is used to fight DOS attacks, why isn't this a concern?
>

It is a concern on my side. I want XDP and Linux stack to work
reasonably well together.

.John