On 09/23/2010 12:43 PM, Balbir Singh wrote:
> * Ivana Varekova<[email protected]> [2010-09-23 12:13:09]:
>
>
>> There is a problem in cgroup_init function
>> Now if the function strtok_r get at first the controller which
>> precedes some other controllers on the mount-point option list,
>> then it removes all next controllers from the list and they are omitted.
>> The test which is done by strtok_r is redundant (there is already
>> hasmntopt test), so the patch is removing it at all.
>>
>> E.G. use commands:
>>
>> $ mount -t cgroup -o cpu,memory,net_cls lab1 /cgroup/lab1
>> $ mount -t cgroup -o remount,cpuset,cpu,memory,net_cls lab1 /cgroup/lab1
>> $ lssubsys -ma
>>
>> Signed-off-by: Ivana Hutarova Varekova<[email protected]>
>> ---
>>
>> src/api.c | 7 +------
>> 1 files changed, 1 insertions(+), 6 deletions(-)
>>
>> diff --git a/src/api.c b/src/api.c
>> index 1e6e3c3..6cd0185 100644
>> --- a/src/api.c
>> +++ b/src/api.c
>> @@ -733,12 +733,7 @@ int cgroup_init(void)
>> if (!mntopt)
>> continue;
>>
>> - mntopt = strtok_r(mntopt, ",",&strtok_buffer);
>> -
>> - if (strcmp(mntopt, controllers[i]))
>> - continue;
>>
> IIRC, hasmntopt returns a substring from /proc/mounts with a ","
> separated list of controllers. We use this to see if a controller is
> already mounted. We scan the list from /proc/cgroups and check to see
> what is already mounted.
>
Hello,
hashmntopt function scans the mntopts field (substring from
/proc/mounts with a "," separated list of controllers) of the mntent
structure mnt for a substring "controllers[i]". Thus it return null
string if there is not option equal with controllers[i].
Using strtok_r to mntopts however changes the content of mntopt variable
and thus broke the ent->mnt_opt data.
>
>> -
>> - cgroup_dbg("matched %s:%s\n", mntopt, controllers[i]);
>> + cgroup_dbg("found %s in %s\n", controllers[i],
>> ent->mnt_opts);
>>
>> /* do not have duplicates in mount table */
>> duplicate = 0;
>>
> I am afraid I need an example to help understand your use case better.
>
The example is at the beginning of the e-mail:
E.G. use commands:
$ mount -t cgroup -o cpu,memory,net_cls lab1 /cgroup/lab1
$ mount -t cgroup -o remount,cpuset,cpu,memory,net_cls lab1 /cgroup/lab1
$ lssubsys -ma
------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Libcg-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libcg-devel