Distribution: FC2 Hardware Environment: IBM T41/R50p Software Environment: FC2 Full install Problem Description: some interrupt links are not routed as I specified in BIOS Steps to reproduce: I specify in BIOS like this [LNKA] = IRQs 10 [LNKB] = IRQs 3 [LNKC] = IRQs 4 [LNKD] = IRQs 5 [LNKE] = IRQs 6 [LNKF] = IRQs 7 [LNKG] = IRQs 11 [LNKH] = IRQs 11 When booting, ACPI says like this: ACPI: Using PIC for interrupt routing ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 9 *10 11) ACPI: PCI Interrupt Link [LNKB] (IRQs *3 4 5 6 7 9 10 11) ACPI: PCI Interrupt Link [LNKC] (IRQs 3 *4 5 6 7 9 10 11) ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 *5 6 7 9 10 11) ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 7 9 10 11) ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 9 10 11) ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 7 9 10 11) ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 7 9 10 *11) So it seems it cannot map LINK[e,f,g] to IRQ values i specified in BIOS. The same happens if I boot with pci=noacpi. This means that some devices are sharing some irq, and I don't want that. Can this be changed ? Can I mannualy allocate irq x to LNK y thru a kernel parameter ?
why do you want allocate an IRQ to LNKE? if LNKE has no active IRQ, this means no PCI devices use LNKE. If one PCI device does use LNKE, ACPI will assign an IRQ to LNKE.
Well, Right now I have some devices sharing IRQ as you can see in: cat /proc/interrupts CPU0 0: 13596725 XT-PIC timer 1: 26695 XT-PIC i8042 2: 0 XT-PIC cascade 3: 0 XT-PIC Intel 82801DB-ICH4 4: 0 XT-PIC uhci_hcd 5: 0 XT-PIC uhci_hcd 8: 1 XT-PIC rtc 9: 1827 XT-PIC acpi 10: 762076 XT-PIC uhci_hcd, eth0, radeon@PCI:1:0:0 12: 776798 XT-PIC i8042 14: 53842 XT-PIC ide0 15: 2263 XT-PIC ide1 So I wanted to manualy specify the IRQ for eth0 to be 11. If I put in BIOS LNKF pointing to IRQ 11, nothing happens. It is true that the eth0 is on another PCI bus. Maybe what I want is not possible, but I don't know then why do I have that option in BIOS.
The main reason I don't want to share IRQ, is because when I resume from S3, I experience some interrupt instabilities. So I tried to keep each device with his IRQ and not sharing them. If, for instance something goes wrong with the USB, then it will not affect other devices.
Now I booted 2.6.7-rc3 and I have: ACPI: Using PIC for interrupt routing ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 9 *10 11) ACPI: PCI Interrupt Link [LNKB] (IRQs *3 4 5 6 7 9 10 11) ACPI: PCI Interrupt Link [LNKC] (IRQs 3 *4 5 6 7 9 10 11) ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 *5 6 7 9 10 11) ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 7 9 10 11) *0, disabled. ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 9 10 11) *0, disabled. ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 7 9 10 11) *0, disabled. ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 7 9 10 *11) ACPI: PCI Root Bridge [PCI0] (00:00) PCI: Probing PCI hardware (bus 00) PCI: Ignoring BAR0-3 of IDE controller 0000:00:1f.1 PCI: Transparent bridge - 0000:00:1e.0 ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT] ACPI: Embedded Controller [EC] (gpe 28) ACPI: Power Resource [PUBS] (on) ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGP_._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI1._PRT]
please attache the output from lspci -vv please attach the *complete* dmesg
oh, and also we'll need the output from acpidmp, available in /usr/sbin or in pmtools: http://ftp.kernel.org/pub/linux/kernel/people/lenb/acpi/utils/
Created attachment 3418 [details] full dmesg I changed to kernel 2.6.8-rc2 with latest acpi patch as you can see from dmesg
Created attachment 3419 [details] lspci -vv
Created attachment 3420 [details] output of acpidmp
any change with 2.6.9?
any change with linux 2.6.10?
Hi Len, No change yet. Tested with 2.6.9, 2.6.10, 2.6.11rc2
The reason that LNKE, LNKF, LNKG are not set as specified in BIOS SETUP is because they are unused and are disabled. The dmesg from the latest kernel should have the word "disabled" on those links. Note that it is not possible to change the association of devices to Interrupt Links, for that reflects physical wires on the motherboard. This association can only be changed when you can physically move a device to another slot. On this machine, the following devices are physically tied to LNKA: Device (AGP) { Name (_ADR, 0x00010000) Name (_PRT, Package (0x02) { Package (0x04) { 0xFFFF, 0x00, \_SB.LNKA, 0x00 }, int-A of your graphics (PCI bus 1, device 0) Package (0x04) { 0x001DFFFF, 0x00, \_SB.LNKA, 0x00 }, USB Universal Host Controller Interface driver v2.2 ACPI: PCI interrupt 0000:00:1d.0[A] -> GSI 10 (level, low) -> IRQ 10 Device (PCI1) { Name (_ADR, 0x001E0000) Name (_PRT, Package (0x0D) { Package (0x04) { 0xFFFF, 0x00, \_SB.LNKA, 0x00 }, int-A of device 0 on PCI bus 2 Package (0x04) { 0x0001FFFF, 0x00, \_SB.LNKA, 0x00 }, Intel(R) PRO/1000 Network Driver - version 5.2.52-k4 Copyright (c) 1999-2004 Intel Corporation. ACPI: PCI interrupt 0000:02:01.0[A] -> GSI 10 (level, low) -> IRQ 10 Package (0x04) { 0x0002FFFF, 0x02, \_SB.LNKA, 0x00 }, int-C of device 2 Package (0x04) { 0x0004FFFF, 0x02, \_SB.LNKA, 0x00 }, int-C of device 4 Device (DOCK) { Name (_ADR, 0x00030000) Name (_S3D, 0x02) Name (_PRT, Package (0x06) { Package (0x04) { 0xFFFF, 0x00, \_SB.LNKA, 0x00 }, int-A of device 0 on the dock device > 10: 762076 XT-PIC uhci_hcd, eth0, radeon@PCI:1:0:0 In summary, you'll be able to move these three devices around, but you'll not be able to split them from each other. Linux is working properly here, and the machine is working as it was designed -- though one might wish that it were designed with less interrupt wire sharing... BTW. a more recent kernel would illustrate this better in dmesg, as the links that are used for each device are specified when the device interrupt is configured.