Networking
cancel
Showing results for 
Search instead for 
Did you mean: 

Busywait hang in btlan driver also affects multi-CPU systems, esp. RTE

mvpel
Trusted Contributor

Busywait hang in btlan driver also affects multi-CPU systems, esp. RTE

HP document QXCR1000548150 (May 3, 2005) describes a hang in the "btlan" universal 10/100 Ethernet driver which affects all 100-base-T Core IO cards and A3738A and J3515A (HSC).

When there is nothing plugged into the RJ-45 port, such as if you're using a GigE card instead of the Core IO ethernet, the driver will probe the 10/100 card for 150ms every 16 seconds to try to find a live AUI or BNC Ethernet connection.

This probe halts all other processing on the CPU handling the driver's interrupt. If it's your only CPU, of course that means "all other processing."

The document states "if your system has only one CPU, you will see a periodic system
hang."

But in fact, this hang still occurs if you have multiple CPUs, it's just that most things are able to run on other CPUs while the hang is taking place - you're still wasting 1% of the CPU time of one CPU in the system.

What's more, if you have processor sets, and have all your CPUs defined as real-time except for one, then the system essentially behaves like a one-CPU system as far as the kernel is concerned, because kernel daemons aren't scheduled on RTE psets.

And if you have more than one affected card, such as if you have a backup core IO card for fault tolerance as recommended, the hang adds up to 300ms every 16 seconds.

HP's recommended solution is to install an RJ-45 loopback plug (pin 1 to 3, pin 2 to 6) or connect it to a hub or switch. This way, the driver sees the 10-base-T link active signal and doesn't try to find AUI or BNC.
3 REPLIES
Laurent Menase
Honored Contributor

Re: Busywait hang in btlan driver also affects multi-CPU systems, esp. RTE

Indeed, it is a good finding, very specific but good finding.


mvpel
Trusted Contributor

Re: Busywait hang in btlan driver also affects multi-CPU systems, esp. RTE

Very specific, yes, but much less specific than the 11i v1 kernel bug we recently found over here. :)
mvpel
Trusted Contributor

Re: Busywait hang in btlan driver also affects multi-CPU systems, esp. RTE

Turns out they added a lanadmin tunable to set the time for this busywait operation in PHNE_39142 from January 2009, so it's no longer necessary to install a loopback plug on an unused btlan RJ45 port:

/usr/sbin/lanadmin -x get_param aui_busywait
/usr/sbin/lanadmin -X set_param aui_busywait