Thread (36 messages) 36 messages, 10 authors, 2008-07-06

Re: [PATCH 1/10] Add generic helpers for arch IPI function calls

From: Nick Piggin <hidden>
Date: 2008-06-11 03:25:48
Also in: lkml

On Tue, Jun 10, 2008 at 05:53:08PM +0100, Catalin Marinas wrote:
On Tue, 2008-06-10 at 08:47 -0700, Paul E. McKenney wrote:
quoted
On Tue, Jun 10, 2008 at 03:51:25PM +0100, Catalin Marinas wrote:
quoted
I was thinking whether this condition can be removed and allow the
smp_call_function*() to be called with IRQs disabled. At a quick look,
it seems to be possible if the csd_flag_wait() function calls the IPI
handlers directly when the IRQs are disabled (see the patch below).
[...]
quoted
There were objections last month:  http://lkml.org/lkml/2008/5/3/167
Thanks, I missed this discussion.
quoted
The issue was that this permits some interrupts to arrive despite
interrupts being disabled.  There seemed to be less resistance to
doing this in the wait==1 case, however.
The "(wait == 1) && irqs_disabled()" case is what I would be interested
in. In the patch you proposed, this doesn't seem to be allowed (at least
from the use of WARN_ON). However, from your post in May:
quoted
5.	If you call smp_call_function() with irqs disabled, then you
	are guaranteed that no other CPU's smp_call_function() handler
	will be invoked while smp_call_function() is executing.
this would be possible but no one need this functionality yet.

Would one use-case (ARM SMP and DMA cache maintenance) be enough to
implement this or I should add it to the ARM-specific code?
How will you implement it? You have to be able to wait *somewhere*
(either before or after the smp_call_function call) with interrupts
enabled. It is not enough just to eg. use a spinlock around
smp_call_function, because other CPUs might also be trying to call
down the same path also with interrupts disabled, and they'll wait
forever on the spinlock.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help