1. 13 5月, 2015 38 次提交
  2. 12 5月, 2015 2 次提交
    • D
      Merge branch 'netdev_page_frags' · 8df29145
      David S. Miller 提交于
      Alexander Duyck says:
      
      ====================
      Refactor netdev page frags and move them into mm/
      
      This patch series addresses several things.
      
      First I found an issue in the performance of the pfmemalloc check from
      build_skb.  To work around it I have provided a cached copy of pfmemalloc
      to be used in __netdev_alloc_skb and __napi_alloc_skb.
      
      Second I moved the page fragment allocation logic into the mm tree and
      added functionality for freeing page fragments.  I had to fix igb before I
      could do this as it was using a reference to NETDEV_FRAG_PAGE_MAX_SIZE
      incorrectly.
      
      Finally I went through and replaced all of the duplicate code that was
      calling put_page and replaced it with calls to skb_free_frag.
      
      With these changes in place a simple receive and drop test increased from a
      packet rate of 8.9Mpps to 9.8Mpps.  The gains breakdown as follows:
      
      8.9Mpps	Before			9.8Mpps	After
      ------------------------	------------------------
      7.8%	put_compound_page	9.1%	__free_page_frag
      3.9%	skb_free_head
      1.1%	put_page
      
      4.9%	build_skb		3.8%	__napi_alloc_skb
      2.5%	__alloc_rx_skb
      1.9%	__napi_alloc_skb
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8df29145
    • A