Linux RT(2)-硬实时Linux(RT-Preempt Patch)的中断线程化
特别声明:本系列文章LiAnLab.org著作权所有,转载请注明出处。by @宋宝华Barry
线程化中断的支持在2009年已经进入Linux官方内核,详见Thomas Gleixner的patch:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3aa551c9b4c40018f0e261a178e3d25478dc04a9
该patch提供一个能力,驱动可以通过
Subject: arm: Mark pmu interupt IRQF_NO_THREADFrom: Thomas Gleixner <tglx@linutronix.de>Date: Wed, 16 Mar 2011 14:45:31 +0100PMU interrupt must not be threaded. Remove IRQF_DISABLED while at itas we run all handlers with interrupts disabled anyway.Signed-off-by: Thomas Gleixner <tglx@linutronix.de>--- arch/arm/kernel/perf_event.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)Index: linux-stable/arch/arm/kernel/perf_event.c===================================================================--- linux-stable.orig/arch/arm/kernel/perf_event.c+++ linux-stable/arch/arm/kernel/perf_event.c@@ -430,7 +430,7 @@ armpmu_reserve_hardware(struct arm_pmu * } err = request_irq(irq, handle_irq,- IRQF_DISABLED | IRQF_NOBALANCING,+ IRQF_NOBALANCING | IRQF_NO_THREAD, "arm-pmu", armpmu); if (err) { r_err("unable to request IRQ%d for ARM PMU counters\n",