Thread (43 messages) flat view 43 messages, 16 authors, 2002-02-19

Re: Weird bug problems with timing of NIC driver loading?

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2002-02-16 19:22:33

Hi,

I have a weird bug report I need some help tracking down:

With both the G3 using either tulip or  bmac NICs and the new G4 using
Sungmem I can reliably and repeatedly show funky net behavior when those
drivers are compiled in or loaded early in the boot process as modules.

This behavior is funny in that ifconfig shows no errors and that packets
are being sent and received (and the lights on the cards seem to support
that) but none of the received info ever seems to make it back upstream
from the card (a receive buffer alignment issue?)

This is repeatable with both machines and with BMAC, TULIP, and SUNGEM
when compiled in or loaded as a module during the normal eth0
initialization during bootup

If I simply compile them as modules and wait until the machine is up and
simply do an insmod and configure the network, they ALL work absolutely
perfectly.
That is weird, you are the first person to report such a problem,
and since such a broad range of HW is affected, I'd rather blame some
other kernel routing problem, possibly some setup of your init scripts,
(or some ECN issue ?)
So whatever the issue is, it seems to be related to when in the boot
process the NIC code is invoked.

Is this due to some change in memory mapping?
No, nothing here should matter.
Is this due to some  change in IRQ assignment?
Neither. IRQ assignement isn't changed, it comes from the firmware
and works on all known HW.
Is this due to some alignment issue with DMA buffers and memory / caches?
I don't think so, especially recent machines have no known cache
coherency problems.
So what is different when a module is loaded by modprobe during the eth0
initialization during bootup versus waiting until the end and then
running insmod to load the module and configure the network.

Just to check I made sure there were no firewall modules loaded at all
and that the network routing tables and things were set properly
(identical to the hand done case at the end of boot-up).

This problem seems to exist in every 2.4.X kernel I have tried.

This problem does not exist in 2.2.X kernels.
That's weird, it could well be an ecn problem. Do you have a switch
or a hub ? to what machine are you trying to talk to ? It really look
like a problem above the drivers.

Ben.


** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help