From: Matt Fleming <matt@console-pimps.org>
To: Oleg Nesterov <oleg@redhat.com>
Cc: linux-kernel@vger.kernel.org
Subject: __lock_task_sighand() and RCU
Date: Mon, 28 Mar 2011 08:56:54 +0100 [thread overview]
Message-ID: <20110328085654.26a75db6@mfleming-mobl1.ger.corp.intel.com> (raw)
Hi Oleg,
I've been reading __lock_task_sighand() and I can't quite wrap my head
around what the rcu_read_lock()/rcu_read_unlock() is protecting in
there.
Initially I assumed that it was protecting the 'tsk' argument, but
realised that can't be right because all rcu_read_lock() guarantees is
that if tsk is valid when we enter the read section, it will remain
valid throughout the rcu read side section. It doesn't guarantee that
when we enter the read side section 'tsk' _will_ be valid; the callers
are required to lookup and verify the value of 'tsk' before they call
__lock_task_sighand() (possibly by calling __lock_task_sighand() from
within an rcu_read_lock() section).
Then I wondered if it was protecting the sighand from being freed from
under us while we're trying to lock it. But sighands aren't freed via
rcu, it's just a simple refcnt and kmem_cache_free() deal in
__cleanup_sighand() with all synchronization done via the siglock.
So what does that rcu_read_lock() protect?
I'm most likely missing some obvious detail but if you could help me
out I'd appreciate it!
--
Matt Fleming, Intel Open Source Technology Center
next reply other threads:[~2011-03-28 8:03 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-28 7:56 Matt Fleming [this message]
2011-03-28 13:36 ` Oleg Nesterov
2011-03-28 15:04 ` Matt Fleming
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=20110328085654.26a75db6@mfleming-mobl1.ger.corp.intel.com \
--to=matt@console-pimps.org \
--cc=linux-kernel@vger.kernel.org \
--cc=oleg@redhat.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
Powered by JetHome