All of lore.kernel.org
 help / color / mirror / Atom feed
From: ebiederm@xmission.com (Eric W. Biederman)
To: "Serge E. Hallyn" <serue@us.ibm.com>
Cc: Andi Kleen <ak@suse.de>,
	linux-kernel@vger.kernel.org, herbert@13thfloor.at, dev@sw.ru,
	sam@vilain.net, xemul@sw.ru, haveblue@us.ibm.com, clg@fr.ibm.com,
	frankeh@us.ibm.com
Subject: Re: [PATCH 2/9] nsproxy: incorporate fs namespace
Date: Wed, 10 May 2006 13:07:39 -0600	[thread overview]
Message-ID: <m1ac9pwves.fsf@ebiederm.dsl.xmission.com> (raw)
In-Reply-To: <20060510132623.GB20892@sergelap.austin.ibm.com> (Serge E. Hallyn's message of "Wed, 10 May 2006 08:26:23 -0500")

"Serge E. Hallyn" <serue@us.ibm.com> writes:

> Quoting Eric W. Biederman (ebiederm@xmission.com):
>> "Serge E. Hallyn" <serue@us.ibm.com> writes:
>> 
>> 
>> > @@ -1727,11 +1727,16 @@ static void __init init_mount_tree(void)
>> >  	namespace->root = mnt;
>> >  	mnt->mnt_namespace = namespace;
>> >  
>> > -	init_task.namespace = namespace;
>> > +	init_task.nsproxy->namespace = namespace;
>> >  	read_lock(&tasklist_lock);
>> >  	do_each_thread(g, p) {
>> > +		/* do we want namespace count to be #nsproxies,
>> > +		 * or # processes pointing to the namespace? */
>> 
>> I am fairly certain we want the count to be #nsproxies.
>> 
>> >  		get_namespace(namespace);
>> > -		p->namespace = namespace;
>> > +#if 0
>> > +		/* should only be 1 nsproxy so far */
>> > +		p->nsproxy->namespace = namespace;
>> > +#endif
>> >  	} while_each_thread(g, p);
>> >  	read_unlock(&tasklist_lock);
>> 
>> So I think this bit is wrong.
>
> Ok - in that case I need to audit the rest of namespace usage to make
> certain nothing depends on the count being #tasks.

Ok.  Thats makes sense.

> BTW - a first set of comparison results showed nsproxy to have better
> dbench and tbench throughput, and worse kernbench performance.  Which
> may make sense given that nsproxy results in lower memory usage but
> likely increased cache misses due to extra pointer dereference.

There are two additional things I can think of that are worth looking
at:
- moving copy_uts_namespace, and copy_namespace inside of copy_nsproxy
  so we only run those we create a new nsproxy instance.

- Attempting to optimize cache line utilization by placing the
  structures in line in struct ns_proxy:
	struct nsproxy {
		atomic_t count;
	        struct namespace *namespace;
	        struct uts_namespace *uts_ns;
	        struct namespace namespace_data;
	        struct new_utsname uts_data;
	};
  With the nsproxy count severing as a count for both the embedded
  data and for the nsproxy itself.  I think it is a long shot but it
  could be interesting.

Given the frequency of use of the uts namespace and the filesystem
namespace simply I think not accessing those namespaces on fork is
likely to reduce the additional cache line miss rate enough so
that it is lost in the noise.

Eric

  reply	other threads:[~2006-05-10 19:09 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <29vfyljM-1.2006059-s@us.ibm.com>
2006-05-10  2:11 ` [PATCH 2/9] nsproxy: incorporate fs namespace Serge E. Hallyn
2006-05-10 12:46   ` Eric W. Biederman
2006-05-10 13:26     ` Serge E. Hallyn
2006-05-10 19:07       ` Eric W. Biederman [this message]
2006-05-10 20:34         ` Serge E. Hallyn
2006-05-10 20:50           ` Eric W. Biederman
2006-05-12 15:24             ` Serge E. Hallyn
2006-05-12 15:44               ` Dave Hansen
2006-05-12 16:54                 ` Serge E. Hallyn
2006-05-12 19:12                 ` Serge E. Hallyn
2006-05-12 19:14     ` Serge E. Hallyn

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=m1ac9pwves.fsf@ebiederm.dsl.xmission.com \
    --to=ebiederm@xmission.com \
    --cc=ak@suse.de \
    --cc=clg@fr.ibm.com \
    --cc=dev@sw.ru \
    --cc=frankeh@us.ibm.com \
    --cc=haveblue@us.ibm.com \
    --cc=herbert@13thfloor.at \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sam@vilain.net \
    --cc=serue@us.ibm.com \
    --cc=xemul@sw.ru \
    /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.