summaryrefslogtreecommitdiffstats
path: root/cddl/lib
diff options
context:
space:
mode:
authoremax <emax@FreeBSD.org>2012-06-05 18:48:02 +0000
committeremax <emax@FreeBSD.org>2012-06-05 18:48:02 +0000
commitce863bea70dadac926bfa95aae9556285aef43cb (patch)
tree633b5ae3b9d4086a402f340c8b33f210b64c4a8a /cddl/lib
parent5b88f5a88f36f171fa8fa7a9eb509f4fb78672a6 (diff)
downloadFreeBSD-src-ce863bea70dadac926bfa95aae9556285aef43cb.zip
FreeBSD-src-ce863bea70dadac926bfa95aae9556285aef43cb.tar.gz
Before it gets lost in the noise.
Put a bandaid to prevent ixgbe(4) from completely locking up the system under high load. Our platform has a few CPU cores and a single active ixgbe(4) port with 4 queues. Under high enough traffic load, at about 7.5GBs and 700,000 packets/sec (outbound), the entire system would deadlock. What we found was that each CPU was in an endless loop on a different ix taskqueue thread. The OACTIVE flag had gotten set on each queue, and the ixgbe_handle_queue() function was continuously rescheduling itself via the taskqueue_enqueue. Since all CPUs were busy with their taskqueue threads, the ixgbe_local_timer() function couldn't run to clear the OACTIVE flag. Submitted by: scottl MFC after: 1 week
Diffstat (limited to 'cddl/lib')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud