From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S262709AbTLIDdY (ORCPT ); Mon, 8 Dec 2003 22:33:24 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S262714AbTLIDdY (ORCPT ); Mon, 8 Dec 2003 22:33:24 -0500 Received: from k-kdom.nishanet.com ([65.125.12.2]:58886 "EHLO mail2k.k-kdom.nishanet.com") by vger.kernel.org with ESMTP id S262709AbTLIDdR (ORCPT ); Mon, 8 Dec 2003 22:33:17 -0500 Message-ID: <3FD546D5.2000003@nishanet.com> Date: Mon, 08 Dec 2003 22:51:49 -0500 From: Bob User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031014 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 To: linux-kernel Subject: Re: balance interrupts References: <1070911748.2408.39.camel@dhcppc4> In-Reply-To: <1070911748.2408.39.camel@dhcppc4> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Thanks Ken, I've learned from you. Len Brown wrote: >Most IO-APIC systems have PCI interrupt lines hard-wired directly to >IO-APIC interrupt pins. If an interrupt isn't where you want it to be, >you need to physically move a card to another slot so that it gets a >different wire. A board with decent documentation will tell you what >slots get which interrupt wires. > >Today basically all boards have also a PIRQ router that is used to map >these PCI interrupt wires down into PIC interrupt inputs for when the >system is in PIC compatibility mode (eg. when running the booter). >Sometimes they can also re-map interrupt lines in IO-APIC mode. > >Since your system is running in ACPI mode, the output of acpidmp is >needed to figure out exactly that the BIOS is saying the board can do. >The output of lspci -l with this will tell us if we can split apart the >SATA interrupts, or if they're wired together. > >Another twist is that sometimes enabling/disabling devices in the BIOS >SETUP will change how the BIOS configures the hardware and make more >interrupts available. > MSI K7N2 MCP2-T, AMD xp3000+ 333mhz 1:1 clock 2.6.0-test11 pre-emptive, anticipatory, acpi, apic, lapic The manual documents that two pairs of slots will share irq's, one will not. Disabling devices can free up half a dozen interrupts, but still only three will be used for the five slots. I can change which three irq's; that's nothing. No apic or acpi option or manual irq selection will do anything but change which three interrupts are used for pci slots, and nothing will change how many onboard devices per irq, though again which irq can be changed, but that's meaningless(if you can hack a way, I'm not arguing!). lspci -l doesn't work but here is a hex dump by lspci -vvv 3ware hd controller card with 4 drives is on interrupt 16 with a two-slot pcmcia controller, agp8 card always shares interrupt with slot 5 if there is something in slot 5. It's physically impossible to fit 3ware or pcmcia in slot 3 which is the only one with its own interrupt (agp has its own by not putting anything in slot 5! X nvidia driver locks linux up, X nv works, this is why I'm interested in potential conflicts). -Bob cat /proc/interrupts CPU0 0: 65029245 IO-APIC-edge timer 1: 28681 IO-APIC-edge i8042 2: 0 XT-PIC cascade 8: 1 IO-APIC-edge rtc 9: 0 IO-APIC-level acpi 12: 152616 IO-APIC-edge i8042 14: 22 IO-APIC-edge ide0 15: 24 IO-APIC-edge ide1 16: 715655 IO-APIC-level 3ware Storage Controller, yenta, yenta 17: 2170675 IO-APIC-level eth0 21: 0 IO-APIC-level NVidia nForce2 NMI: 0 [works if lilo append="nmi_watchdog=2"] LOC: 65024840 ERR: 0 MIS: 0 00:00.0 Host bridge: nVidia Corporation: Unknown device 01e0 (rev c1) Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- Reset- FastB2B- 00:09.0 IDE interface: nVidia Corporation nForce2 IDE (rev a2) (prog-if 8a [Master SecP PriP]) Subsystem: Micro-Star International Co., Ltd.: Unknown device 5700 Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- SERR- TAbort- SERR- Reset- FastB2B- 01:07.0 RAID bus controller: 3ware Inc 3ware 7000-series ATA-RAID (rev 01) Subsystem: 3ware Inc 3ware 7000-series ATA-RAID Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- SERR- [disabled] [size=64K] Capabilities: [40] Power Management version 1 Flags: PMEClk- DSI- D1+ D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- 01:08.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) Subsystem: Realtek Semiconductor Co., Ltd. RT8139 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- SERR- TAbort- SERR- Reset+ 16bInt+ PostWrite+ 16-bit legacy interface ports at 0001 01:0a.1 CardBus bridge: ENE Technology Inc CB1420 Cardbus Controller (rev 01) Subsystem: Unknown device 414e:454c Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- SERR- Reset+ 16bInt+ PostWrite+ 16-bit legacy interface ports at 0001 01:0b.0 RAID bus controller: Promise Technology, Inc. PDC20376 (rev 02) Subsystem: Promise Technology, Inc.: Unknown device 6620 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66Mhz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- SERR- TAbort- SERR- [disabled] [size=128K] Capabilities: [60] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- Capabilities: [44] AGP version 3.0 Status: RQ=32 Iso- ArqSz=0 Cal=3 SBA+ ITACoh- GART64- HTrans- 64bit- FW+ AGP3+ Rate=x4,x8 Command: RQ=1 ArqSz=0 Cal=0 SBA- AGP- GART64- 64bit- FW- Rate=