* [PATCH] mips/rt: convert cascade interrupt non threaded
@ 2011-08-26 15:00 Liming Wang
2011-09-01 19:20 ` Thomas Gleixner
0 siblings, 1 reply; 2+ messages in thread
From: Liming Wang @ 2011-08-26 15:00 UTC (permalink / raw)
To: Thomas Gleixner, rt-users; +Cc: Peter Zijlstra, lkml
The preempt_rt kernel forces all irq interrupts to be threaded,
but special interrupts can be excluded from this conversion.
The cascade interrupt should be part of these exceptions.
In this case, irq2 is initialized before "kthreadd" task, which
converts irq interrupt to threaded.
If this irq is threaded, the kernel calls "try_to_wake_up" function
to wake up "kthreadd" task, but at that moment, "kthreadd" task
has not been initialized and try_to_wake_up wakes up a NULL task.
Signed-off-by: Liming Wang <liming.wang@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
---
arch/mips/kernel/i8259.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/arch/mips/kernel/i8259.c b/arch/mips/kernel/i8259.c
index 5c74eb7..fb338db 100644
--- a/arch/mips/kernel/i8259.c
+++ b/arch/mips/kernel/i8259.c
@@ -295,6 +295,7 @@ static void init_8259A(int auto_eoi)
static struct irqaction irq2 = {
.handler = no_action,
.name = "cascade",
+ .flags = IRQF_NO_THREAD,
};
static struct resource pic1_io_resource = {
--
1.7.0.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] mips/rt: convert cascade interrupt non threaded
2011-08-26 15:00 [PATCH] mips/rt: convert cascade interrupt non threaded Liming Wang
@ 2011-09-01 19:20 ` Thomas Gleixner
0 siblings, 0 replies; 2+ messages in thread
From: Thomas Gleixner @ 2011-09-01 19:20 UTC (permalink / raw)
To: Liming Wang; +Cc: rt-users, Peter Zijlstra, lkml
On Fri, 26 Aug 2011, Liming Wang wrote:
> The preempt_rt kernel forces all irq interrupts to be threaded,
> but special interrupts can be excluded from this conversion.
> The cascade interrupt should be part of these exceptions.
>
> In this case, irq2 is initialized before "kthreadd" task, which
> converts irq interrupt to threaded.
>
> If this irq is threaded, the kernel calls "try_to_wake_up" function
> to wake up "kthreadd" task, but at that moment, "kthreadd" task
> has not been initialized and try_to_wake_up wakes up a NULL task.
That's not a reason to mark an interrupt NO_THREAD. The interrupt
handler could be non hardirq safe on RT. You'd run into other
problems.
In the case at hand it's the no_action handler which is hardirq safe
on RT and being no_action which means it simply returns IRQ_NONE.
I'll queue it for the next rt release and fixup the changelog myself.
Thanks,
tglx
> Signed-off-by: Liming Wang <liming.wang@windriver.com>
> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
> ---
> arch/mips/kernel/i8259.c | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/arch/mips/kernel/i8259.c b/arch/mips/kernel/i8259.c
> index 5c74eb7..fb338db 100644
> --- a/arch/mips/kernel/i8259.c
> +++ b/arch/mips/kernel/i8259.c
> @@ -295,6 +295,7 @@ static void init_8259A(int auto_eoi)
> static struct irqaction irq2 = {
> .handler = no_action,
> .name = "cascade",
> + .flags = IRQF_NO_THREAD,
> };
>
> static struct resource pic1_io_resource = {
> --
> 1.7.0.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-09-01 19:20 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-26 15:00 [PATCH] mips/rt: convert cascade interrupt non threaded Liming Wang
2011-09-01 19:20 ` Thomas Gleixner
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).