Re: 2.6.20-rc7: known regressions (v2) (part 1)

From: Adam Kropelin
Date: Sat Feb 03 2007 - 18:21:51 EST


Eric W. Biederman wrote:
Auke Kok <auke-jan.h.kok@xxxxxxxxx> writes:

maybe I've been unclear, but here's how e1000 detects link changes:

1) by checking every 2 seconds in the watchdog by reading PHY
registers 2) by receiving an interrupt from the NIC with the LSI bit
in the interrupt control register

if the link is down to start with, the watchdog will obviously spot
a 'link up' change since it doesn't use any interrupts.

The link interrupt (LSI) is a generic interrupt that comes over the
same vector (be it MSI or not) as RX interrupts, and in your case
doesn't arrive at all, which should be demonstrateable if you set
e.g. the watchdog interval to 30 seconds and unplug the cable - the
driver won't spot the link change until the watchdog fires a lot
later than you unplugged the cable.

The behavior I observe on 2.6.19 is better than 2.6.20-rc7. Link
status interrupts seem to work but rx/tx does not. A few more
details here:

<http://www.kroptech.com/~adk0212/mailimport/showmsg.php?msg_id=3339092450&db_name=linux_kernel>

Can I get the corresponding lspci -xxx output. I suspect the BIOS
did not program the hypertransport MSI mapping capabilities correctly.
All it has to do is set the enable but still, occasionally BIOS
writers miss the most amazing things.

Here you go. This is from 2.6.20-rc7.

--Adam

Attachment: lspci-2.6.20-rc7
Description: Binary data