daniel at rimspace.net
Sun Apr 11 22:40:54 MDT 2010
Robert Brockway <robert at timetraveller.org> writes:
> 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 faulty
I really don't know where this comes from: like I say, I believe that y'all
saw this happen, but it can't be a race condition in PCI enumeration or
whatever, because that isn't asynchronous...
✣ Daniel Pittman ✉ daniel at rimspace.net ☎ +61 401 155 707
♽ made with 100 percent post-consumer electrons
More information about the linux