Date: Thu, 18 Aug 2016 11:25:26 +0000 From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 211962] bxe driver queue soft hangs and flooding tx_soft_errors Message-ID: <bug-211962-8@https.bugs.freebsd.org/bugzilla/>
next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=211962 Bug ID: 211962 Summary: bxe driver queue soft hangs and flooding tx_soft_errors Product: Base System Version: 10.3-RELEASE Hardware: Any OS: Any Status: New Severity: Affects Some People Priority: --- Component: kern Assignee: freebsd-bugs@FreeBSD.org Reporter: aler@playground.ru Hardware (from dmesg): QLogic NetXtreme II BCM57711E 10GbE (A0) BXE v:1.78.79 (but this seems not important here) Sometimes (randomly) bxe driver reduces its sending speed to very slow values, and one or more queues fastly increases dev.bxe.#.queue.#.tx_soft_errors value. This can be stopped and returned to normal operation only by restarting the interface (ifconfig down + ifconfig up). It seems i found the bug that causes this. In bxe_tx_mq_start_locked(), when we have both pending and new packet, it first tries to enqueue new packet and exits on fail. After that, it dequeues pending packet and tryes to handle it. Sometimes the tx queue gets overflowed by accident. It is nothing bad, bad what happens next: bxe_tx_mq_start_locked() getting called again and again, with new packets that TCP layer trying to send. Everytime called it tryes to enqueue them, fails and exits, having no way to handle pending packets and reduce queue length. I'm new to bxe driver source code and can be wrong but the patch seems fixed the problem. -- You are receiving this mail because: You are the assignee for the bug.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-211962-8>
