APIC and edge triggered vs level triggered

From: Miquel van Smoorenburg (miquels@cistron.nl)
Date: Fri Jul 14 2000 - 19:03:42 EDT

  • Next message: Anton Blanchard: "[PATCH] Watch out for those flags!"

    I tried to take a new news server into production last week, with
    the following config:

    AMI Megarum II board w/ 2xPIII/450 1 GB RAM, dual symbios onboard SCSI
    1 9 GB system disk on scsi0, 4 18 GB spool disks on scsi1
    Linux 2.2.17pre11

    After 5-15 minutes, the system hung. The symbios chipset stopped to
    deliver interrupts. When I posted this to linux-scsi, Gerard Roudier
    said that it was logical that the system wasn't stable: APIC PCI
    interrupts have to be level triggered and not edge triggered, while
    the output from /proc/interrupts said:

               CPU0 CPU1
     10: 41954 47456 IO-APIC-edge sym53c8xx
     15: 1684 3355 IO-APIC-edge sym53c8xx

    However, in the AMI BIOS (or the scsi bios) there is no way to adjust
    this. The BIOS sets the interrupts to edge triggered, and that's it.

    I have been able to create a test case with several processes r/w ing
    all 4 disks at the same time while simultaneously running bonnie on
    a raid0 partition spanning 4 disks that triggers the lockup in 1 minute.
    Everything still works, it's just that the symbios chipset stops
    delivering interrupts (due to them being in edge triggered mode I guess).

    I booted with "noapic" and the test has been running for 9 hours now
    without any errors. However this is suboptimal.

    Is there anyone who has seen the same? Is there a way in the Linux
    PCI kernel code to change an interrupt from edge to level triggered?
    I had a look at the PCI code, but it seems that it just takes it
    all from the BIOS and that there's no way to change it.

    Thanks

    Mike.

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.rutgers.edu
    Please read the FAQ at http://www.tux.org/lkml/



    This archive was generated by hypermail 2b29 : Fri Jul 14 2000 - 19:09:12 EDT