1. 09 1月, 2013 1 次提交
  2. 12 12月, 2012 1 次提交
  3. 08 12月, 2012 4 次提交
  4. 04 12月, 2012 1 次提交
  5. 28 9月, 2012 1 次提交
  6. 08 9月, 2012 1 次提交
  7. 17 7月, 2012 1 次提交
  8. 11 7月, 2012 1 次提交
  9. 05 7月, 2012 1 次提交
  10. 28 6月, 2012 2 次提交
  11. 17 6月, 2012 4 次提交
  12. 07 6月, 2012 1 次提交
    • J
      ethernet: Remove casts to same type · 64699336
      Joe Perches 提交于
      Adding casts of objects to the same type is unnecessary
      and confusing for a human reader.
      
      For example, this cast:
      
              int y;
              int *p = (int *)&y;
      
      I used the coccinelle script below to find and remove these
      unnecessary casts.  I manually removed the conversions this
      script produces of casts with __force, __iomem and __user.
      
      @@
      type T;
      T *p;
      @@
      
      -       (T *)p
      +       p
      
      A function in atl1e_main.c was passed a const pointer
      when it actually modified elements of the structure.
      
      Change the argument to a non-const pointer.
      
      A function in stmmac needed a __force to avoid a sparse
      warning.  Added it.
      Signed-off-by: NJoe Perches <joe@perches.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      64699336
  13. 01 5月, 2012 1 次提交
    • E
      net: allow skb->head to be a page fragment · d3836f21
      Eric Dumazet 提交于
      skb->head is currently allocated from kmalloc(). This is convenient but
      has the drawback the data cannot be converted to a page fragment if
      needed.
      
      We have three spots were it hurts :
      
      1) GRO aggregation
      
       When a linear skb must be appended to another skb, GRO uses the
      frag_list fallback, very inefficient since we keep all struct sk_buff
      around. So drivers enabling GRO but delivering linear skbs to network
      stack aren't enabling full GRO power.
      
      2) splice(socket -> pipe).
      
       We must copy the linear part to a page fragment.
       This kind of defeats splice() purpose (zero copy claim)
      
      3) TCP coalescing.
      
       Recently introduced, this permits to group several contiguous segments
      into a single skb. This shortens queue lengths and save kernel memory,
      and greatly reduce probabilities of TCP collapses. This coalescing
      doesnt work on linear skbs (or we would need to copy data, this would be
      too slow)
      
      Given all these issues, the following patch introduces the possibility
      of having skb->head be a fragment in itself. We use a new skb flag,
      skb->head_frag to carry this information.
      
      build_skb() is changed to accept a frag_size argument. Drivers willing
      to provide a page fragment instead of kmalloc() data will set a non zero
      value, set to the fragment size.
      
      Then, on situations we need to convert the skb head to a frag in itself,
      we can check if skb->head_frag is set and avoid the copies or various
      fallbacks we have.
      
      This means drivers currently using frags could be updated to avoid the
      current skb->head allocation and reduce their memory footprint (aka skb
      truesize). (thats 512 or 1024 bytes saved per skb). This also makes
      bpf/netfilter faster since the 'first frag' will be part of skb linear
      part, no need to copy data.
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Cc: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Cc: Maciej Żenczykowski <maze@google.com>
      Cc: Neal Cardwell <ncardwell@google.com>
      Cc: Tom Herbert <therbert@google.com>
      Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
      Cc: Ben Hutchings <bhutchings@solarflare.com>
      Cc: Matt Carlson <mcarlson@broadcom.com>
      Cc: Michael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d3836f21
  14. 14 4月, 2012 1 次提交
  15. 07 4月, 2012 1 次提交
  16. 24 2月, 2012 1 次提交
  17. 06 2月, 2012 2 次提交
  18. 01 2月, 2012 1 次提交
  19. 20 12月, 2011 1 次提交
  20. 01 12月, 2011 1 次提交
  21. 24 11月, 2011 1 次提交
  22. 22 11月, 2011 1 次提交
  23. 18 11月, 2011 1 次提交
    • E
      bnx2: switch to build_skb() infrastructure · dd2bc8e9
      Eric Dumazet 提交于
      This is very similar to bnx2x conversion, but bnx2 only requires 16bytes
      alignement at start of the received frame to store its l2_fhdr, so goal
      was not to reduce skb truesize (in fact it should not change after this
      patch)
      
      Using build_skb() reduces cache line misses in the driver, since we
      use cache hot skb instead of cold ones. Number of in-flight sk_buff
      structures is lower, they are more likely recycled in SLUB caches
      while still hot.
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      CC: Michael Chan <mchan@broadcom.com>
      CC: Eilon Greenstein <eilong@broadcom.com>
      Reviewed-by: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      dd2bc8e9
  24. 17 11月, 2011 2 次提交
  25. 09 11月, 2011 1 次提交
  26. 19 10月, 2011 1 次提交
  27. 14 10月, 2011 1 次提交
  28. 08 10月, 2011 1 次提交
  29. 07 10月, 2011 1 次提交
  30. 04 10月, 2011 1 次提交
  31. 27 8月, 2011 1 次提交