diff options
author | 2010-05-06 22:07:48 -0700 | |
---|---|---|
committer | 2010-05-06 22:07:48 -0700 | |
commit | eecfd7c4e36ff532d895885971d01d049bd3e014 (patch) | |
tree | f75ee9904f29f9fd8d5a019766e41d3c07066903 /drivers/net/wireless/hostap/hostap_ap.c | |
parent | microblaze: Kill NET_SKB_PAD and NET_IP_ALIGN overrides. (diff) | |
download | wireguard-linux-eecfd7c4e36ff532d895885971d01d049bd3e014.tar.xz wireguard-linux-eecfd7c4e36ff532d895885971d01d049bd3e014.zip |
rps: Various optimizations
Introduce ____napi_schedule() helper for callers in irq disabled
contexts. rps_trigger_softirq() becomes a leaf function.
Use container_of() in process_backlog() instead of accessing per_cpu
address.
Use a custom inlined version of __napi_complete() in process_backlog()
to avoid one locked instruction :
only current cpu owns and manipulates this napi,
and NAPI_STATE_SCHED is the only possible flag set on backlog.
we can use a plain write instead of clear_bit(),
and we dont need an smp_mb() memory barrier, since RPS is on,
backlog is protected by a spinlock.
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/wireless/hostap/hostap_ap.c')
0 files changed, 0 insertions, 0 deletions