From: Willem de Bruijn <willemdebruijn.ker...@gmail.com>
Date: Mon, 31 Jul 2017 08:15:47 -0400

> From: Willem de Bruijn <will...@google.com>
> 
> Skb frags may contain compound pages. Various operations map frags
> temporarily using kmap_atomic, but this function works on single
> pages, not whole compound pages. The distinction is only relevant
> for high mem pages that require temporary mappings.
> 
> Introduce a looping mechanism that for compound highmem pages maps
> one page at a time, does not change behavior on other pages.
> Use the loop in the kmap_atomic callers in net/core/skbuff.c.
> 
> Verified by triggering skb_copy_bits with
> 
>     tcpdump -n -c 100 -i ${DEV} -w /dev/null &
>     netperf -t TCP_STREAM -H ${HOST}
> 
>   and by triggering __skb_checksum with
> 
>     ethtool -K ${DEV} tx off
> 
>   repeated the tests with looping on a non-highmem platform
>   (x86_64) by making skb_frag_must_loop always return true.
> 
> Signed-off-by: Willem de Bruijn <will...@google.com>

Ok, this looks good.

Thanks for following up on this.

Applied.

Reply via email to