[Bug 211962] bxe driver queue soft hangs and flooding tx_soft_errors

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Thu Aug 18 11:25:26 UTC 2016


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 at FreeBSD.org
          Reporter: aler at 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.


More information about the freebsd-bugs mailing list