Re: [PATCH v5 06/27] irq_domain/powerpc: eliminate irq_map; use irq_alloc_desc() instead

Andreas Schwab
2012-04-03T12:11:23Z

Grant Likely <grant.likely@secretlab.ca> writes:

> Can you dump out /debug/powerpc/virq_mapping from both before and
> after the irq_map patch is applied?

before:
virq hwirq chip name chip data host name
16 0x00000 MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
21 0x00001 MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
24 0x00002 MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
25 0x00019 MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
26 0x0001a MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
27 0x0001b MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
28 0x0001c MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
29 0x0003d MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
30 0x0001e MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
31 0x0003c MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
39 0x00027 MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
40 0x00028 MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
41 0x00029 MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
42 0x0002a MPIC 2 0xc00000017a011000 /u3@0,f8000000/mpic@f8040000
47 0x0002f MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
59 0x000fb MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
60 0x000fc MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
61 0x000fd MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
62 0x000fe MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
63 0x0003f MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000

after:
virq hwirq chip name chip data host name
16 0x00000 MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
21 0x00001 MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
24 0x00002 MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
25 0x00019 MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
26 0x0001a MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
27 0x0001b MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
28 0x0001c MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
30 0x0001e MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
39 0x00027 MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
40 0x00028 MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
41 0x00029 MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
42 0x0002a MPIC 2 0xc00000017a011000 /u3@0,f8000000/mpic@f8040000
47 0x0002f MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
59 0x000fb MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
60 0x000fc MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
61 0x000fd MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
62 0x000fe MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
63 0x0003f MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
64 0x0003d MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000
65 0x0003c MPIC 1 0xc00000017a010000 /ht@0,f2000000/pci@1/mac-io@7/mpic@40000

But I have NR_IRQS=64. Bounds checking missing? Irqs 64/65 are related
to the sound chip (headphone-detect and line-out-detect).

When reconfiguring with NR_IRQS=128 interrupts are working again, but I
still see a lot of spurious interrupts, and the X server is still broken
(no input works, but I still don't know whether that is an unrelated
bug).

This is a sample of /proc/interrupts from 3.3 (with NR_IRQS=64):
CPU0 CPU1
16: 2039 6070 MPIC 1 Level sata_svw
21: 0 0 MPIC 1 Edge i2sbus: i2s-a (tx)
22: 12 20 MPIC 1 Level
23: 14 18 MPIC 1 Level
24: 0 0 MPIC 1 Edge i2sbus: i2s-a (rx)
25: 3 0 MPIC 1 Level VIA-PMU
26: 16 62 MPIC 1 Level keywest i2c
27: 0 1 MPIC 1 Level ohci_hcd:usb2
28: 0 1 MPIC 1 Level ohci_hcd:usb3
29: 0 0 MPIC 1 Edge headphone-detect
30: 0 0 MPIC 1 Level i2sbus: i2s-a (control)
31: 0 0 MPIC 1 Edge line-output-detect
39: 22 64 MPIC 1 Level pata-pci-macio
40: 0 2 MPIC 1 Level firewire_ohci
41: 52 147 MPIC 1 Level eth0
42: 1732 5053 MPIC 2 Level keywest i2c
47: 0 0 MPIC 1 Level GPIO1 ADB
59: 0 0 MPIC 1 Edge ipi call function
60: 2064 1940 MPIC 1 Edge ipi reschedule
61: 3406 945 MPIC 1 Edge ipi call function single
62: 0 0 MPIC 1 Edge ipi debugger
63: 39 91 MPIC 1 Level ehci_hcd:usb1, ohci_hcd:usb4, ohci_hcd:usb5
LOC: 3503 3719 Local timer interrupts
SPU: 2 0 Spurious interrupts
CNT: 0 0 Performance monitoring interrupts
MCE: 0 0 Machine check exceptions

This is a sample of /proc/interrupts from 3.4-rc1 (with NR_IRQS=128):
CPU0 CPU1
16: 2603 7596 MPIC 1 Level sata_svw
21: 1 0 MPIC 1 Edge i2sbus: i2s-a (tx)
22: 13 19 MPIC 1 Level
23: 8 24 MPIC 1 Level
24: 0 1 MPIC 1 Edge i2sbus: i2s-a (rx)
25: 2 1 MPIC 1 Level VIA-PMU
26: 21 57 MPIC 1 Level keywest i2c
27: 0 1 MPIC 1 Level ohci_hcd:usb2
28: 0 1 MPIC 1 Level ohci_hcd:usb3
30: 0 0 MPIC 1 Level i2sbus: i2s-a (control)
39: 39 131 MPIC 1 Level pata-pci-macio
40: 2 2 MPIC 1 Level firewire_ohci
41: 93 268 MPIC 1 Level eth0
42: 8569 24140 MPIC 2 Level keywest i2c
47: 0 0 MPIC 1 Level GPIO1 ADB
60: 1 0 MPIC 1 Edge line-output-detect
61: 1 0 MPIC 1 Edge headphone-detect
63: 153 502 MPIC 1 Level ehci_hcd:usb1, ohci_hcd:usb4, ohci_hcd:usb5
123: 0 0 MPIC 1 Edge ipi call function
124: 1978 2349 MPIC 1 Edge ipi reschedule
125: 2356 1816 MPIC 1 Edge ipi call function single
126: 0 0 MPIC 1 Edge ipi debugger
LOC: 4417 7985 Local timer interrupts
SPU: 9586 25811 Spurious interrupts
CNT: 0 0 Performance monitoring interrupts
MCE: 0 0 Machine check exceptions

Andreas.

--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."