linux/drivers/infiniband/hw/nes
Eric Dumazet 29b4433d99 net: percpu net_device refcount
We tried very hard to remove all possible dev_hold()/dev_put() pairs in
network stack, using RCU conversions.

There is still an unavoidable device refcount change for every dst we
create/destroy, and this can slow down some workloads (routers or some
app servers, mmap af_packet)

We can switch to a percpu refcount implementation, now dynamic per_cpu
infrastructure is mature. On a 64 cpus machine, this consumes 256 bytes
per device.

On x86, dev_hold(dev) code :

before
        lock    incl 0x280(%ebx)
after:
        movl    0x260(%ebx),%eax
        incl    fs:(%eax)

Stress bench :

(Sending 160.000.000 UDP frames,
IP route cache disabled, dual E5540 @2.53GHz,
32bit kernel, FIB_TRIE)

Before:

real    1m1.662s
user    0m14.373s
sys     12m55.960s

After:

real    0m51.179s
user    0m15.329s
sys     10m15.942s

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-10-12 12:35:25 -07:00
..
Kconfig RDMA/nes: Update copyright and branding string 2009-12-09 15:21:56 -08:00
Makefile RDMA/nes: Add a driver for NetEffect RNICs 2008-02-04 20:20:45 -08:00
nes.c RDMA/nes: Fix misindented code 2010-08-04 14:29:31 -07:00
nes.h RDMA/nes: Fix hangs on ifdown 2010-07-28 15:14:27 -07:00
nes_cm.c net: percpu net_device refcount 2010-10-12 12:35:25 -07:00
nes_cm.h RDMA/nes: Fix crash in nes_accept() 2009-12-09 15:54:08 -08:00
nes_context.h RDMA/nes: Update copyright and branding string 2009-12-09 15:21:56 -08:00
nes_hw.c RDMA/nes: Fix hang with modified FIN handling on A0 cards 2010-09-08 14:38:23 -07:00
nes_hw.h RDMA/nes: Fix hang with modified FIN handling on A0 cards 2010-09-08 14:38:23 -07:00
nes_nic.c RDMA/nes: Write correct register write to set TX pause param 2010-09-08 14:29:19 -07:00
nes_user.h RDMA/nes: Update copyright and branding string 2009-12-09 15:21:56 -08:00
nes_utils.c RDMA/nes: Store and print eeprom version 2010-07-28 15:12:38 -07:00
nes_verbs.c net: percpu net_device refcount 2010-10-12 12:35:25 -07:00
nes_verbs.h RDMA/nes: Free kmap() resources 2009-12-09 15:54:28 -08:00