From: "Bjørn Mork" <bjorn@mork.no>
To: linux-media@vger.kernel.org
Subject: Re: [PATCH] V4L/DVB: saa7146: Making IRQF_DISABLED or IRQF_SHARED optional
Date: Tue, 06 Apr 2010 13:41:46 +0200 [thread overview]
Message-ID: <87ljd0byf9.fsf@nemi.mork.no> (raw)
In-Reply-To: 201003231541.03636@orion.escape-edv.de
Oliver Endriss <o.endriss@gmx.de> writes:
> Bjørn Mork wrote:
>> As discussed many times, e.g. in http://lkml.org/lkml/2007/7/26/401
>> mixing IRQF_DISABLED with IRQF_SHARED may cause unpredictable and
>> unexpected results.
>>
>> Add a module parameter to allow fine tuning the request_irq
>> flags based on local system requirements. Some may need to turn
>> off IRQF_DISABLED to be able to share interrupt with drivers
>> needing interrupts enabled, while others may want to turn off
>> IRQF_SHARED to ensure that IRQF_DISABLED has an effect.
>
> NAK. We should not add module parameters for this kind of crap.
OK. You are perfectly right. This is something that Should Just Work(tm)
without any user intervention. Sorry for adding confusion.
> Let's check whether IRQF_DISABLED is really required.
> Afaics it can be removed.
Thanks for reviewing.
> @all:
> Please check whether the first patch causes any problems.
Anyone?
FWIW, I do have real stabilitity problems with IRQF_DISABLED. Removing
it seem to have resolved these, and I have not noticed any regressions.
If it matters, this is tested on a quad core system with two DVB-C cards
(one budget-av and one mantis):
bjorn@canardo:~$ lspci -nn
00:00.0 Host bridge [0600]: Intel Corporation 82G33/G31/P35/P31 Express DRAM Controller [8086:29c0] (rev 02)
00:01.0 PCI bridge [0604]: Intel Corporation 82G33/G31/P35/P31 Express PCI Express Root Port [8086:29c1] (rev 02)
00:1a.0 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 [8086:2937] (rev 02)
00:1a.1 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 [8086:2938] (rev 02)
00:1a.2 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 [8086:2939] (rev 02)
00:1a.7 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 [8086:293c] (rev 02)
00:1c.0 PCI bridge [0604]: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 [8086:2940] (rev 02)
00:1c.4 PCI bridge [0604]: Intel Corporation 82801I (ICH9 Family) PCI Express Port 5 [8086:2948] (rev 02)
00:1c.5 PCI bridge [0604]: Intel Corporation 82801I (ICH9 Family) PCI Express Port 6 [8086:294a] (rev 02)
00:1d.0 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 [8086:2934] (rev 02)
00:1d.1 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 [8086:2935] (rev 02)
00:1d.2 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 [8086:2936] (rev 02)
00:1d.7 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 [8086:293a] (rev 02)
00:1e.0 PCI bridge [0604]: Intel Corporation 82801 PCI Bridge [8086:244e] (rev 92)
00:1f.0 ISA bridge [0601]: Intel Corporation 82801IB (ICH9) LPC Interface Controller [8086:2918] (rev 02)
00:1f.2 SATA controller [0106]: Intel Corporation 82801IB (ICH9) 4 port SATA AHCI Controller [8086:2923] (rev 02)
00:1f.3 SMBus [0c05]: Intel Corporation 82801I (ICH9 Family) SMBus Controller [8086:2930] (rev 02)
01:00.0 Ethernet controller [0200]: Intel Corporation 82571EB Gigabit Ethernet Controller [8086:105e] (rev 06)
01:00.1 Ethernet controller [0200]: Intel Corporation 82571EB Gigabit Ethernet Controller [8086:105e] (rev 06)
02:00.0 Ethernet controller [0200]: Atheros Communications L1 Gigabit Ethernet Adapter [1969:1048] (rev b0)
03:00.0 SATA controller [0106]: JMicron Technology Corp. JMB362/JMB363 Serial ATA Controller [197b:2363] (rev 03)
03:00.1 IDE interface [0101]: JMicron Technology Corp. JMB362/JMB363 Serial ATA Controller [197b:2363] (rev 03)
04:00.0 RAID bus controller [0104]: Silicon Image, Inc. SiI 3132 Serial ATA Raid II Controller [1095:3132] (rev 01)
05:00.0 Multimedia controller [0480]: Twinhan Technology Co. Ltd Mantis DTV PCI Bridge Controller [Ver 1.0] [1822:4e35] (rev 01)
05:01.0 Multimedia controller [0480]: Philips Semiconductors SAA7146 [1131:7146] (rev 01)
05:02.0 PCI bridge [0604]: Intel Corporation 80960RP (i960RP) Microprocessor/Bridge [8086:0960] (rev 05)
05:02.1 Memory controller [0580]: Intel Corporation 80960RP (i960RP) Microprocessor [8086:1960] (rev 05)
05:03.0 FireWire (IEEE 1394) [0c00]: VIA Technologies, Inc. VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller [1106:3044] (rev c0)
06:00.0 VGA compatible controller [0300]: ATI Technologies Inc 3D Rage IIC 215IIC [Mach64 GT IIC] [1002:4756] (rev 7a)
canardo:/tmp# lspci -vvnns 5:0
05:00.0 Multimedia controller [0480]: Twinhan Technology Co. Ltd Mantis DTV PCI Bridge Controller [Ver 1.0] [1822:4e35] (rev 01)
Subsystem: TERRATEC Electronic GmbH Device [153b:1178]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort+ <MAbort- >SERR- <PERR- INTx-
Latency: 64 (2000ns min, 63750ns max)
Interrupt: pin A routed to IRQ 16
Region 0: Memory at fcfff000 (32-bit, prefetchable) [size=4K]
Kernel driver in use: Mantis
canardo:/tmp# lspci -vvnns 5:1
05:01.0 Multimedia controller [0480]: Philips Semiconductors SAA7146 [1131:7146] (rev 01)
Subsystem: KNC One Device [1894:0022]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 64 (3750ns min, 9500ns max)
Interrupt: pin A routed to IRQ 17
Region 0: Memory at feaffc00 (32-bit, non-prefetchable) [size=512]
Kernel driver in use: budget_av
Kernel modules: budget-av
bjorn@canardo:~$ cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3
0: 2048 490 41 2367 IO-APIC-edge timer
1: 1 2 2 3 IO-APIC-edge i8042
4: 451 226 240 239 IO-APIC-edge serial
8: 1 0 0 0 IO-APIC-edge rtc0
9: 0 0 0 0 IO-APIC-fasteoi acpi
16: 22944148 25223238 1359277942 1112660476 IO-APIC-fasteoi uhci_hcd:usb1, firewire_ohci, sata_sil24, ahci, Mantis Core
17: 2115 10605 88099554 83744140 IO-APIC-fasteoi pata_jmicron, saa7146 (0)
18: 12 10 9317665 9123739 IO-APIC-fasteoi uhci_hcd:usb3, uhci_hcd:usb6, ehci_hcd:usb7, crid
19: 0 0 0 0 IO-APIC-fasteoi uhci_hcd:usb5
21: 0 0 0 0 IO-APIC-fasteoi uhci_hcd:usb2
23: 0 0 0 0 IO-APIC-fasteoi uhci_hcd:usb4, ehci_hcd:usb8
29: 99482204 2166 15663 10401 PCI-MSI-edge ahci
30: 475961398 551 552 569 PCI-MSI-edge eth1
NMI: 0 0 0 0 Non-maskable interrupts
LOC: 637443973 130774380 705012685 181373819 Local timer interrupts
SPU: 0 0 0 0 Spurious interrupts
PMI: 0 0 0 0 Performance monitoring interrupts
PND: 0 0 0 0 Performance pending work
RES: 1140661 1111450 5481035 3395225 Rescheduling interrupts
CAL: 37565380 232935 25021255 311097 Function call interrupts
TLB: 4019151 1214696 3119638 4351900 TLB shootdowns
TRM: 0 0 0 0 Thermal event interrupts
THR: 0 0 0 0 Threshold APIC interrupts
MCE: 0 0 0 0 Machine check exceptions
MCP: 4862 4862 4862 4862 Machine check polls
ERR: 3
MIS: 0
This system has now been running continously for 16 days with
IRQF_DISABLED removed from the saa7146 driver. With IRQF_DISABLED it
would usually lock up completely after a couple of days.
Bjørn
next prev parent reply other threads:[~2010-04-06 12:20 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-21 20:08 [PATCH] V4L/DVB: saa7146: IRQF_DISABLED causes only trouble Bjørn Mork
2010-03-21 21:24 ` Andy Walls
2010-03-22 9:28 ` Bjørn Mork
2010-03-23 13:46 ` [PATCH] V4L/DVB: saa7146: Making IRQF_DISABLED or IRQF_SHARED optional Bjørn Mork
2010-03-23 14:40 ` Oliver Endriss
2010-04-06 11:41 ` Bjørn Mork [this message]
2010-04-07 9:56 ` [PATCH] V4L/DVB: saa7146: IRQF_DISABLED causes only trouble Andy Walls
2010-04-08 10:05 ` Bjørn Mork
2010-04-09 21:20 ` Andy Walls
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87ljd0byf9.fsf@nemi.mork.no \
--to=bjorn@mork.no \
--cc=linux-media@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox