Re: [PATCH net-next] xen-netfront: try linearizing SKB if it occupies too many slots
From: Wei Liu <hidden>
Date: 2014-05-30 12:35:55
On Fri, May 30, 2014 at 12:28:53PM +0000, David Laight wrote:
From: Wei Liuquoted
On Fri, May 30, 2014 at 10:06:48AM +0200, Stefan Bader wrote: [...]quoted
I had been idly wondering about this onwards. And trying to understand the whole skb handling environment, I tried to come up with some idea as well. It may be totally stupid and using the wrong assumptions. It seems to work in the sense that things did not blow up into my face immediately and somehow I did not see dropped packages due to the number of slots either. But again, I am not sure I am doing the right thing. The idea was to just try to get rid of so many compound pages (which I believe are the only ones that can have an offset big enough to allow some alignment savings)... -StefanThanks. I think the general idea is OK, but it still involves unnecessary page allocation. We don't actually need to get rid of compound page by replacing it with a new page, we just need to make sure the data inside is aligned. If you look at xennet_make_frags, it only grants the 4K page which contains data. I presume a simple memove would be better than alloc_page + memcpy. What do you think? Like: memmove(page_address(fpage), page_address(fpage)+offset, size); frag->page_offset = 0;Isn't the rest of the page likely to contain fragments of other ethernet frames? Even possibly of other data?
You're right, this is a valid concern.