1. 22 10月, 2013 7 次提交
  2. 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
  3. 24 9月, 2013 6 次提交
  4. 23 9月, 2013 5 次提交
  5. 19 9月, 2013 1 次提交
  6. 14 9月, 2013 1 次提交
  7. 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
  8. 10 9月, 2013 1 次提交
  9. 07 9月, 2013 2 次提交
  10. 06 9月, 2013 3 次提交
  11. 30 8月, 2013 1 次提交
  12. 28 8月, 2013 5 次提交
  13. 20 8月, 2013 6 次提交