All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Hansen <dave-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
To: Gowrishankar M
	<gowrishankar.m-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
Cc: Containers
	<containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>,
	Sukadev
	<sukadev-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>,
	Eric <ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>,
	Balbir <balbir-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
Subject: Re: [PATCH 4/5] pid: use namespaced iteration on processes while sending signal to all
Date: Thu, 18 Dec 2008 09:10:47 -0800	[thread overview]
Message-ID: <1229620248.17206.537.camel@nimitz> (raw)
In-Reply-To: <1229618553-6348-5-git-send-email-gowrishankar.m-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>

On Thu, 2008-12-18 at 22:12 +0530, Gowrishankar M wrote:
> At present we scan all processes in init namespace, whether in new namespace
> or not, to send signal to all processes for container. Also we filter out
> processes belonging to same namespace using task_pid_vnr().
> 
> Below patch proposes to use new macro controller to save time using pidmap.
> In init namespace, this saving can be more or less achieved, as we check to
> take every process with task_pid_vnr() otherwise.

> diff --git a/kernel/signal.c b/kernel/signal.c
> index 4530fc6..a2651bc 100644
> --- a/kernel/signal.c
> +++ b/kernel/signal.c
> @@ -1143,9 +1143,8 @@ static int kill_something_info(int sig, struct siginfo *info, pid_t pid)
>  		int retval = 0, count = 0;
>  		struct task_struct * p;
> 
> -		for_each_process(p) {
> -			if (task_pid_vnr(p) > 1 &&
> -					!same_thread_group(p, current)) {
> +		for_each_process_in_ns(p, current->nsproxy->pid_ns) {
> +			if (!same_thread_group(p, current)) {
>  				int err = group_send_sig_info(sig, info, p);
>  				++count;
>  				if (err != -EPERM)

So this is a performance optimization?

Isn't that task_pid_vnr() basically an is_container_init() check?  Why
did it go away?

This patch implies that ever process in another's thread group is also
in the same pid namespace.  That seems like a sane assumption, but I'd
probably hesitate without Oleg or Eric taking a good look.

-- Dave

  parent reply	other threads:[~2008-12-18 17:10 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-18 16:42 pid: improved namespaced iteration over processes list (v2) Gowrishankar M
     [not found] ` <1229618553-6348-1-git-send-email-gowrishankar.m-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2008-12-18 16:42   ` [PATCH 1/5] pid: add new iterative macros to list processes in a namespace Gowrishankar M
     [not found]     ` <1229618553-6348-2-git-send-email-gowrishankar.m-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2008-12-18 17:45       ` Eric W. Biederman
2008-12-18 16:42   ` [PATCH 2/5] pid: use namespaced iteration on processes while using sysrq Gowrishankar M
     [not found]     ` <1229618553-6348-3-git-send-email-gowrishankar.m-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2008-12-18 16:58       ` Dave Hansen
2008-12-18 17:12       ` Serge E. Hallyn
2008-12-18 17:31       ` Eric W. Biederman
2008-12-18 16:42   ` [PATCH 3/5] pid: use namespaced iteration on processes while setting capability Gowrishankar M
     [not found]     ` <1229618553-6348-4-git-send-email-gowrishankar.m-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2008-12-18 17:04       ` Serge E. Hallyn
2008-12-18 17:35       ` Eric W. Biederman
2008-12-18 16:42   ` [PATCH 4/5] pid: use namespaced iteration on processes while sending signal to all Gowrishankar M
     [not found]     ` <1229618553-6348-5-git-send-email-gowrishankar.m-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2008-12-18 17:04       ` Serge E. Hallyn
2008-12-18 17:10       ` Dave Hansen [this message]
2008-12-18 17:32         ` Serge E. Hallyn
2008-12-18 16:42   ` [PATCH 5/5] pid: use namespaced iteration on processes while managing priority Gowrishankar M
     [not found]     ` <1229618553-6348-6-git-send-email-gowrishankar.m-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2008-12-18 17:05       ` Serge E. Hallyn
     [not found]         ` <20081218170509.GC13188-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-12-18 17:46           ` Eric W. Biederman
2008-12-18 17:38       ` Eric W. Biederman
     [not found]         ` <m1d4fp8ju3.fsf-B27657KtZYmhTnVgQlOflh2eb7JE58TQ@public.gmane.org>
2008-12-18 18:13           ` Serge E. Hallyn
     [not found]             ` <20081218181317.GA14409-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-12-18 18:54               ` Eric W. Biederman
     [not found]                 ` <m1wsdx71r7.fsf-B27657KtZYmhTnVgQlOflh2eb7JE58TQ@public.gmane.org>
2008-12-18 19:23                   ` Serge E. Hallyn
2008-12-19  4:30                   ` Matt Helsley
2008-12-19  4:37                     ` Matt Helsley

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=1229620248.17206.537.camel@nimitz \
    --to=dave-23vcf4htsmix0ybbhkvfkdbpr1lh4cv8@public.gmane.org \
    --cc=balbir-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org \
    --cc=containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
    --cc=ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org \
    --cc=gowrishankar.m-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org \
    --cc=sukadev-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.