Thomas Gleixner
8d32a307e4
genirq: Provide forced interrupt threading
...
Add a commandline parameter "threadirqs" which forces all interrupts except
those marked IRQF_NO_THREAD to run threaded. That's mostly a debug option to
allow retrieving better debug data from crashing interrupt handlers. If
"threadirqs" is not enabled on the kernel command line, then there is no
impact in the interrupt hotpath.
Architecture code needs to select CONFIG_IRQ_FORCED_THREADING after
marking the interrupts which cant be threaded IRQF_NO_THREAD. All
interrupts which have IRQF_TIMER set are implict marked
IRQF_NO_THREAD. Also all PER_CPU interrupts are excluded.
Forced threading hard interrupts also forces all soft interrupt
handling into thread context.
When enabled it might slow down things a bit, but for debugging problems in
interrupt code it's a reasonable penalty as it does not immediately
crash and burn the machine when an interrupt handler is buggy.
Some test results on a Core2Duo machine:
Cache cold run of:
# time git grep irq_desc
non-threaded threaded
real 1m18.741s 1m19.061s
user 0m1.874s 0m1.757s
sys 0m5.843s 0m5.427s
# iperf -c server
non-threaded
[ 3] 0.0-10.0 sec 1.09 GBytes 933 Mbits/sec
[ 3] 0.0-10.0 sec 1.09 GBytes 934 Mbits/sec
[ 3] 0.0-10.0 sec 1.09 GBytes 933 Mbits/sec
threaded
[ 3] 0.0-10.0 sec 1.09 GBytes 939 Mbits/sec
[ 3] 0.0-10.0 sec 1.09 GBytes 934 Mbits/sec
[ 3] 0.0-10.0 sec 1.09 GBytes 937 Mbits/sec
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
LKML-Reference: <20110223234956.772668648@linutronix.de>
2011-02-26 11:57:18 +01:00
..
ABI
Merge branch 'can/at91_can-for-net-2.6' of git://git.pengutronix.de/git/mkl/linux-2.6
2011-01-24 15:16:11 -08:00
accounting
taskstats: pad taskstats netlink response for aligment issues on ia64
2010-12-22 19:43:34 -08:00
acpi
ACPI, APEI, Add APEI generic error status printing support
2010-12-13 23:42:12 -05:00
aoe
arm
Revert "dt: add documentation of ARM dt boot interface"
2011-02-14 08:13:20 -07:00
auxdisplay
blackfin
block
Documentation: remove anticipatory scheduler info
2010-11-11 12:09:59 +01:00
blockdev
cdrom
cgroups
revert documentaion update for memcg's dirty ratio.
2011-01-14 07:52:02 -08:00
connector
console
cpu-freq
cpuidle
cris
crypto
development-process
Documentation/development-process: more staging info
2010-11-18 15:00:47 -08:00
device-mapper
dm: raid456 basic support
2011-01-13 20:00:02 +00:00
devicetree
Revert "dt: add documentation of ARM dt boot interface"
2011-02-14 08:13:20 -07:00
DocBook
drm: fix wrong usages of drm_device in DRM Developer's Guide
2011-02-15 09:01:29 +10:00
driver-model
driver core: prune docs about device_interface
2010-11-10 16:57:11 -08:00
dvb
[media] Documentation/lmedm04: Fix firmware extract information
2010-12-29 08:16:30 -02:00
early-userspace
fault-injection
fb
Merge branch 'fbdev/udlfb'
2011-01-06 18:10:09 +09:00
filesystems
NTFS: Fix invalid pointer dereference in ntfs_mft_record_alloc().
2011-01-31 12:58:11 +10:00
firmware_class
frv
hwmon
hwmon: (lm93) Add support for LM94
2011-01-18 12:22:54 -08:00
i2c
i2c: Add generic I2C multiplexer using GPIO API
2011-01-10 22:11:23 +01:00
i2o
ia64
ide
infiniband
input
Input: fix force feedback capability query example
2011-01-11 01:07:55 -08:00
ioctl
pps: add kernel consumer support
2011-01-13 08:03:21 -08:00
isdn
ja_JP
kbuild
Merge branch 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6
2011-01-10 08:57:03 -08:00
kdump
kdump: update kexec-tools URL and Vivek's email
2010-11-25 14:36:38 +01:00
ko_KR
Docs/Kconfig: Update: osdl.org -> linuxfoundation.org
2010-11-15 23:50:13 +01:00
kvm
Merge branch 'kvm-updates/2.6.38' of git://git.kernel.org/pub/scm/virt/kvm/kvm
2011-01-13 10:14:24 -08:00
laptops
leds
Documentation: led drivers lp5521 and lp5523
2010-11-12 07:55:32 -08:00
lguest
lguest: document --rng in example Launcher
2011-01-20 21:37:29 +10:30
m68k
make
kbuild: introduce HDR_ARCH_LIST for headers_install_all
2010-12-14 22:16:19 +01:00
mips
misc-devices
Documentation: short descriptions for bh1770glc and apds990x drivers
2010-10-26 16:52:14 -07:00
mmc
mn10300
mtd
namespaces
netlabel
networking
net: fix ifenslave build flags
2011-02-10 20:05:25 -08:00
nfc
NFC: Driver for NXP Semiconductors PN544 NFC chip.
2011-01-13 08:03:19 -08:00
parisc
PCI
pcmcia
power
PM: Fix references to basic-pm-debugging.txt in drivers-testing.txt
2010-12-24 15:02:41 +01:00
powerpc
dt: Move device tree documentation out of powerpc directory
2011-01-31 00:09:01 -07:00
pps
pps: add parallel port PPS signal generator
2011-01-13 08:03:21 -08:00
prctl
RCU
rcu: update documentation/comments for Lai's adoption patch
2010-11-29 22:01:59 -08:00
s390
scheduler
sched, docs: Update schedstats documentation to version 15
2011-02-01 09:07:13 +01:00
scsi
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2011-01-13 10:05:56 -08:00
serial
pps: timestamp is always passed to dcd_change()
2011-01-13 08:03:20 -08:00
sh
sh: clkfwk: Kill off unused clk_set_rate_ex().
2010-11-15 18:25:12 +09:00
sound
ALSA: HDA: Add a new model "asus" for Conexant 5066/205xx
2011-01-22 17:29:22 +01:00
sparc
spi
arm/pxa2xx: reorgazine SSP and SPI header files
2010-12-01 12:18:33 +01:00
sysctl
sysctl: remove obsolete comments
2011-01-13 08:03:18 -08:00
target
[SCSI] target: Add LIO target core v4.0.0-rc6
2011-01-14 10:12:29 -06:00
telephony
thermal
thermal: Add event notification to thermal framework
2011-01-12 00:08:35 -05:00
timers
tree-wide: fix comment/printk typos
2010-11-01 15:38:34 -04:00
trace
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2011-01-13 10:05:56 -08:00
uml
usb
USB: use the runtime-PM autosuspend implementation
2010-11-16 14:03:41 -08:00
video4linux
[media] v4l2-ctrls: v4l2_ctrl_handler_setup must set is_new to 1
2011-01-19 11:45:32 -02:00
vm
thp: transparent hugepage support documentation
2011-01-13 17:32:38 -08:00
w1
w1: DS2423 counter driver and documentation
2011-01-13 08:03:22 -08:00
watchdog
wimax
x86
x86: support XZ-compressed kernel
2011-01-13 08:03:25 -08:00
zh_CN
Docs/Kconfig: Update: osdl.org -> linuxfoundation.org
2010-11-15 23:50:13 +01:00
.gitignore
00-INDEX
apparmor.txt
applying-patches.txt
atomic_ops.txt
bad_memory.txt
basic_profiling.txt
binfmt_misc.txt
braille-console.txt
bt8xxgpio.txt
btmrvl.txt
BUG-HUNTING
bus-virt-phys-mapping.txt
cachetlb.txt
Changes
circular-buffers.txt
coccinelle.txt
scripts/coccinelle: update for compatability with Coccinelle 0.2.4
2010-12-03 12:27:01 +01:00
CodingStyle
cpu-hotplug.txt
cpu-load.txt
cputopology.txt
credentials.txt
dcdbas.txt
debugging-modules.txt
debugging-via-ohci1394.txt
dell_rbu.txt
devices.txt
Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6
2010-10-28 09:35:11 -07:00
DMA-API-HOWTO.txt
DMA-API.txt
DMA-attributes.txt
DMA-ISA-LPC.txt
dmaengine.txt
dontdiff
Documentation/dontdiff: add further autogenerated files to ignore list
2011-01-06 09:59:37 -08:00
dynamic-debug-howto.txt
edac.txt
EDAC: Fix typos in Documentation/edac.txt
2010-11-25 17:32:47 +01:00
eisa.txt
email-clients.txt
Documentation/email-clients.txt: update Thunderbird docs with wordwrap plugin
2011-01-13 08:03:15 -08:00
feature-removal-schedule.txt
memsw: deprecate noswapaccount kernel parameter and schedule it for removal
2011-02-02 16:03:18 -08:00
flexible-arrays.txt
futex-requeue-pi.txt
gcov.txt
gpio.txt
Revert "gpiolib: annotate gpio-intialization with __must_check"
2011-01-13 17:26:46 -08:00
highuid.txt
HOWTO
hw_random.txt
init.txt
initrd.txt
Intel-IOMMU.txt
intel_txt.txt
io-mapping.txt
io_ordering.txt
iostats.txt
remove extraneous 'is' from Documentation/iostats.txt
2011-01-03 14:00:28 +01:00
IPMI.txt
IPMI: Add the document description of ipmi_get_smi_info
2010-12-14 00:22:00 -05:00
IRQ-affinity.txt
IRQ.txt
irqflags-tracing.txt
isapnp.txt
java.txt
kernel-doc-nano-HOWTO.txt
kernel-docs.txt
Documentation: update kernel-docs.txt
2011-01-06 09:59:38 -08:00
kernel-parameters.txt
genirq: Provide forced interrupt threading
2011-02-26 11:57:18 +01:00
keys-request-key.txt
keys-trusted-encrypted.txt
keys: add new trusted key-type
2010-11-29 08:55:25 +11:00
keys.txt
kmemcheck.txt
kmemleak.txt
kobject.txt
kprobes.txt
tree-wide: fix comment/printk typos
2010-11-01 15:38:34 -04:00
kref.txt
ldm.txt
leds-class.txt
led-class: always implement blinking
2010-11-12 07:55:32 -08:00
leds-lp3944.txt
local_ops.txt
lockdep-design.txt
lockstat.txt
logo.gif
logo.txt
magic-number.txt
take coda-private headers out of include/linux
2011-01-12 20:02:48 -05:00
Makefile
[media] Remove the old V4L1 v4lgrab.c file
2010-12-29 08:17:12 -02:00
ManagementStyle
mca.txt
md.txt
memory-barriers.txt
memory-hotplug.txt
memory.txt
mono.txt
mutex-design.txt
nmi_watchdog.txt
nommu-mmap.txt
numastat.txt
oops-tracing.txt
padata.txt
parport-lowlevel.txt
parport.txt
pi-futex.txt
pnp.txt
preempt-locking.txt
printk-formats.txt
prio_tree.txt
rbtree.txt
Documentation: remove anticipatory scheduler info
2010-11-11 12:09:59 +01:00
rfkill.txt
robust-futex-ABI.txt
robust-futexes.txt
rt-mutex-design.txt
rt-mutex.txt
rtc.txt
SAK.txt
SecurityBugs
SELinux.txt
serial-console.txt
sgi-ioc4.txt
sgi-visws.txt
SM501.txt
Smack.txt
sparse.txt
spinlocks.txt
stable_api_nonsense.txt
stable_kernel_rules.txt
SubmitChecklist
SubmittingDrivers
SubmittingPatches
svga.txt
sysfs-rules.txt
sysrq.txt
documentation: update sysrq.txt magic sysrq keys
2010-10-26 17:32:41 -07:00
tomoyo.txt
unaligned-memory-access.txt
unicode.txt
unshare.txt
VGA-softcursor.txt
vgaarbiter.txt
video-output.txt
volatile-considered-harmful.txt
workqueue.txt
workqueue, freezer: unify spelling of 'freeze' + 'able' to 'freezable'
2011-02-16 17:48:59 +01:00
xz.txt
decompressors: add XZ decompressor module
2011-01-13 08:03:24 -08:00
zorro.txt