Thread (19 messages) 19 messages, 5 authors, 2011-09-26

[RFC PATCH 1/3] genirq: add support for per-cpu dev_id interrupts

From: Thomas Gleixner <hidden>
Date: 2011-09-15 23:41:59
Also in: lkml

On Fri, 16 Sep 2011, Russell King - ARM Linux wrote:
On Fri, Sep 16, 2011 at 12:49:10AM +0200, Thomas Gleixner wrote:
quoted
Marc,

On Thu, 15 Sep 2011, Marc Zyngier wrote:
quoted
+
+	raw_spin_unlock_irqrestore(&desc->lock, flags);
+
+	unregister_handler_proc(irq, action);
+
+	/* Make sure it's not being used on another CPU: */
+	synchronize_irq(irq);
That's not helping w/o making synchronize_irq() aware of the percpu
stuff. Also there is the question whether we need the ability to
remove such interrupts in the first place. The target users are low
level arch interrupts not some random device drivers.
You do - think local timers which go away on hotunplug and come back
on hotplug.  The alternative is requiring every local timer code to
remember whether it registered its per-cpu handler on each CPU or not,
and that just gets more messy than having them unregister on hotunplug.
Not only would that be more prone to bugs but it will also mean extra
complexity in arch code.
Yikes! That code is removing the GLOBAL action, so all users are going
to hell.

The point of the percpu_irq stuff is to have a single action with a
percpu dev_id and a per cpu enable/disable. So when you unplug your
cpu that very cpu calls the disable function and therefor removes
itself w/o causing the other cpus to die on action = NULL

Thanks,

	tglx


 
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help