All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Hansen <haveblue@us.ibm.com>
To: Chris Wright <chrisw@sous-sol.org>
Cc: linux-kernel@vger.kernel.org, serue@us.ibm.com,
	frankeh@watson.ibm.com, clg@fr.ibm.com,
	Herbert Poetzl <herbert@13thfloor.at>,
	Sam Vilain <sam@vilain.net>
Subject: Re: [RFC][PATCH 2/6] sysvmsg: containerize
Date: Mon, 06 Mar 2006 18:08:43 -0800	[thread overview]
Message-ID: <1141697323.9274.64.camel@localhost.localdomain> (raw)
In-Reply-To: <20060307015745.GG27645@sorel.sous-sol.org>

On Mon, 2006-03-06 at 17:57 -0800, Chris Wright wrote:
> * Dave Hansen (haveblue@us.ibm.com) wrote:
> > --- work/include/linux/init_task.h~sysvmsg-container	2006-03-06 15:41:56.000000000 -0800
> > +++ work-dave/include/linux/init_task.h	2006-03-06 15:41:56.000000000 -0800
> > @@ -2,6 +2,7 @@
> >  #define _LINUX__INIT_TASK_H
> >  
> >  #include <linux/file.h>
> > +#include <linux/ipc.h>
> >  #include <linux/rcupdate.h>
> >  
> >  #define INIT_FDTABLE \
> 
> missing INIT_IPC_CONTEXT type of macro?

Yeah, I was doing something like that at first.  But, I decided to
dynamically allocate it, much like it will have to be done when we have
_real_ namespaces for it.  That means that we can't actually initialize
it at init_task.h time.  

> > diff -puN include/linux/sched.h~sysvmsg-container include/linux/sched.h
> > --- work/include/linux/sched.h~sysvmsg-container	2006-03-06 15:41:56.000000000 -0800
> > +++ work-dave/include/linux/sched.h	2006-03-06 15:41:56.000000000 -0800
> > @@ -793,6 +793,7 @@ struct task_struct {
> >  	int link_count, total_link_count;
> >  /* ipc stuff */
> >  	struct sysv_sem sysvsem;
> > +	struct ipc_context *ipc_context;
> 
> how does this propagate on clone (presently it's just side-effect of
> dup_task_struct starting from init_task, with no dynamic lifetime),
> how is it meant to be changed?

Some interface later down the road.  You caught me a bit early in the
cycle.

> > -void __init msg_init (void)
> > +void __init msg_init (struct ipc_msg_context *context)
> >  {
> > -	ipc_init_ids(&msg_ids,msg_ctlmni);
> > +	ipc_init_ids(&context->ids,msg_ctlmni);
> >  	ipc_init_proc_interface("sysvipc/msg",
> >  				"       key      msqid perms      cbytes       qnum lspid lrpid   uid   gid  cuid  cgid      stime      rtime      ctime\n",
> > -				&msg_ids,
> > +				&context->ids,
> >  				sysvipc_msg_proc_show);
> 
> Does that mean /proc interface only gets init_task context?
> Along those lines, I think now ipcs -a is incomplete from admin
> perspective.  Suppose that's a feature from the container/vserver
> POV.

It will get context from the current task, which means the current
container.  We haven't quite decided how these things will be (or if
they need to be) aggregated on a a system-wide basis.

> > --- work/ipc/util.h~sysvmsg-container	2006-03-06 15:41:56.000000000 -0800
> > +++ work-dave/ipc/util.h	2006-03-06 15:41:56.000000000 -0800
> > @@ -12,7 +12,7 @@
> >  #define SEQ_MULTIPLIER	(IPCMNI)
> >  
> >  void sem_init (void);
> > -void msg_init (void);
> > +void msg_init (struct ipc_msg_context *context);
> >  void shm_init (void);
> >  
> >  struct ipc_id_ary {
> > @@ -30,6 +30,18 @@ struct ipc_ids {
> >  	struct ipc_id_ary* entries;
> >  };
> >  
> > +struct ipc_msg_context {
> > +	atomic_t bytes;
> > +	atomic_t hdrs;
> > +
> > +	struct ipc_ids ids;
> > +	struct kref count;
> > +};
> > +
> > +struct ipc_context {
> > +	struct ipc_msg_context msg;
> > +};
> 
> This looks a little suspect.  ref count embedded in embedded object.
> My first thought was, sem and shared memory would introduce same, and
> now we'd have 3 independent refounts for top level object.  However,
> it's not used, and doesn't appear to be mirrored in the sem and shared
> mem contexts.  Perhaps it is just a leftover?

Yeah, I have the feeling that it used to be an atomic_t, and got
converted over to a kref a bit needlessly.  I'll investigate more when I
spin the patches again.

-- Dave


  reply	other threads:[~2006-03-07  2:09 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-03-06 23:52 [RFC][PATCH 0/6] support separate namespaces for sysv Dave Hansen
2006-03-06 23:52 ` [RFC][PATCH 1/6] prepare sysctls for containers Dave Hansen
2006-03-07  0:50   ` Herbert Poetzl
2006-03-07  2:00     ` Dave Hansen
2006-03-07  2:45       ` Herbert Poetzl
2006-03-19 15:54         ` Eric W. Biederman
2006-03-07  1:01   ` Chris Wright
2006-03-07  2:04     ` Dave Hansen
2006-03-07  2:18       ` Chris Wright
2006-03-07  3:02       ` Sam Vilain
2006-03-07  1:24   ` Al Viro
2006-03-07  1:55     ` Dave Hansen
2006-03-07  1:57       ` Al Viro
2006-03-19 14:50         ` Eric W. Biederman
2006-03-19 15:29   ` Eric W. Biederman
2006-03-06 23:52 ` [RFC][PATCH 2/6] sysvmsg: containerize Dave Hansen
2006-03-07  1:57   ` Chris Wright
2006-03-07  2:08     ` Dave Hansen [this message]
2006-03-07  2:34       ` Chris Wright
2006-03-19 15:36         ` Eric W. Biederman
2006-03-20 19:34           ` Chris Wright
2006-03-20 21:29             ` Eric W. Biederman
2006-03-20 21:50               ` Chris Wright
2006-03-06 23:52 ` [RFC][PATCH 3/6] sysvmsg: containerize sysctls Dave Hansen
2006-03-06 23:52 ` [RFC][PATCH 4/6] sysvsem: containerize Dave Hansen
2006-03-07  2:44   ` Chris Wright
2006-03-07  5:08     ` Dave Hansen
2006-03-06 23:52 ` [RFC][PATCH 5/6] sysvshm: containerize Dave Hansen
2006-03-06 23:52 ` [RFC][PATCH 6/6] sysvshm: containerize sysctls Dave Hansen

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=1141697323.9274.64.camel@localhost.localdomain \
    --to=haveblue@us.ibm.com \
    --cc=chrisw@sous-sol.org \
    --cc=clg@fr.ibm.com \
    --cc=frankeh@watson.ibm.com \
    --cc=herbert@13thfloor.at \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sam@vilain.net \
    --cc=serue@us.ibm.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 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.