summaryrefslogtreecommitdiff
path: root/sys/netinet/igmp_var.h
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>2008-11-26 19:07:34 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>2008-11-26 19:07:34 +0000
commit467ee9ea88f7f727bc76e9749e54c8640d07fb0c (patch)
tree5e0c90922be460cc927d962dc9c72bd39ba79dc8 /sys/netinet/igmp_var.h
parentc6324cdcd33e5663da2ab44611f00b5f5606047b (diff)
Avoid network livelock.
Use a 1 tick timeout() to determine if the kernel even manages to get below softclock (from an old diff by mpf). If our timeout comes late, reduce the high water marks (to half) for all network interfaces, thus starving them of future packet allocations for their RX rings. For a few ticks longer, also block the high water marks from rising even if RX ring empty conditions would prod us to do so. Cards may start dropping some packets off the end of their smaller RX rings, but we were not able to do the work required in any case. With less interrupt time and mbuf movement, the system finds time to make progress at the network queues. Userland even gets to run. A x40 tuned to 600MHz shows no real reduction in performance. But a soekris has a working console now. ok dlg claudio, and art liked it too
Diffstat (limited to 'sys/netinet/igmp_var.h')
0 files changed, 0 insertions, 0 deletions