From: Preeti U Murthy <preeti@linux.vnet.ibm.com>
To: Wang YanQing <udknight@gmail.com>,
xiaoguangrong@cn.fujitsu.com, mingo@elte.hu,
paulmck@linux.vnet.ibm.com, linux-kernel@vger.kernel.org,
a.p.zijlstra@chello.nl, npiggin@suse.de,
deepthi@linux.vnet.ibm.com, peterz@infradead.org,
rusty@rustcorp.com.au, heiko.carstens@de.ibm.com,
rostedt@goodmis.org, miltonm@bga.com,
srivatsa.bhat@linux.vnet.ibm.com, jens.axboe@oracle.com,
tj@kernel.org, akpm@linux-foundation.org,
svaidy@linux.vnet.ibm.com, shli@kernel.org, tglx@linutronix.de,
lig.fnst@cn.fujitsu.com, anton@samba.org
Subject: Re: [PATCH 2/3] smp/ipi:Clarify ambiguous comments around deadlock scenarios in smp_call_function variants.
Date: Sat, 06 Jul 2013 13:18:39 +0530 [thread overview]
Message-ID: <51D7CBD7.2060902@linux.vnet.ibm.com> (raw)
In-Reply-To: <20130706061205.GA3518@udknight>
Hi Wang,
On 07/06/2013 11:42 AM, Wang YanQing wrote:
> On Fri, Jul 05, 2013 at 09:57:11PM +0530, Preeti U Murthy wrote:
>> Elaborate on when deadlocks can occur when a call is made to
>> smp_call_function_single() and its friends. This avoids ambiguity about
>> when to use these calls.
>>
>> + * 2. wait = 0: This function could be called from an interrupt
>> + * context, and can get blocked on the csd_lock(csd) below in
>> + * "non wait cases".
>> + * This is because the percpu copy of csd of this_cpu is used
>> + * in non wait cases. Under such circumstances, if the previous caller
>> + * of this function who got preempted by this interrupt has already taken
>> + * the lock under non wait condition, it will result in deadlock.
>> + *
>
> No, it will not cause deadlock, it is not mutex lock, it is busy wait, so
> when the CSD_FLAG_LOCK be cleared, the code will go on running.
A deadlock might not result, but a potential long wait in an interrupt
context could result if the source cpu got preempted by an interrupt
between csd_lock(csd) and generic_exec_single(), where it actually
sends an ipi to the target cpu.
Under such a scenario, if no other cpu has sent a smp_call_function ipi
to it, it will not check its queue till such an ipi is sent, as a result
of which the target will not release the csd on which the source cpu is
waiting.
Hence, on the source cpu,the interrupt handler will have to wait till
then. It would be good therefore to issue a warning under this circumstance.
Maybe we can modify the changelog to reflect this scenario.
>
> After stare into the kernel/smp.c, I can't catch what the exactly meaning
> of the "DeadLock" in the original comment also.
>
> I hope someone can clarify it.
>
> Thanks.
>
Regards
Preeti U Murthy
next prev parent reply other threads:[~2013-07-06 7:51 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-05 16:26 [PATCH 0/3] smp/ipi: Minor cleanups in smp_call_function variants Preeti U Murthy
2013-07-05 16:27 ` [PATCH 1/3] smp/ipi: Remove redundant cfd->cpumask_ipi mask Preeti U Murthy
2013-07-06 3:13 ` Wang YanQing
2013-07-06 5:29 ` Preeti U Murthy
2013-07-06 6:03 ` Wang YanQing
2013-07-07 16:45 ` Preeti U Murthy
2013-07-05 16:27 ` [PATCH 2/3] smp/ipi:Clarify ambiguous comments around deadlock scenarios in smp_call_function variants Preeti U Murthy
2013-07-06 6:12 ` Wang YanQing
2013-07-06 7:48 ` Preeti U Murthy [this message]
2013-07-06 19:48 ` Thomas Gleixner
2013-07-07 16:29 ` Preeti U Murthy
2013-07-05 16:27 ` [PATCH 3/3] smp/ipi:Remove check around csd lock in handler for " Preeti U Murthy
2013-07-06 5:45 ` Wang YanQing
2013-07-06 8:06 ` Preeti U Murthy
2013-07-06 14:21 ` Wang YanQing
2013-07-07 16:23 ` Preeti U Murthy
2013-07-07 17:25 ` Wang YanQing
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=51D7CBD7.2060902@linux.vnet.ibm.com \
--to=preeti@linux.vnet.ibm.com \
--cc=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=anton@samba.org \
--cc=deepthi@linux.vnet.ibm.com \
--cc=heiko.carstens@de.ibm.com \
--cc=jens.axboe@oracle.com \
--cc=lig.fnst@cn.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=miltonm@bga.com \
--cc=mingo@elte.hu \
--cc=npiggin@suse.de \
--cc=paulmck@linux.vnet.ibm.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=rusty@rustcorp.com.au \
--cc=shli@kernel.org \
--cc=srivatsa.bhat@linux.vnet.ibm.com \
--cc=svaidy@linux.vnet.ibm.com \
--cc=tglx@linutronix.de \
--cc=tj@kernel.org \
--cc=udknight@gmail.com \
--cc=xiaoguangrong@cn.fujitsu.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox