1. 18 May, 2009 2 commits
    • Eric Dumazet's avatar
      bnx2: bnx2_tx_int() optimizations · d62fda08
      Eric Dumazet authored
      When using bnx2 in a high transmit load, bnx2_tx_int() cost is pretty high.
      
      There are two reasons.
      
      One is an expensive call to bnx2_get_hw_tx_cons(bnapi) for each freed skb
      
      One is cpu stalls when accessing skb_is_gso(skb) / skb_shinfo(skb)->nr_frags
      because of two cache line misses.
      (One to get skb->end/head to compute skb_shinfo(skb),
       one to get is_gso/nr_frags)
      
      This patch :
      
      1) avoids calling bnx2_get_hw_tx_cons(bnapi) too many times.
      
      2) makes bnx2_start_xmit() cache is_gso & nr_frags into sw_tx_bd descriptor.
         This uses a litle bit more ram (256 longs per device on x86), but helps a lot.
      
      3) uses a prefetch(&skb->end) to speedup dev_kfree_skb(), bringing
        cache line that will be needed in skb_release_data()
      
      result is 5 % bandwidth increase in benchmarks, involving UDP or TCP receive
       & transmits, when a cpu is dedicated to ksoftirqd for bnx2.
      
      bnx2_tx_int going from 3.33 % cpu to 0.5 % cpu in oprofile
      
      Note : skb_dma_unmap() still very expensive but this is for another patch,
      not related to bnx2 (2.9 % of cpu, while it does nothing on x86_32)
      Signed-off-by: default avatarEric Dumazet <dada1@cosmosbay.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d62fda08
    • John Dykstra's avatar
      tcp: tcp_prequeue() can use keyed wakeups · 9dc20c5f
      John Dykstra authored
      When TCP frees up write buffer space, avoid waking up tasks that have
      done a poll() or select() on the same socket specifying read-side
      events.
      
      This is an extension of a read-side patch by Eric Dumazet.
      Signed-off-by: default avatarJohn Dykstra <john.dykstra1@gmail.com>
      Acked-by: default avatarEric Dumazet <dada1@cosmosbay.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9dc20c5f
  2. 17 May, 2009 16 commits
  3. 10 May, 2009 1 commit
    • David Woodhouse's avatar
      tun: add tun_flags, owner, group attributes in sysfs · 980c9e8c
      David Woodhouse authored
      This patch adds three attribute files in /sys/class/net/$dev/ for tun
      devices; allowing userspace to obtain the information which TUNGETIFF
      offers, and more, but without having to attach to the device in question
      (which may not be possible if it's in use).
      
      It also fixes a bug which has been present in the TUNGETIFF ioctl since
      its inception, where it would never set IFF_TUN or IFF_TAP according to
      the device type. (Look carefully at the code which I remove from
      tun_get_iff() and how the new tun_flags() helper is subtly different).
      Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      980c9e8c
  4. 09 May, 2009 7 commits
  5. 08 May, 2009 5 commits
  6. 07 May, 2009 9 commits