1. 19 12月, 2013 1 次提交
  2. 19 11月, 2013 1 次提交
  3. 29 10月, 2013 1 次提交
  4. 18 10月, 2013 1 次提交
    • E
      bnx2x: record rx queue for LRO packets · 60e66fee
      Eric Dumazet 提交于
      RPS support is kind of broken on bnx2x, because only non LRO packets
      get proper rx queue information. This triggers reorders, as it seems
      bnx2x like to generate a non LRO packet for segment including TCP PUSH
      flag : (this might be pure coincidence, but all the reorders I've
      seen involve segments with a PUSH)
      
      11:13:34.335847 IP A > B: . 415808:447136(31328) ack 1 win 457 <nop,nop,timestamp 3789336 3985797>
      11:13:34.335992 IP A > B: . 447136:448560(1424) ack 1 win 457 <nop,nop,timestamp 3789336 3985797>
      11:13:34.336391 IP A > B: . 448560:479888(31328) ack 1 win 457 <nop,nop,timestamp 3789337 3985797>
      11:13:34.336425 IP A > B: P 511216:512640(1424) ack 1 win 457 <nop,nop,timestamp 3789337 3985798>
      11:13:34.336423 IP A > B: . 479888:511216(31328) ack 1 win 457 <nop,nop,timestamp 3789337 3985798>
      11:13:34.336924 IP A > B: . 512640:543968(31328) ack 1 win 457 <nop,nop,timestamp 3789337 3985798>
      11:13:34.336963 IP A > B: . 543968:575296(31328) ack 1 win 457 <nop,nop,timestamp 3789337 3985798>
      
      We must call skb_record_rx_queue() to properly give to RPS (and more
      generally for TX queue selection on forward path) the receive queue
      information.
      
      Similar fix is needed for skb_mark_napi_id(), but will be handled
      in a separate patch to ease stable backports.
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Cc: Willem de Bruijn <willemb@google.com>
      Cc: Eilon Greenstein <eilong@broadcom.com>
      Acked-by: NDmitry Kravkov <dmitry@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      60e66fee
  5. 01 10月, 2013 1 次提交
  6. 24 9月, 2013 1 次提交
  7. 14 9月, 2013 1 次提交
  8. 12 9月, 2013 1 次提交
    • M
      bnx2x: avoid atomic allocations during initialization · 996dedba
      Michal Schmidt 提交于
      During initialization bnx2x allocates significant amounts of memory
      (for rx data, rx SGEs, TPA pool) using atomic allocations.
      
      I received a report where bnx2x failed to allocate SGEs and it had
      to fall back to TPA-less operation.
      
      Let's use GFP_KERNEL allocations during initialization, which runs
      in process context. Add gfp_t parameters to functions that are used
      both in initialization and in the receive path.
      
      Use an unlikely branch in bnx2x_frag_alloc() to avoid atomic allocation
      by netdev_alloc_frag(). The branch is taken several thousands of times
      during initialization, but then never more. Note that fp->rx_frag_size
      is never greater than PAGE_SIZE, so __get_free_page() can be used here.
      Signed-off-by: NMichal Schmidt <mschmidt@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      996dedba
  9. 06 9月, 2013 2 次提交
  10. 28 8月, 2013 2 次提交
  11. 02 8月, 2013 2 次提交
    • Y
      bnx2x: Revising locking scheme for MAC configuration · 8b09be5f
      Yuval Mintz 提交于
      On very rare occasions, repeated load/unload stress test in the presence of
      our storage driver (bnx2i/bnx2fc) causes a kernel panic in bnx2x code
      (NULL pointer dereference). Stack traces indicate the issue happens during MAC
      configuration; thorough code review showed that indeed several races exist
      in which one thread can iterate over the list of configured MACs while another
      deletes entries from the same list.
      
      This patch adds a varient on the single-writer/Multiple-reader lock mechanism -
      It utilizes an already exsiting bottom-half lock, using it so that Whenever
      a writer is unable to continue due to the existence of another writer/reader,
      it pends its request for future deliverance.
      The writer / last readers will check for the existence of such requests and
      perform them instead of the original initiator.
      This prevents the writer from having to sleep while waiting for the lock
      to be accessible, which might cause deadlocks given the locks already
      held by the writer.
      
      Another result of this patch is that setting of Rx Mode is now made in
      sleepable context - Setting of Rx Mode is made under a bottom-half lock, which
      was always nontrivial for the bnx2x driver, as the HW/FW configuration requires
      wait for completions.
      Since sleep was impossible (due to the sleepless-context), various mechanisms
      were utilized to prevent the calling thread from sleep, but the truth was that
      when the caller thread (i.e, the one calling ndo_set_rx_mode()) returned, the
      Rx mode was still not set in HW/FW.
      
      bnx2x_set_rx_mode() will now overtly schedule for the Rx changes to be
      configured by the sp_rtnl_task which hold the RTNL lock and is sleepable
      context.
      Signed-off-by: NYuval Mintz <yuvalmin@broadcom.com>
      Signed-off-by: NAriel Elior <ariele@broadcom.com>
      Signed-off-by: NEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8b09be5f
    • C
      net: rename CONFIG_NET_LL_RX_POLL to CONFIG_NET_RX_BUSY_POLL · e0d1095a
      Cong Wang 提交于
      Eliezer renames several *ll_poll to *busy_poll, but forgets
      CONFIG_NET_LL_RX_POLL, so in case of confusion, rename it too.
      
      Cc: Eliezer Tamir <eliezer.tamir@linux.intel.com>
      Cc: David S. Miller <davem@davemloft.net>
      Signed-off-by: NCong Wang <amwang@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e0d1095a
  12. 12 7月, 2013 1 次提交
  13. 11 7月, 2013 2 次提交
  14. 25 6月, 2013 1 次提交
  15. 24 6月, 2013 1 次提交
  16. 20 6月, 2013 2 次提交
  17. 05 6月, 2013 2 次提交
  18. 03 6月, 2013 3 次提交
  19. 02 6月, 2013 1 次提交
  20. 24 5月, 2013 1 次提交
  21. 20 5月, 2013 2 次提交
  22. 30 4月, 2013 1 次提交
  23. 25 4月, 2013 4 次提交
  24. 20 4月, 2013 1 次提交
  25. 19 4月, 2013 1 次提交
  26. 22 3月, 2013 1 次提交
  27. 21 3月, 2013 1 次提交
  28. 19 3月, 2013 1 次提交