From: John Stultz <john.stultz@linaro.org>
To: LKML <linux-kernel@vger.kernel.org>
Cc: John Stultz <john.stultz@linaro.org>,
KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
David Rientjes <rientjes@google.com>,
Dave Hansen <dave@linux.vnet.ibm.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux-mm@kvack.org
Subject: [RFC][PATCH 0/3] Improve task->comm locking situation.
Date: Wed, 27 Apr 2011 21:03:28 -0700 [thread overview]
Message-ID: <1303963411-2064-1-git-send-email-john.stultz@linaro.org> (raw)
Since my commit 4614a696bd1c3a9af3a08f0e5874830a85b889d4, the
current->comm value could be changed by other threads.
This changed the comm locking rules, which previously allowed for
unlocked current->comm access, since only the thread itself could
change its comm.
While this was brought up at the time, it was not considered
problematic, as the comm writing was done in such a way that
only null or incomplete comms could be read. However, recently
folks have made it clear they want to see this issue resolved.
So fair enough, as I opened this can of worms, I should work
to resolve it and this patchset is my initial attempt.
The proposed solution here is to introduce a new seqlock that
exclusively protects the comm value. We use it to serialize
access via get_task_comm() and set_task_comm(). Since some
comm access is open-coded using the task lock, we preserve
the task locking in set_task_comm for now. Once all comm
access is converted to using get_task_comm, we can clean that
up as well.
Hopefully this will allow for a smooth transition, where we can
slowly fix up the unlocked current->comm access bit by bit,
reducing the race window with each patch, while not making the
situation any worse then it was yesterday.
Also in this patch set I have a few examples of how I've
converted comm access to use get_task_comm. I've got quite
a number of similar patches queued, but wanted to get some
feedback on the approach before I start patchbombing everyone.
Comments/feedback would be appreciated.
thanks
-john
CC: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
CC: David Rientjes <rientjes@google.com>
CC: Dave Hansen <dave@linux.vnet.ibm.com>
CC: Andrew Morton <akpm@linux-foundation.org>
CC: linux-mm@kvack.org
John Stultz (3):
comm: Introduce comm_lock seqlock to protect task->comm access
comm: timerstats: Protect task->comm access by using get_task_comm()
comm: ext4: Protect task->comm access by using get_task_comm()
fs/exec.c | 25 ++++++++++++++++++++-----
fs/ext4/file.c | 8 ++++++--
fs/ext4/super.c | 13 ++++++++++---
include/linux/init_task.h | 1 +
include/linux/sched.h | 5 ++---
kernel/timer.c | 2 +-
6 files changed, 40 insertions(+), 14 deletions(-)
--
1.7.3.2.146.gca209
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next reply other threads:[~2011-04-28 4:03 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-28 4:03 John Stultz [this message]
2011-04-28 4:03 ` [PATCH 1/3] comm: Introduce comm_lock seqlock to protect task->comm access John Stultz
2011-04-28 4:03 ` [PATCH 2/3] comm: timerstats: Protect task->comm access by using get_task_comm() John Stultz
2011-04-28 4:03 ` [PATCH 3/3] comm: ext4: " John Stultz
2011-04-28 21:35 ` David Rientjes
2011-05-04 23:36 ` Andrew Morton
2011-05-04 23:42 ` Andrew Morton
2011-05-04 23:55 ` John Stultz
2011-05-07 16:30 ` Ted Ts'o
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=1303963411-2064-1-git-send-email-john.stultz@linaro.org \
--to=john.stultz@linaro.org \
--cc=akpm@linux-foundation.org \
--cc=dave@linux.vnet.ibm.com \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=rientjes@google.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