summaryrefslogtreecommitdiffstats
path: root/drivers/net/via-rhine.c
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2007-06-11 02:33:08 +0200
committerDavid S. Miller <davem@sunset.davemloft.net>2007-07-11 07:06:20 +0200
commita7ab4b501f9b8a9dc4d5cee542db67b6ccd1088b (patch)
treef84fa3241fddf8ed8320ace50fed11170ce7860b /drivers/net/via-rhine.c
parent[NET_SCHED]: Cleanup readability of qdisc restart (diff)
downloadlinux-a7ab4b501f9b8a9dc4d5cee542db67b6ccd1088b.tar.xz
linux-a7ab4b501f9b8a9dc4d5cee542db67b6ccd1088b.zip
[TCPv4]: Improve BH latency in /proc/net/tcp
Currently the code for /proc/net/tcp disable BH while iterating over the entire established hash table. Even though we call cond_resched_softirq for each entry, we still won't process softirq's as regularly as we would otherwise do which results in poor performance when the system is loaded near capacity. This anomaly comes from the 2.4 code where this was all in a single function and the local_bh_disable might have made sense as a small optimisation. The cost of each local_bh_disable is so small when compared against the increased latency in keeping it disabled over a large but mostly empty TCP established hash table that we should just move it to the individual read_lock/read_unlock calls as we do in inet_diag. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/via-rhine.c')
0 files changed, 0 insertions, 0 deletions