Messages in this thread | | | Date | Thu, 6 Mar 2008 21:14:26 -0800 (PST) | From | David Rientjes <> | Subject | Re: [PATCH] Add cgroup support for enabling controllers at boot time |
| |
On Fri, 7 Mar 2008, Balbir Singh wrote:
> >> +static int __init cgroup_disable(char *str) > >> +{ > >> + int i; > >> + for (i = 0; i < CGROUP_SUBSYS_COUNT; i++) { > >> + struct cgroup_subsys *ss = subsys[i]; > >> + if (!strcmp(str, ss->name)) { > >> + ss->disabled = 1; > >> + break; > >> + } > >> + } > >> +} > >> +__setup("cgroup_disable=", cgroup_disable); > > > > This doesn't handle spaces very well, so isn't it possible for the name of > > a current or future cgroup subsystem to be specified after cgroup_disable= > > on the command line and have it disabled by accident? > > > > How do you distinguish that from the user wanting to disable the controller on > purpose? My understanding is that after parsing cgroup_disable=, the rest of the > text is passed to cgroup_disable to process further. You'll find that all the > __setup() code in the kernel is implemented this way. >
Since the command line is logically delimited by spaces, you can accidently disable a subsystem if its name appears in any of your kernel options following your cgroup_disable= option. So if you're absolutely confident that it wouldn't happen (for instance, if there's no logical reason that a cgroup subsystem name should appear anywhere besides cgroup_disable on the command line), then there's no objection.
| |