IRQs, SATA, and APICs in the 865/875 chipset

Discussion in 'Abit' started by Andrew Schulman, Aug 1, 2003.

  1. Here's a rambling question. Basically I want to understand the relationship
    between IRQs, SATA, and APICs, on mainboards that use the Intel 865/875
    chipset.

    I have an Abit IS7, running Linux 2.4.21 and Win2K. My focus right now is
    on Linux. (a.c.p.m.asus readers, please don't flame me-- my question
    applies equally well to any 865/875 mobo, and I figure there are quite a few
    owners of those reading your NG.)

    I'm considering adding a SATA drive to my rig. I've seen reports in the
    newsgroups that some people are having trouble getting good performance out
    of these drives, especially in Linux, using mobos that have the 865/875
    chipset. The problem seems to be related to IRQ sharing-- the SATA
    channels are multiplexed with other devices on a single IRQ (e.g.
    http://lists.insecure.org/lists/linux-kernel/2003/Jul/0429.html). Here's
    the situation on my box:

    $ cat /proc/interrupts
    CPU0
    0: 153043 IO-APIC-edge timer
    1: 2693 IO-APIC-edge keyboard
    2: 0 XT-PIC cascade
    8: 3 IO-APIC-edge rtc
    9: 0 XT-PIC acpi
    12: 68748 IO-APIC-edge PS/2 Mouse
    14: 18451 IO-APIC-edge ide0
    15: 6 IO-APIC-edge ide1
    16: 90301 IO-APIC-level usb-uhci, usb-uhci, nvidia
    18: 16555 IO-APIC-level usb-uhci, SysKonnect SK-98xx
    19: 0 IO-APIC-level usb-uhci
    20: 21 IO-APIC-level DC395x_TRM
    23: 0 IO-APIC-level ehci-hcd
    NMI: 0
    LOC: 152994
    ERR: 0
    MIS: 0

    My boot log tells me that both SATA channels will go onto IRQ 18, sharing
    that one IRQ with a USB 1.1 device and my ethernet controller. So it seems
    that I may be headed for the sort of IRQ logjam that others have
    reported.

    Several questions arise:

    - Is it likely to be a problem to share one IRQ between two SATA drives, a
    USB 1.1 device, and my ethernet controller? The USB is a slow device, but
    the Ethernet could run at 100 or even 1000 Mb/s if I use it on my LAN.

    - Do I really have 24 IRQs now? Or do I still really have 16, which are
    logically presented as 24? In the old days, there were only 16 IRQs (15
    really), and it was sometimes a problem that there weren't enough to go
    around. But the FOLDOC definition of an APIC
    (http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?query=apic&action=Search)
    says that it "usually has more available interrupt lines that a typical
    PIC."

    - Can any of you report success or problems with throughput of SATA drives,
    using the 865/875 chipset, especially in Linux? What does your IRQ
    arrangement look like?

    - Has anyone successfully rearranged their IRQ usage to avoid logjams? Did
    you do it in the BIOS, or in the OS (which OS?)? Unfortunately, the IS7's
    BIOS doesn't offer any explicit control over IRQs that I can find.

    Thanks in advance for your time.
    Andrew.
     
    Andrew Schulman, Aug 1, 2003
    #1
    1. Advertisements

  2. I can't say anything specifically about that chipset, but yes, when running
    with APIC interrupt mode, you do indeed have 24 (or whatever number) of
    IRQs. The 16-interrupt limit is strictly from the old PIC mode.

    I believe that when you have multiple devices on one IRQ, basically when an
    interrupt arrives on that line the OS goes through each device on it in some
    order and asks each driver to determine whether it is the device that raised
    the interrupt. Whether or not this causes any significant slowdown likely
    depends on how well written the driver is and how well-designed the hardware
    is for that device.

    As far as rearranging the IRQs, I believe that isn't really possible in most
    cases - likely because of the devices being hard-wired to certain interrupt
    lines on the motherboard. For devices in PCI slots, changing the slots used
    may alter the IRQ assignment..
     
    Robert Hancock, Aug 5, 2003
    #2
    1. Advertisements

  3. Okay, thank you.
    If this is true, it's curious because many of my IRQs appear to be unused,
    while others are multiplexed. With the old PICs there were some IRQs set
    aside for legacy uses, e.g. IRQ 5 for some old sound card
    something-or-other. But I would expect the new APICs to have jettisoned
    some of that baggage, and with 8 new IRQs too, it seems that one would want
    to spread devices around to use the available lines.

    Oh well, I guess I just have to try it and see how well it works.
     
    Andrew Schulman, Aug 5, 2003
    #3
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.