From: David Howells <dhowells@redhat.com>
To: Oleg Nesterov <oleg@redhat.com>
Cc: dhowells@redhat.com, Andrew Morton <akpm@linux-foundation.org>,
James Morris <jmorris@namei.org>,
Roland McGrath <roland@redhat.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] rework/fix is_single_threaded()
Date: Thu, 16 Apr 2009 11:04:32 +0100 [thread overview]
Message-ID: <14878.1239876272@redhat.com> (raw)
In-Reply-To: <20090413214513.GA1119@redhat.com>
Oleg Nesterov <oleg@redhat.com> wrote:
> - Fix the comment, is_single_threaded(p) actually means that nobody shares
> ->mm with p.
>
> I think this helper should be renamed,
What we want to know when we ask this function is whether or not a process is
single-threaded, hence the name. The fact that because:
CLONE_THREAD => CLONE_SIGHAND => CLONE_VM
we can work this out purely by checking that there aren't any processes that
share VM space with us is immaterial.
> and it should not have arguments. With or without this patch it must not be
> used unless p == current, otherwise we can't safely use p->signal or p->mm.
Well, I can live with that, but you need to check with the SELinux people too.
Whilst they do currently limit the selinux_setprocattr() to current only, they
still hand the task pointer that function is given around.
> - Use down_write(mm->mmap_sem) + rcu_read_lock() instead of tasklist_lock
> to iterate over the process list. If there is another CLONE_VM process
> it can't pass exit_mm() which takes the same mm->mmap_sem. We can miss
> a freshly forked CLONE_VM task, but this doesn't matter because we must
> see its parent and return false.
Hmmm... I'd quite like to avoid using down_write() if possible. Why do we
need to do this? Is it just to stop processes that might cease using mm from
doing so until we've finished?
David
next prev parent reply other threads:[~2009-04-16 10:06 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-13 21:45 [PATCH] rework/fix is_single_threaded() Oleg Nesterov
2009-04-15 23:32 ` Andrew Morton
2009-04-16 13:40 ` Oleg Nesterov
2009-04-16 10:04 ` David Howells [this message]
2009-04-16 13:36 ` Oleg Nesterov
2009-04-16 14:36 ` Stephen Smalley
2009-04-16 14:54 ` Oleg Nesterov
2009-06-18 19:07 ` Andrew Morton
2009-06-18 19:42 ` Oleg Nesterov
2009-06-22 18:51 ` Andrew Morton
2009-06-22 17:14 ` Oleg Nesterov
2009-06-22 21:04 ` Andrew Morton
2009-06-22 19:24 ` Oleg Nesterov
2009-07-09 13:01 ` David Howells
2009-07-09 21:25 ` Oleg Nesterov
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=14878.1239876272@redhat.com \
--to=dhowells@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=jmorris@namei.org \
--cc=linux-kernel@vger.kernel.org \
--cc=oleg@redhat.com \
--cc=roland@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