On Wed, 2012-09-26 at 09:00 -0700, Alexander Duyck wrote:
One minor thought. Instead of tracking offset and size why not just
work from the top down instead of the bottom up?
So instead of starting with the frag offset at 0, why not start it at
PAGE_SIZE << order, and then work your way down to 0. That way you
don't need to track both size and offset.
How do you refill then ?
(ie setting xxx->offset back to PAGE_SIZE << order)
I am not sure we have direct access to a page order given a struct page
pointer.
I also like struct page_frag abstraction, because it might allow us
better code factorization with other frag allocators.
( skb_append_datato_frags(), sk_page_frag_refill(), ...)