Paul Menage wrote: > On Mon, Aug 25, 2008 at 10:22 PM, Lai Jiangshan <laijs@xxxxxxxxxxxxxx> wrote: >> It's complicated than necessary and change too much code IMO. > > What about the problem that maintaining a single pid array can still > fail for a really large cgroup? I guess we could just say "don't > create such large cgroups" but someone's bound to want to do that. > Perhaps use an array of pages rather than a single large kmalloc? > Actually, I had a plan to write such a patch: [RFC PATCH] cgroup,cpuset: use alternative malloc instead of kmalloc The main idea is: when allocate size >= PAGE_SIZE, vmalloc will be used instead. This will reduce the stress when continuous pages are few. Alternative malloc is used for cgroup_tasks_open() and update_tasks_nodemask(). And vmalloc can malloc larger memory than kmalloc, is vmalloc() enough? If not, I think using an array of pages is the best choice. [There are several subsystem who use alternative malloc. kernel/relay.c for example. relay.c is also using an array of pages for relay buffer. ] Lai _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/containers