Re: [V2 PATCH 2/9] macvtap: zerocopy: fix truesize underestimation

From: Jason Wang
Date: Mon May 21 2012 - 02:16:22 EST


On 05/18/2012 11:22 PM, Shirley Ma wrote:
On Fri, 2012-05-18 at 18:10 +0800, Jason Wang wrote:
On Thu, 2012-05-17 at 10:59 +0800, Jason Wang wrote:
Didn't see how this affact skb->len. And for truesize, I think they
are
different, when the offset were not zero, the data in this vector
were
divided into two parts. First part is copied into skb directly, and
the
second were pinned from a whole userspace page by
get_user_pages_fast(),
so we need count the whole page to the socket limit to prevent evil
application.
What I meant that the code for skb->truesize has double added the
first
offset if any left from that vector (partically copied into skb
directly, and then count pagesize which includes the offset
(truesize +=
PAGE_SIZE)).
Yes, I get you mean. There's no difference between first frag and
others: it's also possible for other frags that didn't occupy the
whole
page. Since we pin the whole user page, better to count the whole
page
size to prevent evil application.
The difference between first frags and others is other frags might not
occupy the whole page, but the first frags extra offset was doubled
added in skb truesize.

So it's ok for skb->truesize to be bigger than all the skb pinned pages
here?

I think it's ok here and we could find other example such as virtio_net driver.

Thanks
Shirley

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/