2 Replies Latest reply on Jan 10, 2013 2:42 AM by dr_st

    82573L - high interrupts hurt performance of Cardbus devices

    dr_st

      I recently discovered a problem with the Intel PRO/1000 PL (82573L) LAN, installed on a Thinkpad T60 (945/ICH7-M system).

       

      The problem may affect other systems with the same LAN adapter, but I have none to try. However, I verified it on two different T60 units, and it has been reported by others as well.

       

      The problem affects the Windows XP operating system. I haven't tried newer versions of Windows (XP is what those machines I have originally came with).

       

      Background and problem description:

      * The 82573L LAN on these systems shares the same IRQ (16) with the Cardbus controller. The IRQ is set by WinXP itself as part of ACPI, and cannot be changed.

      * Whenever I/O happens on a device connected to the Cardbus controller (a soundcard, or a card reader / USB / other adapter), very high CPU utilization (15-30%) by "hardware interrupts" is seen. This causes poor performance of said Cardbus devices compared to other systems.

      * Trial and error showed that disabling the LAN controller solves the problem. Furthermore, if it is disabled and immediately enabled - the problem does not come back. It does come back after every reboot, or if a different Cardbus device is plugged.

       

      Assumption:

       

      When an interrupt arrives, XP calls the interrupt handlers of all drivers registered to the same IRQ, in some predefined order. It appears that once the 82573L interrupt handler is called, and the interrupt does not belong to it, it from some reason "hogs the CPU" more than expected. I know that the handler is not actually processing interrupts from the LAN, because the LAN was disconnected during all these tests.

       

      This explains why disable/enable fixes the issue - XP probably pushes newly enabled devices to the end of the IRQ list, and now the Cardbus controller is called to handle its own interrupt before the LAN handler gets a chance to "interfere".

       

      The assumption is consistent with the fact that no problems were observed on Fedora Linux, as the Intel LAN driver there uses MSI interrupts. XP does not support MSI, so it won't help us.

       

      I tried several versions of XP LAN drivers, including the latest (9.15.17.0 from 07/Mar/2012) and all had the problem. However, I believe it should be possible to handle it, since in the same shared IRQ situation, the older PRO/1000 MT (82540EP) LAN controller which I have on another laptop does not exhibit the same behavior.

       

      I know we are talking very old products here - but does anyone at Intel think a fix might be possible?