Re: [PATCH 0/4] skb paged fragment destructors
From: David Miller <davem@davemloft.net>
Date: 2011-12-22 18:20:32
From: Ian Campbell <redacted> Date: Thu, 22 Dec 2011 10:33:36 +0000
On Wed, 2011-12-21 at 19:28 +0000, David Miller wrote:quoted
From: Eric Dumazet <redacted> Date: Wed, 21 Dec 2011 15:02:18 +0100quoted
No idea on this +2 point.I think I know, and I believe I instructed Alexey Kuznetsov to do this. When sendfile() is performed, we might start the SKB with the last few bytes of one page, and end the SKB with the first few bytes of another page. In order to fit a full 64K frame into an SKB in this situation we have to accomodate this case.Thanks David, that makes sense. However I think you only actually need 1 extra page for that. If the data in frag[0] starts at $offset then frag[16] will need to have $offset bytes in it. e.g. 4096-$offset + 4096*15 + $offset = 65536 which == 17 pages rather than 18. The following documents the status quo but I could update to switch to + 1 instead if there are no flaws in the above logic...
Indeed, you're right. Please change this to 1 and document it, and we can put that change into net-next, thanks a lot!