|
|
Subscribe / Log in / New account

Re: [RFC patch 0/5] genirq: add infrastructure for threaded interrupt handlers

From:  Andi Kleen <andi-AT-firstfloor.org>
To:  Thomas Gleixner <tglx-AT-linutronix.de>
Subject:  Re: [RFC patch 0/5] genirq: add infrastructure for threaded interrupt handlers
Date:  Thu, 02 Oct 2008 16:46:09 +0200
Message-ID:  <873ajfoy1a.fsf@basil.nowhere.org>
Cc:  LKML <linux-kernel-AT-vger.kernel.org>, Linus Torvalds <torvalds-AT-osdl.org>, Andrew Morton <akpm-AT-linux-foundation.org>, Ingo Molnar <mingo-AT-elte.hu>, Arjan van de Veen <arjan-AT-infradead.org>, Benjamin Herrenschmidt <benh-AT-kernel.crashing.org>, Steven Rostedt <rostedt-AT-goodmis.org>, Jon Masters <jonathan-AT-jonmasters.org>, Sven Dietrich <sdietrich-AT-suse.de>
Archive‑link:  Article

Thomas Gleixner <tglx@linutronix.de> writes:
>
>  - move long running handlers out of the hard interrupt context

I'm not sure I'm really looking forward to this brave new world
of very long running interrupt handlers. e.g. what do you
do for example when some handler blocks for a very long time?

>  - improved debugability of the kernel: faulty handlers do not take
>    down the system.

I had an old patch to handle this without threaded interrupts. 

What normally happens is when a interrupt oopses it tries to kill the
idle process which panics.  My fix was to just restart another idle
process instead of panicing.

But back then it was rejected by Linus with the argument that
a crashing interrupt handler will typically hold some lock
and the next time the interrupt happens it will deadlock on that
lock. 

Has that changed with your threaded interrupts? 

If it has changed I suspect the restart idle change could
be made to work to be equivalent in debuggability.

> Comments, reviews, flames as usual.

To be honest my opinion is that it will encourage badly written interrupt
code longer term.

-Andi

-- 
ak@linux.intel.com



to post comments


Copyright © 2008, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds