Thread (23 messages) 23 messages, 5 authors, 2014-07-02

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 Liu
quoted
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)...

-Stefan
Thanks. 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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help