1. 12 Aug, 2009 1 commit
  2. 07 Aug, 2009 4 commits
    • Krishna Kumar's avatar
      net: Avoid enqueuing skb for default qdiscs · bbd8a0d3
      Krishna Kumar authored
      dev_queue_xmit enqueue's a skb and calls qdisc_run which
      dequeue's the skb and xmits it. In most cases, the skb that
      is enqueue'd is the same one that is dequeue'd (unless the
      queue gets stopped or multiple cpu's write to the same queue
      and ends in a race with qdisc_run). For default qdiscs, we
      can remove the redundant enqueue/dequeue and simply xmit the
      skb since the default qdisc is work-conserving.
      
      The patch uses a new flag - TCQ_F_CAN_BYPASS to identify the
      default fast queue. The controversial part of the patch is
      incrementing qlen when a skb is requeued - this is to avoid
      checks like the second line below:
      
      +  } else if ((q->flags & TCQ_F_CAN_BYPASS) && !qdisc_qlen(q) &&
      >>         !q->gso_skb &&
      +          !test_and_set_bit(__QDISC_STATE_RUNNING, &q->state)) {
      
      Results of a 2 hour testing for multiple netperf sessions (1,
      2, 4, 8, 12 sessions on a 4 cpu system-X). The BW numbers are
      aggregate Mb/s across iterations tested with this version on
      System-X boxes with Chelsio 10gbps cards:
      
      ----------------------------------
      Size |  ORG BW          NEW BW   |
      ----------------------------------
      128K |  156964          159381   |
      256K |  158650          162042   |
      ----------------------------------
      
      Changes from ver1:
      
      1. Move sch_direct_xmit declaration from sch_generic.h to
         pkt_sched.h
      2. Update qdisc basic statistics for direct xmit path.
      3. Set qlen to zero in qdisc_reset.
      4. Changed some function names to more meaningful ones.
      Signed-off-by: default avatarKrishna Kumar <krkumar2@in.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bbd8a0d3
    • Yevgeny Petrilin's avatar
      mlx4_en: Not using Shared Receive Queues · 9f519f68
      Yevgeny Petrilin authored
      We use 1:1 mapping between QPs and SRQs on receive side,
      so additional indirection level not required. Allocated the receive
      buffers for the RSS QPs.
      Signed-off-by: default avatarYevgeny Petrilin <yevgenyp@mellanox.co.il>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9f519f68
    • Yevgeny Petrilin's avatar
      mlx4_en: Using real number of rings as RSS map size · b6b912e0
      Yevgeny Petrilin authored
      There is no point in using more QPs then actual number of receive rings.
      If the RSS function for two streams gives the same result modulo number
      of rings, they will arrive to the same RX ring anyway.
      Signed-off-by: default avatarYevgeny Petrilin <yevgenyp@mellanox.co.il>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b6b912e0
    • Yevgeny Petrilin's avatar
      mlx4_en: Adaptive moderation policy change · a35ee541
      Yevgeny Petrilin authored
      If the net device is identified as "sender" (number of sent packets
      is higher then the number of received packets and the incoming packets are
      small), set the moderation time to its low limit.
      We do it because the incoming packets are acks, and we don't want to delay them
      Signed-off-by: default avatarYevgeny Petrilin <yevgenyp@mellanox.co.il>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a35ee541
  3. 06 Aug, 2009 9 commits
  4. 05 Aug, 2009 22 commits
  5. 04 Aug, 2009 4 commits
    • Luis R. Rodriguez's avatar
      ath9k: fix compile warning on ath9k_hw_AR9287_check_eeprom() · 6b4f645a
      Luis R. Rodriguez authored
      CC [M]  drivers/net/wireless/ath/ath9k/eeprom.o
      drivers/net/wireless/ath/ath9k/eeprom.c: In function ‘ath9k_hw_AR9287_check_eeprom’:
      drivers/net/wireless/ath/ath9k/eeprom.c:2866: warning: comparison of distinct pointer types lacks a cast
      
      Cc: Vivek Natarajan <vnatarajan@atheros.com>
      Signed-off-by: default avatarLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      6b4f645a
    • Igor Perminov's avatar
      mac80211: FIF_PSPOLL filter flag · e3b90ca2
      Igor Perminov authored
      When an interface is configured in the AP mode, the mac80211
      implementation doesn't inform the driver to receive PS Poll frames.
      It leads to inability to communicate with power-saving stations
      reliably.
      The FIF_CONTROL flag isn't passed by mac80211 to
      ieee80211_ops.configure_filter when an interface is in the AP mode.
      And it's ok, because we don't want to receive ACK frames and other
      control ones, but only PS Poll ones.
      
      This patch introduces the FIF_PSPOLL filter flag in addition to
      FIF_CONTROL, which means for the driver "pass PS Poll frames".
      
      This flag is passed to the driver:
      A) When an interface is configured in the AP mode.
      B) In all cases, when the FIF_CONTROL flag was passed earlier (in
      addition to it).
      Signed-off-by: default avatarIgor Perminov <igor.perminov@inbox.ru>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      e3b90ca2
    • Luis R. Rodriguez's avatar
      ath9k: cancel xmit poll work at stop() callback · e48e3a2f
      Luis R. Rodriguez authored
      We forgot to cancel this work at the stop() callback.
      
      ------------[ cut here ]------------
      WARNING: at net/mac80211/util.c:511 ieee80211_queue_delayed_work+0x3a/0x40 [mac80211]()
      Hardware name: 6460DWU
      queueing ieee80211 work while going to suspend
      Modules linked in: <-- snip -->
      Pid: 5124, comm: phy0 Tainted: G        W  2.6.31-rc3-wl #4
      Call Trace:
       [<ffffffffa03adcda>] ? ieee80211_queue_delayed_work+0x3a/0x40 [mac80211]
       [<ffffffff810552b8>] warn_slowpath_common+0x78/0xd0
       [<ffffffff81055394>] warn_slowpath_fmt+0x64/0x70
       [<ffffffff814ed2c9>] ? thread_return+0x3e/0x635
       [<ffffffffa03adcda>] ieee80211_queue_delayed_work+0x3a/0x40 [mac80211]
       [<ffffffffa0297690>] ath_tx_complete_poll_work+0xc0/0x100 [ath9k]
       [<ffffffffa02975d0>] ? ath_tx_complete_poll_work+0x0/0x100 [ath9k]
       [<ffffffff81069b68>] worker_thread+0x178/0x260
       [<ffffffff8106ecc0>] ? autoremove_wake_function+0x0/0x40
       [<ffffffff810699f0>] ? worker_thread+0x0/0x260
       [<ffffffff8106e89e>] kthread+0x9e/0xb0
       [<ffffffff8101302a>] child_rip+0xa/0x20
       [<ffffffff8106e800>] ? kthread+0x0/0xb0
       [<ffffffff81013020>] ? child_rip+0x0/0x20
      Signed-off-by: default avatarLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      e48e3a2f
    • Luis R. Rodriguez's avatar
      ath9k: add initial hardware support for ar9271 · d7e7d229
      Luis R. Rodriguez authored
      We will finalize this after some driver core changes, for now
      we leave this unsupported.
      
      Cc: Stephen Chen <stephen.chen@atheros.com>
      Cc: Zhifeng Cai <zhifeng.cai@atheros.com>
      Signed-off-by: default avatarLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      d7e7d229