• Li Zefan's avatar
    cgroups: use a hash table for css_set finding · 472b1053
    Li Zefan authored
    When we attach a process to a different cgroup, the css_set linked-list will
    be run through to find a suitable existing css_set to use.  This patch
    implements a hash table for better performance.
    
    The following benchmarks have been tested:
    
    For N in 1, 5, 10, 50, 100, 500, 1000, create N cgroups with one sleeping
    task in each, and then move an additional task through each cgroup in
    turn.
    
    Here is a test result:
    
    N	Loop	orig - Time(s)	hash - Time(s)
    ----------------------------------------------
    1	10000	1.201231728	1.196311177
    5	2000	1.065743872	1.040566424
    10	1000	0.991054735	0.986876440
    50	200	0.976554203	0.969608733
    100	100	0.998504680	0.969218270
    500	20	1.157347764	0.962602963
    1000	10	1.619521852	1.085140172
    Signed-off-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
    Reviewed-by: default avatarPaul Menage <menage@google.com>
    Cc: Balbir Singh <balbir@linux.vnet.ibm.com>
    Cc: Pavel Emelyanov <xemul@openvz.org>
    Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    472b1053
cgroup.c 81.3 KB