1. 27 11月, 2014 2 次提交
  2. 22 11月, 2014 1 次提交
  3. 01 11月, 2014 1 次提交
  4. 27 10月, 2014 1 次提交
  5. 23 10月, 2014 1 次提交
  6. 21 10月, 2014 1 次提交
  7. 16 10月, 2014 1 次提交
    • T
      net: Add ndo_gso_check · 04ffcb25
      Tom Herbert 提交于
      Add ndo_gso_check which a device can define to indicate whether is
      is capable of doing GSO on a packet. This funciton would be called from
      the stack to determine whether software GSO is needed to be done. A
      driver should populate this function if it advertises GSO types for
      which there are combinations that it wouldn't be able to handle. For
      instance a device that performs UDP tunneling might only implement
      support for transparent Ethernet bridging type of inner packets
      or might have limitations on lengths of inner headers.
      Signed-off-by: NTom Herbert <therbert@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      04ffcb25
  8. 15 10月, 2014 1 次提交
  9. 11 10月, 2014 3 次提交
  10. 10 10月, 2014 1 次提交
    • M
      net: Missing @ before descriptions cause make xmldocs warning · de3f0d0e
      Masanari Iida 提交于
      This patch fix following warning.
      Warning(.//net/core/skbuff.c:4142): No description found for parameter 'header_len'
      Warning(.//net/core/skbuff.c:4142): No description found for parameter 'data_len'
      Warning(.//net/core/skbuff.c:4142): No description found for parameter 'max_page_order'
      Warning(.//net/core/skbuff.c:4142): No description found for parameter 'errcode'
      Warning(.//net/core/skbuff.c:4142): No description found for parameter 'gfp_mask'
      
      Acutually the descriptions exist, but missing "@" in front.
      
      This problem start to happen when following commit was merged
      into Linus's tree during 3.18-rc1 merge period.
      commit 2e4e4410
      net: add alloc_skb_with_frags() helper
      Signed-off-by: NMasanari Iida <standby24x7@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      de3f0d0e
  11. 08 10月, 2014 1 次提交
    • E
      net: better IFF_XMIT_DST_RELEASE support · 02875878
      Eric Dumazet 提交于
      Testing xmit_more support with netperf and connected UDP sockets,
      I found strange dst refcount false sharing.
      
      Current handling of IFF_XMIT_DST_RELEASE is not optimal.
      
      Dropping dst in validate_xmit_skb() is certainly too late in case
      packet was queued by cpu X but dequeued by cpu Y
      
      The logical point to take care of drop/force is in __dev_queue_xmit()
      before even taking qdisc lock.
      
      As Julian Anastasov pointed out, need for skb_dst() might come from some
      packet schedulers or classifiers.
      
      This patch adds new helper to cleanly express needs of various drivers
      or qdiscs/classifiers.
      
      Drivers that need skb_dst() in their ndo_start_xmit() should call
      following helper in their setup instead of the prior :
      
      	dev->priv_flags &= ~IFF_XMIT_DST_RELEASE;
      ->
      	netif_keep_dst(dev);
      
      Instead of using a single bit, we use two bits, one being
      eventually rebuilt in bonding/team drivers.
      
      The other one, is permanent and blocks IFF_XMIT_DST_RELEASE being
      rebuilt in bonding/team. Eventually, we could add something
      smarter later.
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Cc: Julian Anastasov <ja@ssi.bg>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      02875878
  12. 07 10月, 2014 3 次提交
  13. 06 10月, 2014 2 次提交
  14. 05 10月, 2014 1 次提交
    • V
      net: Cleanup skb cloning by adding SKB_FCLONE_FREE · c8753d55
      Vijay Subramanian 提交于
      SKB_FCLONE_UNAVAILABLE has overloaded meaning depending on type of skb.
      1: If skb is allocated from head_cache, it indicates fclone is not available.
      2: If skb is a companion fclone skb (allocated from fclone_cache), it indicates
      it is available to be used.
      
      To avoid confusion for case 2 above, this patch  replaces
      SKB_FCLONE_UNAVAILABLE with SKB_FCLONE_FREE where appropriate. For fclone
      companion skbs, this indicates it is free for use.
      
      SKB_FCLONE_UNAVAILABLE will now simply indicate skb is from head_cache and
      cannot / will not have a companion fclone.
      Signed-off-by: NVijay Subramanian <subramanian.vijay@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c8753d55
  15. 04 10月, 2014 2 次提交
  16. 03 10月, 2014 1 次提交
  17. 02 10月, 2014 3 次提交
  18. 30 9月, 2014 5 次提交
    • J
      net: sched: enable per cpu qstats · b0ab6f92
      John Fastabend 提交于
      After previous patches to simplify qstats the qstats can be
      made per cpu with a packed union in Qdisc struct.
      Signed-off-by: NJohn Fastabend <john.r.fastabend@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b0ab6f92
    • J
      net: sched: restrict use of qstats qlen · 64015853
      John Fastabend 提交于
      This removes the use of qstats->qlen variable from the classifiers
      and makes it an explicit argument to gnet_stats_copy_queue().
      
      The qlen represents the qdisc queue length and is packed into
      the qstats at the last moment before passnig to user space. By
      handling it explicitely we avoid, in the percpu stats case, having
      to figure out which per_cpu variable to put it in.
      
      It would probably be best to remove it from qstats completely
      but qstats is a user space ABI and can't be broken. A future
      patch could make an internal only qstats structure that would
      avoid having to allocate an additional u32 variable on the
      Qdisc struct. This would make the qstats struct 128bits instead
      of 128+32.
      Signed-off-by: NJohn Fastabend <john.r.fastabend@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      64015853
    • J
      net: sched: make bstats per cpu and estimator RCU safe · 22e0f8b9
      John Fastabend 提交于
      In order to run qdisc's without locking statistics and estimators
      need to be handled correctly.
      
      To resolve bstats make the statistics per cpu. And because this is
      only needed for qdiscs that are running without locks which is not
      the case for most qdiscs in the near future only create percpu
      stats when qdiscs set the TCQ_F_CPUSTATS flag.
      
      Next because estimators use the bstats to calculate packets per
      second and bytes per second the estimator code paths are updated
      to use the per cpu statistics.
      Signed-off-by: NJohn Fastabend <john.r.fastabend@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      22e0f8b9
    • E
      gro: fix aggregation for skb using frag_list · 73d3fe6d
      Eric Dumazet 提交于
      In commit 8a29111c ("net: gro: allow to build full sized skb")
      I added a regression for linear skb that traditionally force GRO
      to use the frag_list fallback.
      
      Erez Shitrit found that at most two segments were aggregated and
      the "if (skb_gro_len(p) != pinfo->gso_size)" test was failing.
      
      This is because pinfo at this spot still points to the last skb in the
      chain, instead of the first one, where we find the correct gso_size
      information.
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Fixes: 8a29111c ("net: gro: allow to build full sized skb")
      Reported-by: NErez Shitrit <erezsh@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      73d3fe6d
    • E
      net: reorganize sk_buff for faster __copy_skb_header() · b1937227
      Eric Dumazet 提交于
      With proliferation of bit fields in sk_buff, __copy_skb_header() became
      quite expensive, showing as the most expensive function in a GSO
      workload.
      
      __copy_skb_header() performance is also critical for non GSO TCP
      operations, as it is used from skb_clone()
      
      This patch carefully moves all the fields that were not copied in a
      separate zone : cloned, nohdr, fclone, peeked, head_frag, xmit_more
      
      Then I moved all other fields and all other copied fields in a section
      delimited by headers_start[0]/headers_end[0] section so that we
      can use a single memcpy() call, inlined by compiler using long
      word load/stores.
      
      I also tried to make all copies in the natural orders of sk_buff,
      to help hardware prefetching.
      
      I made sure sk_buff size did not change.
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b1937227
  19. 28 9月, 2014 1 次提交
  20. 27 9月, 2014 4 次提交
  21. 26 9月, 2014 1 次提交
  22. 23 9月, 2014 1 次提交
  23. 20 9月, 2014 1 次提交
  24. 16 9月, 2014 1 次提交