Linux Container Development
 help / color / mirror / Atom feed
  • [parent not found: <6599ad830812011735i565087dfg7ebad01a1f0400ad@mail.gmail.com>]
  • * [PATCH 2/3] cgroups: add inactive subsystems to rootnode.root_list
    @ 2008-11-28 10:02 Li Zefan
      0 siblings, 0 replies; 6+ messages in thread
    From: Li Zefan @ 2008-11-28 10:02 UTC (permalink / raw)
      To: Andrew Morton; +Cc: Linux Containers, Paul Menage, LKML
    
    Though for an inactive hierarchy, we have subsys->root == &rootnode,
    but rootnode's root_list is always empty.
    
    This conflicts with the code in find_css_set():
    
    	for (i = 0; i < CGROUP_SUBSYS_COUNT; i++) {
    		...
    		if (ss->root->subsys_list.next == &ss->sibling) {
    			...
    		}
    	}
    	if (list_empty(&rootnode.subsys_list)) {
    		...
    	}
    
    The above code assumes rootnode.subsys_list links all inactive
    hierarchies.
    
    Signed-off-by: Li Zefan <lizf-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
    ---
     kernel/cgroup.c |    5 +++--
     1 files changed, 3 insertions(+), 2 deletions(-)
    
    diff --git a/kernel/cgroup.c b/kernel/cgroup.c
    index 33ba756..4e50e97 100644
    --- a/kernel/cgroup.c
    +++ b/kernel/cgroup.c
    @@ -716,7 +716,7 @@ static int rebind_subsystems(struct cgroupfs_root *root,
     			BUG_ON(dummytop->subsys[i]->cgroup != dummytop);
     			cgrp->subsys[i] = dummytop->subsys[i];
     			cgrp->subsys[i]->cgroup = cgrp;
    -			list_add(&ss->sibling, &root->subsys_list);
    +			list_move(&ss->sibling, &root->subsys_list);
     			rcu_assign_pointer(ss->root, root);
     			if (ss->bind)
     				ss->bind(ss, cgrp);
    @@ -730,7 +730,7 @@ static int rebind_subsystems(struct cgroupfs_root *root,
     			dummytop->subsys[i]->cgroup = dummytop;
     			cgrp->subsys[i] = NULL;
     			rcu_assign_pointer(subsys[i]->root, &rootnode);
    -			list_del(&ss->sibling);
    +			list_move(&ss->sibling, &rootnode.subsys_list);
     		} else if (bit & final_bits) {
     			/* Subsystem state should already exist */
     			BUG_ON(!cgrp->subsys[i]);
    @@ -2522,6 +2522,7 @@ static void __init cgroup_init_subsys(struct cgroup_subsys *ss)
     	printk(KERN_INFO "Initializing cgroup subsys %s\n", ss->name);
     
     	/* Create the top cgroup state for this subsystem */
    +	list_add(&ss->sibling, &rootnode.root_list);
     	ss->root = &rootnode;
     	css = ss->create(ss, dummytop);
     	/* We don't handle early failures gracefully */
    -- 
    1.5.4.rc3
    
    ^ permalink raw reply related	[flat|nested] 6+ messages in thread

    end of thread, other threads:[~2008-12-03  1:10 UTC | newest]
    
    Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
    -- links below jump to the message on this page --
         [not found] <492FC1BD.4010705@cn.fujitsu.com>
         [not found] ` <492FC1BD.4010705-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
    2008-11-28 10:10   ` [PATCH 2/3 -v2] cgroups: add inactive subsystems to rootnode.subsys_list Li Zefan
    2008-12-02  1:35   ` [PATCH 2/3] cgroups: add inactive subsystems to rootnode.root_list Paul Menage
         [not found] ` <6599ad830812011735i565087dfg7ebad01a1f0400ad@mail.gmail.com>
         [not found]   ` <6599ad830812011735i565087dfg7ebad01a1f0400ad-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
    2008-12-02  3:24     ` Li Zefan
         [not found]       ` <4934AA53.4000308-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
    2008-12-02 22:53         ` Paul Menage
         [not found]       ` <6599ad830812021453m44e948b1p83f6e02aa7e9068@mail.gmail.com>
         [not found]         ` <6599ad830812021453m44e948b1p83f6e02aa7e9068-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
    2008-12-03  1:10           ` Li Zefan
    2008-11-28 10:02 Li Zefan
    

    This is a public inbox, see mirroring instructions
    for how to clone and mirror all data and code used for this inbox