robert at timetraveller.org
Sun Apr 11 22:23:02 MDT 2010
On Mon, 12 Apr 2010, Daniel Pittman wrote:
> ...not generally for anyone, really, in my experience.
>> I've had many cases where things like ethernet cards or disk controllers
>> would be initialised in different orders each boot, I blame a race condition
>> (whichever card was ready to respond to the PCI bus first got eth0), though
>> it's entirely possible the kernel was written to deliberately do it in order
>> to piss people like me off.
> Linux PCI scanning and enumeration is synchronous, and always has been.
> There have been occasional experimental patches over the years to make
> it asynchronous, but none of 'em ever made it into the mainline kernel.
> A few times — three, IIRC — since the 2.2 era the order of PCI enumeration has
> reversed, which means that two different kernel versions would detect cards
> in a different order. You would have to boot two different kernels to see
> that, though.
Around 2003-2004 I definitely had a box which would flip the order of
detection of the NICs on boot with the same kernel. I could demonstrate
this behaviour. ie, if I booted it 5 or 6 times I would see the problem
occur at least once. Unfortunately I was using it as a firewall when I
discovered this problem - the damn thing flipped the interfaces and
suddenly the firewall was facing the wrong way.
I've met other sysadmins who have also reported this problem under Linux.
The problems seem to have melted away when iftab came in to common use -
but this would work around the problem rather than fix it. Now we have
udev of course.
> So, I don't doubt your symptoms — unpredictable enumeration — exist, but your
And yet I saw it, and could reproduce it. Like another poster I put it
down to a race condition. Perhaps it was an obscure hardware bug or even
Once the problem occured this box (and another identical one) were
deployed into roles where only one NIC was required.
Email: robert at timetraveller.org
Open Source: The revolution that silently changed the world
More information about the linux