1. -> Yes, it is failing. Here the log from the application :
---
Error with cgroup_load_config() function : Cgroup mounting failed
lalexandre@albert:~/Work/cgroup_test/bug_memory$ sudo ./test
found cpu in rw,relatime,cpu
Found cgroup option rw,relatime,cpu, count 0
found freezer in rw,relatime,freezer
Found cgroup option rw,relatime,freezer, count 1
creating all cgroups now, error=0
found cpu in rw,relatime,cpu
Found cgroup option rw,relatime,cpu, count 0
found freezer in rw,relatime,freezer
Found cgroup option rw,relatime,freezer, count 1
Changing ownership of /cgroup/freezer/grp_0/
chown: path is /cgroup/freezer/grp_0/
chown: seeing file /cgroup/freezer/grp_0/
chown: seeing file /cgroup/freezer/grp_0/freezer.state
chown: seeing file /cgroup/freezer/grp_0/cgroup.clone_children
chown: seeing file /cgroup/freezer/grp_0/cgroup.event_control
chown: seeing file /cgroup/freezer/grp_0/notify_on_release
chown: seeing file /cgroup/freezer/grp_0/cgroup.procs
chown: seeing file /cgroup/freezer/grp_0/tasks
chown: seeing file /cgroup/freezer/grp_0/
Warning: fts_read failed
chmod: path is /cgroup/freezer/grp_0/
chmod: seeing file /cgroup/freezer/grp_0/
chmod: seeing file /cgroup/freezer/grp_0/freezer.state
chmod: seeing file /cgroup/freezer/grp_0/cgroup.clone_children
chmod: seeing file /cgroup/freezer/grp_0/cgroup.event_control
chmod: seeing file /cgroup/freezer/grp_0/notify_on_release
chmod: seeing file /cgroup/freezer/grp_0/cgroup.procs
chmod: seeing file /cgroup/freezer/grp_0/
Changing ownership of /cgroup/freezer/grp_1/
chown: path is /cgroup/freezer/grp_1/
chown: seeing file /cgroup/freezer/grp_1/
chown: seeing file /cgroup/freezer/grp_1/freezer.state
chown: seeing file /cgroup/freezer/grp_1/cgroup.clone_children
chown: seeing file /cgroup/freezer/grp_1/cgroup.event_control
chown: seeing file /cgroup/freezer/grp_1/notify_on_release
chown: seeing file /cgroup/freezer/grp_1/cgroup.procs
chown: seeing file /cgroup/freezer/grp_1/tasks
chown: seeing file /cgroup/freezer/grp_1/
Warning: fts_read failed
chmod: path is /cgroup/freezer/grp_1/
chmod: seeing file /cgroup/freezer/grp_1/
chmod: seeing file /cgroup/freezer/grp_1/freezer.state
chmod: seeing file /cgroup/freezer/grp_1/cgroup.clone_children
chmod: seeing file /cgroup/freezer/grp_1/cgroup.event_control
chmod: seeing file /cgroup/freezer/grp_1/notify_on_release
chmod: seeing file /cgroup/freezer/grp_1/cgroup.procs
chmod: seeing file /cgroup/freezer/grp_1/
*Error with cgroup_get_cgroup(group0) function : Cgroup invalid operation
(error 50011)*
Error with cgroup_get_value_string(group0, freezer.state) function :
Cgroup, requested group parameter does not exist
FREEZER value group0 : (null)
FREEZER value group0 : THAWED
Error with cgroup_get_cgroup(group0) function : Cgroup invalid operation
(error 50011)
Error with cgroup_get_value_string(group0, freezer.state) function :
Cgroup, requested group parameter does not exist
FREEZER value group0 : (null)
FREEZER value group0 : THAWED
Error with cgroup_get_cgroup(group0) function : Cgroup invalid operation
(error 50011)
Error with cgroup_get_value_string(group0, freezer.state) function :
Cgroup, requested group parameter does not exist
FREEZER value group0 : (null)
FREEZER value group0 : THAWED
Error with cgroup_get_cgroup(group0) function : Cgroup invalid operation
(error 50011)
Error with cgroup_get_value_string(group0, freezer.state) function :
Cgroup, requested group parameter does not exist
FREEZER value group0 : (null)
FREEZER value group0 : THAWED
Error with cgroup_get_cgroup(group0) function : Cgroup invalid operation
(error 50011)
Error with cgroup_get_value_string(group0, freezer.state) function :
Cgroup, requested group parameter does not exist
FREEZER value group0 : (null)
FREEZER value group0 : THAWED
path is /cgroup/freezer/grp_1/
parent's name is /cgroup/freezer/grp_1//..
group name is grp_1
parent's group name is .
Removing group freezer:grp_1
path is /cgroup/freezer/grp_0/
parent's name is /cgroup/freezer/grp_0//..
group name is grp_0
parent's group name is .
Removing group freezer:grp_0
cgroup_config_unload_config: parsing ./cgconfig.conf
unmounting cpu
path is /
seeing file /cgroup/cpu/
seeing file /cgroup/cpu/grp_1
won't unmount cpu: hieararchy is not empty
unmounting freezer
path is /
seeing file /cgroup/freezer/
seeing file /cgroup/freezer/release_agent
seeing file /cgroup/freezer/cgroup.clone_children
seeing file /cgroup/freezer/cgroup.event_control
seeing file /cgroup/freezer/notify_on_release
seeing file /cgroup/freezer/cgroup.procs
seeing file /cgroup/freezer/tasks
seeing file /cgroup/freezer/
unmounting freezer at /cgroup/freezer
Error with cgroup_config_unload_config() function : Device or resource busy
---
2 ->
Yes, cgroup_config_load_config() does succeed. Here my conf file :
---
mount {
# cpuset = /cgroup/cpuset;
cpu = /cgroup/cpu;
freezer = /cgroup/freezer;
# net_cls = /cgroup/net_cls;
# blkio = /cgroup/blkio;
# memory = /cgroup/memory;
}
---
Here the hierarchy mounter/available :
---
/cgroup
├── blkio
├── cpu
│ ├── cgroup.clone_children
│ ├── cgroup.event_control
│ ├── cgroup.procs
│ ├── cpu.shares
│ ├── grp_1
│ │ ├── cgroup.clone_children
│ │ ├── cgroup.event_control
│ │ ├── cgroup.procs
│ │ ├── cpu.shares
│ │ ├── notify_on_release
│ │ └── tasks
│ ├── notify_on_release
│ ├── release_agent
│ └── tasks
├── cpuset
├── freezer
│ ├── cgroup.clone_children
│ ├── cgroup.event_control
│ ├── cgroup.procs
│ ├── grp_0
│ │ ├── cgroup.clone_children
│ │ ├── cgroup.event_control
│ │ ├── cgroup.procs
│ │ ├── freezer.state
│ │ ├── notify_on_release
│ │ └── tasks
│ ├── grp_1
│ │ ├── cgroup.clone_children
│ │ ├── cgroup.event_control
│ │ ├── cgroup.procs
│ │ ├── freezer.state
│ │ ├── notify_on_release
│ │ └── tasks
│ ├── notify_on_release
│ ├── release_agent
│ └── tasks
├── memory
└── net_cls
---
(I suspect a bug with grp_0 and cpu controller in my code, but I could not
spot it yet.)
Effectively, in my test code, I mount CPU/FREEZER, but only use FREEZER for
this test.
I will do your last test tomorrow and give you the result.
Best regards,
2014-12-17 18:33 GMT+01:00 Balbir Singh <bsinghar...@gmail.com>:
>
> OK.. This looks harder than I thought, it needs some debugging. I
> looked at your code and logs and have some questions
>
> 1. I presume this line
> err = cgroup_get_cgroup(group0); fails for you
> 2. Your cgroup_config_load_config() has succeeded, which I thought was
> the original problem. If this step did succeed, what wa the mount
> hierarchy it created?
> a. I can see a reference to CPU/FREEZER being mounted together and
> groups rw/realtime/.. within that
> 3. Your sample seems to add more controllers than those that are mounted
>
> For step1, I would recommend freeing group0 after creation and do a
> cgroup_new_cgroup("grp_0"), don't add any controllers, then try to get
> the cgroup with the API
>
> Balbir Singh.
>
> On Wed, Dec 17, 2014 at 4:16 PM, Alexandre LAURENT
> <pro.laurent.alexan...@gmail.com> wrote:
> > No problem.
> >
> > Here the complete results from the tests available in libcgroups :
> > ---
> > grep: @abs_top_srcdir@/config.h: Aucun fichier ou dossier de ce type
> >
> > Running first set of testcases
> > ==============================
> > TEST 1:PASS : cgroup_init() Ret Value = 50001
> > Warning: libcgroup is not initialized
> > TEST 2:PASS : cgroup_attach_task() Ret Value = 50014 Parameter nullcgroup
> > TEST 3:PASS : cgroup_new_cgroup() Ret Value = 0
> > TEST 4:PASS : cgroup_create_cgroup() Ret Value = 50014
> > TEST 5:PASS : cgroup_delete_cgroup() Ret Value = 50014
> > TEST 6:PASS : cgroup_create_cgroup() Ret Value = 50014
> > TEST 7:PASS : cgroup_delete_cgroup() Ret Value = 50014
> > TEST 8:PASS : cgroup_add_controller() Ret Value = 0
> > TEST 9:PASS : cgroup_add_controller() Ret Value = 0
> > TEST10:PASS : cgroup_add_controller() Ret Value = 0
> >
> > Running second set of testcases
> > ==============================
> > sanity check pass. cgroup
> > TEST 1:PASS : cgroup_attach_task() Ret Value = 50014 Parameter nullcgroup
> > found cpu in rw,relatime,memory,cpu
> > Found cgroup option rw,relatime,memory,cpu, count 0
> > found memory in rw,relatime,memory,cpu
> > Found cgroup option rw,relatime,memory,cpu, count 1
> > TEST 2:PASS : cgroup_init() Ret Value = 0
> > TEST 3:PASS : cgroup_attach_task() Ret Value = 0 Task found in group/s
> > Warning: cannot write tid -1 to /dev/cgroup_controllers-1//tasks:Invalid
> > argument
> > TEST 4:PASS : cgroup_attach_task_pid() Ret Value = 50016
> > TEST 5:PASS : cgroup_new_cgroup() Ret Value = 0
> > setting /dev/cgroup_controllers-1/group1/cpu.shares to "260000", pathlen
> 43
> > TEST 6:PASS : cgroup_create_cgroup() Ret Value = 0 group found in
> filesystem
> > TEST 7:PASS : cgroup_attach_task() Ret Value = 0 Task found in group/s
> > TEST 8:PASS : cgroup_modify_cgroup() Ret Value = 0 Parameter same cgroup
> > TEST 9:PASS : cgroup_new_cgroup() Ret Value = 0
> > TEST10:PASS : cgroup_modify_cgroup() Ret Value = 0
> > TEST11:PASS : cgroup_modify_cgroup() Ret Value = 50007
> > TEST12:PASS : cgroup_new_cgroup() Ret Value = 0
> > TEST13:PASS : cgroup_modify_cgroup() Ret Value = 0
> > TEST14:PASS : cgroup_get_cgroup() Ret Value = 50007 Parameter nullcgroup
> > TEST15:PASS : cgroup_get_cgroup() Ret Value = 50002 Parameter not created
> > group
> > TEST16:PASS : cgroup_get_cgroup() Ret Value = 0
> > TEST 0:PASS : cgroup_new_cgroup() Ret Value = 0
> > setting /dev/cgroup_controllers-1/group_a/cpu.shares to "260000",
> pathlen 44
> > TEST 0:PASS : cgroup_create_cgroup() Ret Value = 0 group found in
> filesystem
> > TEST17:FAIL : cgroup_get_cgroup() Ret Value = 50017
> > path is /dev/cgroup_controllers-1/group_a/
> > parent's name is /dev/cgroup_controllers-1/group_a//..
> > group name is group_a
> > parent's group name is .
> > Removing group cpu:group_a
> > TEST 0:PASS : cgroup_delete_cgroup() Ret Value = 0 Group deleted from
> > filesystem
> > path is /dev/cgroup_controllers-1/group1/
> > parent's name is /dev/cgroup_controllers-1/group1//..
> > group name is group1
> > parent's group name is .
> > Removing group cpu:group1
> > TEST16:PASS : cgroup_delete_cgroup() Ret Value = 0 Group deleted from
> > filesystem
> > TEST17:PASS : cgroup_create_cgroup() Ret Value = 50007
> > TEST18:PASS : cgroup_delete_cgroup() Ret Value = 50007
> > TEST19:PASS : cgroup_compare_cgroup() Ret Value = 50011 Parameter
> nullcgroup
> > TEST20:PASS : cgroup_compare_cgroup() Ret Value = 0
> > TEST21:PASS : cgroup_compare_cgroup() Ret Value = 50017
> > Cleanup done
> >
> > Running third set of testcases
> > ==============================
> > sanity check pass. cgroup
> > found cpu in rw,relatime,cpu
> > Found cgroup option rw,relatime,cpu, count 0
> > found memory in rw,relatime,memory
> > Found cgroup option rw,relatime,memory, count 1
> > TEST 1:PASS : cgroup_init() Ret Value = 0
> > TEST 2:PASS : cgroup_attach_task() Ret Value = 0 Task found in group/s
> > TEST 3:PASS : cgroup_new_cgroup() Ret Value = 0
> > setting /dev/cgroup_controllers-1/ctl1_group1/cpu.shares to "260000",
> > pathlen 48
> > TEST 4:PASS : cgroup_create_cgroup() Ret Value = 0 group found in
> filesystem
> > TEST 5:PASS : cgroup_new_cgroup() Ret Value = 0
> > setting /dev/cgroup_controllers-2/ctl2_group1/memory.limit_in_bytes to
> > "7000064", pathlen 59
> > TEST 6:PASS : cgroup_create_cgroup() Ret Value = 0 group found in
> filesystem
> > setting /dev/cgroup_controllers-2/ctl2_group1/memory.limit_in_bytes to
> > "7000064", pathlen 59
> > TEST 7:PASS : cgroup_create_cgroup() Ret Value = 0 group found in
> filesystem
> > TEST 8:PASS : cgroup_attach_task() Ret Value = 0 Task found in group/s
> > TEST 9:PASS : cgroup_attach_task() Ret Value = 0 Task found in group/s
> > TEST10:PASS : cgroup_new_cgroup() Ret Value = 0
> > TEST11:PASS : cgroup_attach_task() Ret Value = 50002 Parameter not
> created
> > group
> > TEST12:PASS : cgroup_new_cgroup() Ret Value = 0
> > TEST13:PASS : cgroup_modify_cgroup() Ret Value = 0
> > TEST14:PASS : cgroup_new_cgroup() Ret Value = 0
> > TEST15:PASS : cgroup_modify_cgroup() Ret Value = 0
> > path is /dev/cgroup_controllers-1/ctl1_group1/
> > parent's name is /dev/cgroup_controllers-1/ctl1_group1//..
> > group name is ctl1_group1
> > parent's group name is .
> > Removing group cpu:ctl1_group1
> > TEST16:PASS : cgroup_delete_cgroup() Ret Value = 0 Group deleted from
> > filesystem
> > path is /dev/cgroup_controllers-2/ctl2_group1/
> > parent's name is /dev/cgroup_controllers-2/ctl2_group1//..
> > group name is ctl2_group1
> > parent's group name is .
> > Removing group memory:ctl2_group1
> > TEST17:PASS : cgroup_delete_cgroup() Ret Value = 0 Group deleted from
> > filesystem
> > TEST18:PASS : cgroup_new_cgroup() Ret Value = 0
> > setting /dev/cgroup_controllers-1/commongroup/cpu.shares to "260000",
> > pathlen 48
> > TEST19:PASS : cgroup_create_cgroup() Ret Value = 0 group found under both
> > controllers
> > TEST20:PASS : cgroup_attach_task() Ret Value = 0 Task found in group/s
> > TEST21:PASS : cgroup_new_cgroup() Ret Value = 0
> > TEST22:PASS : cgroup_modify_cgroup() Ret Value = 0 group modified under
> both
> > controllers
> > path is /dev/cgroup_controllers-1/commongroup/
> > parent's name is /dev/cgroup_controllers-1/commongroup//..
> > group name is commongroup
> > parent's group name is .
> > Removing group cpu:commongroup
> > path is /dev/cgroup_controllers-2/commongroup/
> > parent's name is /dev/cgroup_controllers-2/commongroup//..
> > group name is commongroup
> > parent's group name is .
> > Removing group memory:commongroup
> > TEST23:PASS : cgroup_delete_cgroup() Ret Value = 0 Group deleted from
> > filesystem
> > TEST 0:PASS : cgroup_new_cgroup() Ret Value = 0
> > TEST24:PASS : cgroup_cgroup_add_controller() Ret Value = 0
> > setting /dev/cgroup_controllers-1/group_a/cpu.shares to "260000",
> pathlen 44
> > TEST 0:PASS : cgroup_create_cgroup() Ret Value = 0 group found in
> filesystem
> > TEST25:FAIL : cgroup_get_cgroup() Ret Value = 50018
> > path is /dev/cgroup_controllers-1/group_a/
> > parent's name is /dev/cgroup_controllers-1/group_a//..
> > group name is group_a
> > parent's group name is .
> > Removing group cpu:group_a
> > path is /dev/cgroup_controllers-2/group_a/
> > parent's name is /dev/cgroup_controllers-2/group_a//..
> > group name is group_a
> > parent's group name is .
> > Removing group memory:group_a
> > TEST 0:PASS : cgroup_delete_cgroup() Ret Value = 0 Group deleted from
> > filesystem
> > Cleanup done
> > ---
> >
> >
> > Also, I have done this test program (also attached) :
> > ---
> > #include <iostream>
> > #include <unistd.h>
> >
> > #include <libcgroup.h>
> >
> > #define USE_CPU 0
> > #define USE_BLKIO 0
> > #define USE_MEMORY 0
> > #define CGROUP_CONF_FILE "./cgconfig.conf"
> >
> > int main()
> > {
> > int err = 0;
> > cgroup* group0 = NULL;
> > cgroup_controller* grp0_cpu_ctrl = NULL;
> > cgroup_controller* grp0_memory_ctrl = NULL;
> > cgroup_controller* grp0_blkio_ctrl = NULL;
> > cgroup_controller* grp0_freezer_ctrl = NULL;
> > cgroup* group1 = NULL;
> > cgroup_controller* grp1_cpu_ctrl = NULL;
> > cgroup_controller* grp1_memory_ctrl = NULL;
> > cgroup_controller* grp1_blkio_ctrl = NULL;
> > cgroup_controller* grp1_freezer_ctrl = NULL;
> >
> > unsigned int i = 0;
> > char* freezerValue = NULL;
> > int64_t cpuValue = 0;
> > uint64_t memoryValue = 0;
> >
> > #if USE_CPU
> > fprintf(stdout, "Use cpu controller\n");
> > #endif
> > #if USE_BLKIO
> > fprintf(stdout, "Use blkio controller\n");
> > #endif
> > #if USE_MEMORY
> > fprintf(stdout, "Use memory controller\n");
> > #endif
> >
> > err = cgroup_config_load_config (CGROUP_CONF_FILE);
> > if(err != 0)
> > {
> > fprintf(stderr,"Error with cgroup_load_config() function :
> > %s\n",cgroup_strerror(err));
> > exit(EXIT_FAILURE);
> > }
> >
> > err = cgroup_init();
> > if(err != 0)
> > {
> > fprintf(stderr,"Error with cgroup_init() function :
> > %s\n",cgroup_strerror(err));
> > goto unload;
> > }
> >
> > // Create groups
> > group0 = cgroup_new_cgroup ("grp_0");
> > if ( group0 == NULL )
> > {
> > fprintf(stderr,"Error with cgroup_new_cgroup('grp_0') function :
> > %s\n",cgroup_strerror(err));
> > goto clean_groups;
> > }
> >
> > // Place controler
> > // Group 0
> > #if USE_CPU
> > grp0_cpu_ctrl = cgroup_add_controller (group0,"cpu" );
> > if (grp0_cpu_ctrl == NULL )
> > {
> > fprintf(stderr,"Error with cgroup_add_controller(group0,'cpu')
> > function : %s\n",cgroup_strerror(err));
> > goto clean_ctrl;
> > }
> > #endif
> >
> > #if USE_BLKIO
> > grp0_blkio_ctrl = cgroup_add_controller (group0, "blkio");
> > if (grp0_blkio_ctrl == NULL )
> > {
> > fprintf(stderr,"Error with cgroup_add_controller(group0,'blkio')
> > function : %s\n",cgroup_strerror(err));
> > goto clean_ctrl;
> > }
> > #endif
> >
> > grp0_freezer_ctrl = cgroup_add_controller (group0, "freezer");
> > if (grp0_freezer_ctrl == NULL )
> > {
> > fprintf(stderr,"Error with cgroup_add_controller(group0,'freezer')
> > function : %s\n",cgroup_strerror(err));
> > goto clean_ctrl;
> > }
> >
> > #if USE_MEMORY
> > grp0_memory_ctrl = cgroup_add_controller (group0, "memory");
> > if (grp0_memory_ctrl == NULL )
> > {
> > fprintf(stderr,"Error with cgroup_add_controller(group0,'memory')
> > function : %s\n",cgroup_strerror(err));
> > goto clean_ctrl;
> > }
> > #endif
> >
> > // Physically add cgroups
> > err = cgroup_create_cgroup (group0, 0);
> > if(err != 0)
> > {
> > fprintf(stderr,"Error with cgroup_create_cgroup(group0) function :
> > %s\n",cgroup_strerror(err));
> > goto delete_groups;
> > }
> >
> >
> >
> > group1 = cgroup_new_cgroup("grp_1");
> > if ( group1 == NULL )
> > {
> > fprintf(stderr,"Error with cgroup_new_cgroup('grp_0') function :
> > %s\n",cgroup_strerror(err));
> > goto clean_groups;
> > }
> >
> > // Group 1
> > #if USE_CPU
> > grp1_cpu_ctrl = cgroup_add_controller (group1,"cpu" );
> > if (grp1_cpu_ctrl == NULL )
> > {
> > fprintf(stderr,"Error with cgroup_add_controller(group1,'cpu')
> > function : %s\n",cgroup_strerror(err));
> > goto clean_ctrl;
> > }
> > #endif
> >
> > #if USE_BLKIO
> > grp1_blkio_ctrl = cgroup_add_controller (group1, "blkio");
> > if (grp1_blkio_ctrl == NULL )
> > {
> > fprintf(stderr,"Error with cgroup_add_controller(group1,'blkio')
> > function : %s\n",cgroup_strerror(err));
> > goto clean_ctrl;
> > }
> > #endif
> >
> > grp1_freezer_ctrl = cgroup_add_controller (group1, "freezer");
> > if (grp1_freezer_ctrl == NULL )
> > {
> > fprintf(stderr,"Error with cgroup_add_controller(group1,'freezer')
> > function : %s\n",cgroup_strerror(err));
> > goto clean_ctrl;
> > }
> >
> > #if USE_MEMORY
> > grp1_memory_ctrl = cgroup_add_controller (group1, "memory");
> > if (grp1_memory_ctrl == NULL )
> > {
> > fprintf(stderr,"Error with cgroup_add_controller(group1,'memory')
> > function : %s\n",cgroup_strerror(err));
> > goto clean_ctrl;
> > }
> > #endif
> >
> > err = cgroup_create_cgroup (group1, 0);
> > if(err != 0)
> > {
> > fprintf(stderr,"Error with cgroup_create_cgroup(group1) function :
> > %s\n",cgroup_strerror(err));
> > goto delete_groups;
> > }
> >
> > // We can start playing with cgroups
> > for (i = 0 ; i < 10 ; i++)
> > {
> > err = cgroup_get_cgroup(group0);
> > if ( err != 0 )
> > {
> > fprintf(stderr,"Error with cgroup_get_cgroup(group0) function :
> %s
> > (error %d)\n",cgroup_strerror(err),err);
> > }
> >
> > err = cgroup_get_value_string(grp0_freezer_ctrl, "freezer.state",
> > &freezerValue);
> > if ( err != 0 )
> > {
> > fprintf(stderr,"Error with cgroup_get_value_string(group0,
> > freezer.state) function : %s\n",cgroup_strerror(err));
> > }
> > fprintf(stdout,"FREEZER value group0 : %s\n",freezerValue);
> > free(freezerValue);
> >
> >
> > #if USE_CPU
> > err = cgroup_get_value_int64(grp0_cpu_ctrl, "cpu.shares",
> &cpuValue);
> > if ( err != 0 )
> > {
> > fprintf(stderr,"Error with cgroup_get_value_uint64(group0,
> > cpu.shares) function : %s\n",cgroup_strerror(err));
> > }
> > fprintf(stdout,"CPU value group0 : %ld\n",memoryValue);
> > #endif
> >
> > #if USE_MEMORY
> > err = cgroup_get_value_uint64(grp0_memory_ctrl, "memory.failcnt",
> > &memoryValue);
> > if ( err != 0 )
> > {
> > fprintf(stderr,"Error with cgroup_get_value_uint64(group0,
> > memory.failcnt) function : %s\n",cgroup_strerror(err));
> > }
> > fprintf(stdout,"Memory value group0 : %ld\n",memoryValue);
> >
> > err = cgroup_get_value_uint64(grp1_memory_ctrl, "memory.failcnt",
> > &memoryValue);
> > if ( err != 0 )
> > {
> > fprintf(stderr,"Error with cgroup_get_value_uint64(group1,
> > memory.failcnt) function : %s\n",cgroup_strerror(err));
> > }
> > fprintf(stdout,"Memory value group1 : %ld\n",memoryValue);
> > #endif
> >
> > usleep(2000000);
> > }
> >
> > delete_groups:
> > if (group1)
> > {
> > err = cgroup_delete_cgroup (group1, 0);
> > }
> > if (group0)
> > {
> > err = cgroup_delete_cgroup (group0, 0);
> > }
> > clean_ctrl:
> > clean_groups:
> > if (group1)
> > {
> > cgroup_free(&group1);
> > }
> > if (group0)
> > {
> > cgroup_free(&group0);
> > }
> >
> > unload:
> > err = cgroup_config_unload_config(CGROUP_CONF_FILE,
> > CGFLAG_DELETE_IGNORE_MIGRATION);
> > if(err != 0)
> > {
> > fprintf(stderr,"Error with cgroup_config_unload_config() function :
> > %s\n",cgroup_strerror(err));
> > exit(EXIT_FAILURE);
> > }
> >
> > return 0;
> > }
> > ----
> >
> > It outputs this :
> > ----
> > found cpu in rw,relatime,cpu
> > Found cgroup option rw,relatime,cpu, count 0
> > found freezer in rw,relatime,freezer
> > Found cgroup option rw,relatime,freezer, count 1
> > creating all cgroups now, error=0
> > found cpu in rw,relatime,cpu
> > Found cgroup option rw,relatime,cpu, count 0
> > found freezer in rw,relatime,freezer
> > Found cgroup option rw,relatime,freezer, count 1
> > Changing ownership of /cgroup/freezer/grp_0/
> > chown: path is /cgroup/freezer/grp_0/
> > chown: seeing file /cgroup/freezer/grp_0/
> > chown: seeing file /cgroup/freezer/grp_0/freezer.state
> > chown: seeing file /cgroup/freezer/grp_0/cgroup.clone_children
> > chown: seeing file /cgroup/freezer/grp_0/cgroup.event_control
> > chown: seeing file /cgroup/freezer/grp_0/notify_on_release
> > chown: seeing file /cgroup/freezer/grp_0/cgroup.procs
> > chown: seeing file /cgroup/freezer/grp_0/tasks
> > chown: seeing file /cgroup/freezer/grp_0/
> > Warning: fts_read failed
> > chmod: path is /cgroup/freezer/grp_0/
> > chmod: seeing file /cgroup/freezer/grp_0/
> > chmod: seeing file /cgroup/freezer/grp_0/freezer.state
> > chmod: seeing file /cgroup/freezer/grp_0/cgroup.clone_children
> > chmod: seeing file /cgroup/freezer/grp_0/cgroup.event_control
> > chmod: seeing file /cgroup/freezer/grp_0/notify_on_release
> > chmod: seeing file /cgroup/freezer/grp_0/cgroup.procs
> > chmod: seeing file /cgroup/freezer/grp_0/
> > Changing ownership of /cgroup/freezer/grp_1/
> > chown: path is /cgroup/freezer/grp_1/
> > chown: seeing file /cgroup/freezer/grp_1/
> > chown: seeing file /cgroup/freezer/grp_1/freezer.state
> > chown: seeing file /cgroup/freezer/grp_1/cgroup.clone_children
> > chown: seeing file /cgroup/freezer/grp_1/cgroup.event_control
> > chown: seeing file /cgroup/freezer/grp_1/notify_on_release
> > chown: seeing file /cgroup/freezer/grp_1/cgroup.procs
> > chown: seeing file /cgroup/freezer/grp_1/tasks
> > chown: seeing file /cgroup/freezer/grp_1/
> > Warning: fts_read failed
> > chmod: path is /cgroup/freezer/grp_1/
> > chmod: seeing file /cgroup/freezer/grp_1/
> > chmod: seeing file /cgroup/freezer/grp_1/freezer.state
> > chmod: seeing file /cgroup/freezer/grp_1/cgroup.clone_children
> > chmod: seeing file /cgroup/freezer/grp_1/cgroup.event_control
> > chmod: seeing file /cgroup/freezer/grp_1/notify_on_release
> > chmod: seeing file /cgroup/freezer/grp_1/cgroup.procs
> > chmod: seeing file /cgroup/freezer/grp_1/
> > Error with cgroup_get_cgroup(group0) function : Cgroup invalid operation
> > (error 50011)
> > Error with cgroup_get_value_string(group0, freezer.state) function :
> Cgroup,
> > requested group parameter does not exist
> > FREEZER value group0 : (null)
> > Error with cgroup_get_value_string(group0, freezer.state) function :
> Cgroup,
> > requested group parameter does not exist
> > FREEZER value group0 : (null)
> > Error with cgroup_get_cgroup(group0) function : Cgroup invalid operation
> > (error 50011)
> > Error with cgroup_get_value_string(group0, freezer.state) function :
> Cgroup,
> > requested group parameter does not exist
> > FREEZER value group0 : (null)
> > Error with cgroup_get_value_string(group0, freezer.state) function :
> Cgroup,
> > requested group parameter does not exist
> > FREEZER value group0 : (null)
> > Error with cgroup_get_cgroup(group0) function : Cgroup invalid operation
> > (error 50011)
> > Error with cgroup_get_value_string(group0, freezer.state) function :
> Cgroup,
> > requested group parameter does not exist
> > FREEZER value group0 : (null)
> > Error with cgroup_get_value_string(group0, freezer.state) function :
> Cgroup,
> > requested group parameter does not exist
> > FREEZER value group0 : (null)
> > Error with cgroup_get_cgroup(group0) function : Cgroup invalid operation
> > (error 50011)
> > Error with cgroup_get_value_string(group0, freezer.state) function :
> Cgroup,
> > requested group parameter does not exist
> > FREEZER value group0 : (null)
> > Error with cgroup_get_value_string(group0, freezer.state) function :
> Cgroup,
> > requested group parameter does not exist
> > FREEZER value group0 : (null)
> > Error with cgroup_get_cgroup(group0) function : Cgroup invalid operation
> > (error 50011)
> > Error with cgroup_get_value_string(group0, freezer.state) function :
> Cgroup,
> > requested group parameter does not exist
> > FREEZER value group0 : (null)
> > Error with cgroup_get_value_string(group0, freezer.state) function :
> Cgroup,
> > requested group parameter does not exist
> > FREEZER value group0 : (null)
> > path is /cgroup/freezer/grp_1/
> > parent's name is /cgroup/freezer/grp_1//..
> > group name is grp_1
> > parent's group name is .
> > Removing group freezer:grp_1
> > path is /cgroup/cpu/grp_0/
> > parent's name is /cgroup/cpu/grp_0//..
> > group name is grp_0
> > parent's group name is .
> > Removing group cpu:grp_0
> > path is /cgroup/freezer/grp_0/
> > parent's name is /cgroup/freezer/grp_0//..
> > group name is grp_0
> > parent's group name is .
> > Removing group freezer:grp_0
> > cgroup_config_unload_config: parsing ./cgconfig.conf
> > unmounting cpu
> > path is /
> > seeing file /cgroup/cpu/
> > seeing file /cgroup/cpu/grp_1
> > won't unmount cpu: hieararchy is not empty
> > unmounting freezer
> > path is /
> > seeing file /cgroup/freezer/
> > seeing file /cgroup/freezer/release_agent
> > seeing file /cgroup/freezer/cgroup.clone_children
> > seeing file /cgroup/freezer/cgroup.event_control
> > seeing file /cgroup/freezer/notify_on_release
> > seeing file /cgroup/freezer/cgroup.procs
> > seeing file /cgroup/freezer/tasks
> > seeing file /cgroup/freezer/
> > unmounting freezer at /cgroup/freezer
> > Error with cgroup_config_unload_config() function : Device or resource
> busy
> > ----
> >
> > And finally, the strace of this program.
> > Strangely, running the program in strace brings a different result.
> >
> > ----
> >
> > execve("./test", ["./test"], [/* 17 vars */]) = 0
> > brk(0) = 0x237b000
> > access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or
> > directory)
> > mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
> =
> > 0x7fdd5752b000
> > access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or
> > directory)
> > open("/etc/ld.so.cache", O_RDONLY) = 3
> > fstat(3, {st_mode=S_IFREG|0644, st_size=134190, ...}) = 0
> > mmap(NULL, 134190, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fdd5750a000
> > close(3) = 0
> > access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or
> > directory)
> > open("/lib/x86_64-linux-gnu/librt.so.1", O_RDONLY) = 3
> > read(3,
> > "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220!\0\0\0\0\0\0"...,
> 832) =
> > 832
> > fstat(3, {st_mode=S_IFREG|0644, st_size=31744, ...}) = 0
> > mmap(NULL, 2128856, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3,
> 0) =
> > 0x7fdd57106000
> > mprotect(0x7fdd5710d000, 2093056, PROT_NONE) = 0
> > mmap(0x7fdd5730c000, 8192, PROT_READ|PROT_WRITE,
> > MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7fdd5730c000
> > close(3) = 0
> > access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or
> > directory)
> > open("/lib/x86_64-linux-gnu/libpthread.so.0", O_RDONLY) = 3
> > read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@
> \\\0\0\0\0\0\0"...,
> > 832) = 832
> > fstat(3, {st_mode=S_IFREG|0755, st_size=131107, ...}) = 0
> > mmap(NULL, 2208672, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3,
> 0) =
> > 0x7fdd56eea000
> > mprotect(0x7fdd56f01000, 2093056, PROT_NONE) = 0
> > mmap(0x7fdd57100000, 8192, PROT_READ|PROT_WRITE,
> > MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16000) = 0x7fdd57100000
> > mmap(0x7fdd57102000, 13216, PROT_READ|PROT_WRITE,
> > MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fdd57102000
> > close(3) = 0
> > access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or
> > directory)
> > open("/usr/lib/x86_64-linux-gnu/libstdc++.so.6", O_RDONLY) = 3
> > read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@
> \6\6\0\0\0\0\0"...,
> > 832) = 832
> > fstat(3, {st_mode=S_IFREG|0644, st_size=991600, ...}) = 0
> > mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
> =
> > 0x7fdd57509000
> > mmap(NULL, 3171520, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3,
> 0) =
> > 0x7fdd56be3000
> > mprotect(0x7fdd56ccb000, 2097152, PROT_NONE) = 0
> > mmap(0x7fdd56ecb000, 40960, PROT_READ|PROT_WRITE,
> > MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe8000) = 0x7fdd56ecb000
> > mmap(0x7fdd56ed5000, 83136, PROT_READ|PROT_WRITE,
> > MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fdd56ed5000
> > close(3) = 0
> > access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or
> > directory)
> > open("/lib/x86_64-linux-gnu/libm.so.6", O_RDONLY) = 3
> > read(3,
> > "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360>\0\0\0\0\0\0"...,
> 832) =
> > 832
> > fstat(3, {st_mode=S_IFREG|0644, st_size=530736, ...}) = 0
> > mmap(NULL, 2625768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3,
> 0) =
> > 0x7fdd56961000
> > mprotect(0x7fdd569e2000, 2093056, PROT_NONE) = 0
> > mmap(0x7fdd56be1000, 8192, PROT_READ|PROT_WRITE,
> > MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x80000) = 0x7fdd56be1000
> > close(3) = 0
> > access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or
> > directory)
> > open("/lib/x86_64-linux-gnu/libgcc_s.so.1", O_RDONLY) = 3
> > read(3,
> "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p.\0\0\0\0\0\0"...,
> > 832) = 832
> > fstat(3, {st_mode=S_IFREG|0644, st_size=89056, ...}) = 0
> > mmap(NULL, 2184824, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3,
> 0) =
> > 0x7fdd5674b000
> > mprotect(0x7fdd56760000, 2097152, PROT_NONE) = 0
> > mmap(0x7fdd56960000, 4096, PROT_READ|PROT_WRITE,
> > MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x7fdd56960000
> > close(3) = 0
> > access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or
> > directory)
> > open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY) = 3
> > read(3,
> > "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\357\1\0\0\0\0\0"...,
> > 832) = 832
> > fstat(3, {st_mode=S_IFREG|0755, st_size=1603600, ...}) = 0
> > mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
> =
> > 0x7fdd57508000
> > mmap(NULL, 3717176, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3,
> 0) =
> > 0x7fdd563bf000
> > mprotect(0x7fdd56541000, 2097152, PROT_NONE) = 0
> > mmap(0x7fdd56741000, 20480, PROT_READ|PROT_WRITE,
> > MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x182000) = 0x7fdd56741000
> > mmap(0x7fdd56746000, 18488, PROT_READ|PROT_WRITE,
> > MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fdd56746000
> > close(3) = 0
> > mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
> =
> > 0x7fdd57507000
> > mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
> =
> > 0x7fdd57505000
> > arch_prctl(ARCH_SET_FS, 0x7fdd57505b40) = 0
> > mprotect(0x7fdd56741000, 16384, PROT_READ) = 0
> > mprotect(0x7fdd56be1000, 4096, PROT_READ) = 0
> > mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
> =
> > 0x7fdd57504000
> > mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
> =
> > 0x7fdd57503000
> > mprotect(0x7fdd56ecb000, 32768, PROT_READ) = 0
> > mprotect(0x7fdd57100000, 4096, PROT_READ) = 0
> > mprotect(0x7fdd5730c000, 4096, PROT_READ) = 0
> > mprotect(0x7fdd5752d000, 4096, PROT_READ) = 0
> > munmap(0x7fdd5750a000, 134190) = 0
> > set_tid_address(0x7fdd57505e10) = 8389
> > set_robust_list(0x7fdd57505e20, 0x18) = 0
> > futex(0x7fff3b48224c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1,
> > NULL, 7fdd57505b40) = -1 EAGAIN (Resource temporarily unavailable)
> > rt_sigaction(SIGRTMIN, {0x7fdd56eefad0, [], SA_RESTORER|SA_SIGINFO,
> > 0x7fdd56ef90a0}, NULL, 8) = 0
> > rt_sigaction(SIGRT_1, {0x7fdd56eefb60, [],
> > SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x7fdd56ef90a0}, NULL, 8) = 0
> > rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
> > getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
> > futex(0x7fdd56ee79e4, FUTEX_WAKE_PRIVATE, 2147483647) = 0
> > futex(0x7fdd56ee79f0, FUTEX_WAKE_PRIVATE, 2147483647) = 0
> > brk(0) = 0x237b000
> > brk(0x239c000) = 0x239c000
> > open("./cgconfig.conf", O_RDONLY|O_CLOEXEC) = 3
> > mmap(NULL, 319488, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
> 0) =
> > 0x7fdd574b5000
> > mmap(NULL, 319488, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
> 0) =
> > 0x7fdd57467000
> > ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff3b481710) = -1 ENOTTY
> > (Inappropriate ioctl for device)
> > fstat(3, {st_mode=S_IFREG|0644, st_size=184, ...}) = 0
> > mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
> =
> > 0x7fdd5752a000
> > read(3, "mount {\n# cpuset = /cgroup/cp"..., 8192) = 184
> > read(3, "", 4096) = 0
> > read(3, "", 8192) = 0
> > ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff3b481710) = -1 ENOTTY
> > (Inappropriate ioctl for device)
> > close(3) = 0
> > munmap(0x7fdd5752a000, 4096) = 0
> > stat("/cgroup/cpu", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
> > mount("cgroup", "/cgroup/cpu", "cgroup", 0, "cpu") = 0
> > stat("/cgroup/freezer", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
> > mount("cgroup", "/cgroup/freezer", "cgroup", 0, "freezer") = 0
> > open("/proc/cgroups", O_RDONLY|O_CLOEXEC) = 3
> > fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
> > mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
> =
> > 0x7fdd5752a000
> > read(3, "#subsys_name\thierarchy\tnum_cgrou"..., 1024) = 168
> > read(3, "", 1024) = 0
> > open("/proc/mounts", O_RDONLY|O_CLOEXEC) = 4
> > fstat(4, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
> > mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
> =
> > 0x7fdd57529000
> > read(4, "rootfs / rootfs rw 0 0\nsysfs /sy"..., 1024) = 1024
> > read(4, ",fd=13,pgrp=3146,timeout=300,min"..., 1024) = 162
> > fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 12), ...}) = 0
> > mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
> =
> > 0x7fdd57528000
> > write(1, "found cpu in rw,relatime,cpu\n", 29) = 29
> > write(1, "Found cgroup option rw,relatime,"..., 45) = 45
> > write(1, "found freezer in rw,relatime,fre"..., 37) = 37
> > write(1, "Found cgroup option rw,relatime,"..., 49) = 49
> > read(4, "", 1024) = 0
> > close(3) = 0
> > munmap(0x7fdd5752a000, 4096) = 0
> > close(4) = 0
> > munmap(0x7fdd57529000, 4096) = 0
> > write(1, "creating all cgroups now, error="..., 34) = 34
> > munmap(0x7fdd574b5000, 319488) = 0
> > munmap(0x7fdd57467000, 319488) = 0
> > open("/proc/cgroups", O_RDONLY|O_CLOEXEC) = 3
> > fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
> > mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
> =
> > 0x7fdd5752a000
> > read(3, "#subsys_name\thierarchy\tnum_cgrou"..., 1024) = 168
> > read(3, "", 1024) = 0
> > open("/proc/mounts", O_RDONLY|O_CLOEXEC) = 4
> > fstat(4, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
> > mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
> =
> > 0x7fdd57529000
> > read(4, "rootfs / rootfs rw 0 0\nsysfs /sy"..., 1024) = 1024
> > read(4, ",fd=13,pgrp=3146,timeout=300,min"..., 1024) = 162
> > write(1, "found cpu in rw,relatime,cpu\n", 29) = 29
> > write(1, "Found cgroup option rw,relatime,"..., 45) = 45
> > write(1, "found freezer in rw,relatime,fre"..., 37) = 37
> > write(1, "Found cgroup option rw,relatime,"..., 49) = 49
> > read(4, "", 1024) = 0
> > close(3) = 0
> > munmap(0x7fdd5752a000, 4096) = 0
> > close(4) = 0
> > munmap(0x7fdd57529000, 4096) = 0
> > open("/proc/mounts", O_RDONLY|O_CLOEXEC) = 3
> > fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
> > mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
> =
> > 0x7fdd5752a000
> > read(3, "rootfs / rootfs rw 0 0\nsysfs /sy"..., 1024) = 1024
> > read(3, ",fd=13,pgrp=3146,timeout=300,min"..., 1024) = 162
> > close(3) = 0
> > munmap(0x7fdd5752a000, 4096) = 0
> > mkdir("/cgroup", 0775) = -1 EEXIST (File exists)
> > mkdir("/cgroup/freezer", 0775) = -1 EEXIST (File exists)
> > mkdir("/cgroup/freezer/grp_0", 0775) = -1 EEXIST (File exists)
> > write(1, "Changing ownership of /cgroup/fr"..., 45) = 45
> > write(1, "chown: path is /cgroup/freezer/g"..., 38) = 38
> > lstat("/cgroup/freezer/grp_0/", {st_mode=S_IFDIR|0755, st_size=0, ...})
> = 0
> > write(1, "chown: seeing file /cgroup/freez"..., 42) = 42
> > getuid() = 0
> > getgid() = 0
> > chown("/cgroup/freezer/grp_0/", 0, 0) = 0
> > open("/cgroup/freezer/grp_0/",
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) =
> > 3
> > getdents(3, /* 8 entries */, 32768) = 280
> > getdents(3, /* 0 entries */, 32768) = 0
> > close(3) = 0
> > write(1, "chown: seeing file /cgroup/freez"..., 55) = 55
> > getuid() = 0
> > getgid() = 0
> > chown("/cgroup/freezer/grp_0/freezer.state", 0, 0) = 0
> > write(1, "chown: seeing file /cgroup/freez"..., 63) = 63
> > getuid() = 0
> > getgid() = 0
> > chown("/cgroup/freezer/grp_0/cgroup.clone_children", 0, 0) = 0
> > write(1, "chown: seeing file /cgroup/freez"..., 62) = 62
> > getuid() = 0
> > getgid() = 0
> > chown("/cgroup/freezer/grp_0/cgroup.event_control", 0, 0) = 0
> > write(1, "chown: seeing file /cgroup/freez"..., 59) = 59
> > getuid() = 0
> > getgid() = 0
> > chown("/cgroup/freezer/grp_0/notify_on_release", 0, 0) = 0
> > write(1, "chown: seeing file /cgroup/freez"..., 54) = 54
> > getuid() = 0
> > getgid() = 0
> > chown("/cgroup/freezer/grp_0/cgroup.procs", 0, 0) = 0
> > write(1, "chown: seeing file /cgroup/freez"..., 47) = 47
> > getuid() = 0
> > getgid() = 0
> > chown("/cgroup/freezer/grp_0/tasks", 0, 0) = 0
> > write(1, "chown: seeing file /cgroup/freez"..., 42) = 42
> > getuid() = 0
> > getgid() = 0
> > chown("/cgroup/freezer/grp_0/", 0, 0) = 0
> > write(1, "Warning: fts_read failed\n", 25) = 25
> > write(1, "chmod: path is /cgroup/freezer/g"..., 38) = 38
> > lstat("/cgroup/freezer/grp_0/", {st_mode=S_IFDIR|0755, st_size=0, ...})
> = 0
> > write(1, "chmod: seeing file /cgroup/freez"..., 42) = 42
> > open("/cgroup/freezer/grp_0/",
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) =
> > 3
> > getdents(3, /* 8 entries */, 32768) = 280
> > getdents(3, /* 0 entries */, 32768) = 0
> > close(3) = 0
> > write(1, "chmod: seeing file /cgroup/freez"..., 55) = 55
> > write(1, "chmod: seeing file /cgroup/freez"..., 63) = 63
> > write(1, "chmod: seeing file /cgroup/freez"..., 62) = 62
> > write(1, "chmod: seeing file /cgroup/freez"..., 59) = 59
> > write(1, "chmod: seeing file /cgroup/freez"..., 54) = 54
> > write(1, "chmod: seeing file /cgroup/freez"..., 42) = 42
> > getuid() = 0
> > getgid() = 0
> > chown("/cgroup/freezer/grp_0//tasks", 0, 0) = 0
> > open("/proc/mounts", O_RDONLY|O_CLOEXEC) = 3
> > fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
> > mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
> =
> > 0x7fdd5752a000
> > read(3, "rootfs / rootfs rw 0 0\nsysfs /sy"..., 1024) = 1024
> > read(3, ",fd=13,pgrp=3146,timeout=300,min"..., 1024) = 162
> > close(3) = 0
> > munmap(0x7fdd5752a000, 4096) = 0
> > mkdir("/cgroup", 0775) = -1 EEXIST (File exists)
> > mkdir("/cgroup/freezer", 0775) = -1 EEXIST (File exists)
> > mkdir("/cgroup/freezer/grp_1", 0775) = -1 EEXIST (File exists)
> > write(1, "Changing ownership of /cgroup/fr"..., 45) = 45
> > write(1, "chown: path is /cgroup/freezer/g"..., 38) = 38
> > lstat("/cgroup/freezer/grp_1/", {st_mode=S_IFDIR|0755, st_size=0, ...})
> = 0
> > write(1, "chown: seeing file /cgroup/freez"..., 42) = 42
> > getuid() = 0
> > getgid() = 0
> > chown("/cgroup/freezer/grp_1/", 0, 0) = 0
> > open("/cgroup/freezer/grp_1/",
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) =
> > 3
> > getdents(3, /* 8 entries */, 32768) = 280
> > getdents(3, /* 0 entries */, 32768) = 0
> > close(3) = 0
> > write(1, "chown: seeing file /cgroup/freez"..., 55) = 55
> > getuid() = 0
> > getgid() = 0
> > chown("/cgroup/freezer/grp_1/freezer.state", 0, 0) = 0
> > write(1, "chown: seeing file /cgroup/freez"..., 63) = 63
> > getuid() = 0
> > getgid() = 0
> > chown("/cgroup/freezer/grp_1/cgroup.clone_children", 0, 0) = 0
> > write(1, "chown: seeing file /cgroup/freez"..., 62) = 62
> > getuid() = 0
> > getgid() = 0
> > chown("/cgroup/freezer/grp_1/cgroup.event_control", 0, 0) = 0
> > write(1, "chown: seeing file /cgroup/freez"..., 59) = 59
> > getuid() = 0
> > getgid() = 0
> > chown("/cgroup/freezer/grp_1/notify_on_release", 0, 0) = 0
> > write(1, "chown: seeing file /cgroup/freez"..., 54) = 54
> > getuid() = 0
> > getgid() = 0
> > chown("/cgroup/freezer/grp_1/cgroup.procs", 0, 0) = 0
> > write(1, "chown: seeing file /cgroup/freez"..., 47) = 47
> > getuid() = 0
> > getgid() = 0
> > chown("/cgroup/freezer/grp_1/tasks", 0, 0) = 0
> > write(1, "chown: seeing file /cgroup/freez"..., 42) = 42
> > getuid() = 0
> > getgid() = 0
> > chown("/cgroup/freezer/grp_1/", 0, 0) = 0
> > write(1, "Warning: fts_read failed\n", 25) = 25
> > write(1, "chmod: path is /cgroup/freezer/g"..., 38) = 38
> > lstat("/cgroup/freezer/grp_1/", {st_mode=S_IFDIR|0755, st_size=0, ...})
> = 0
> > write(1, "chmod: seeing file /cgroup/freez"..., 42) = 42
> > open("/cgroup/freezer/grp_1/",
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) =
> > 3
> > getdents(3, /* 8 entries */, 32768) = 280
> > getdents(3, /* 0 entries */, 32768) = 0
> > close(3) = 0
> > write(1, "chmod: seeing file /cgroup/freez"..., 55) = 55
> > write(1, "chmod: seeing file /cgroup/freez"..., 63) = 63
> > write(1, "chmod: seeing file /cgroup/freez"..., 62) = 62
> > write(1, "chmod: seeing file /cgroup/freez"..., 59) = 59
> > write(1, "chmod: seeing file /cgroup/freez"..., 54) = 54
> > write(1, "chmod: seeing file /cgroup/freez"..., 42) = 42
> > getuid() = 0
> > getgid() = 0
> > chown("/cgroup/freezer/grp_1//tasks", 0, 0) = 0
> > access("/cgroup/cpu/grp_0", F_OK) = -1 ENOENT (No such file or
> > directory)
> > access("/cgroup/freezer/grp_0", F_OK) = 0
> > stat("/cgroup/freezer/grp_0//tasks", {st_mode=S_IFREG|0644, st_size=0,
> ...})
> > = 0
> > write(2, "Error with cgroup_get_cgroup(gro"..., 87) = 87
> > write(2, "Error with cgroup_get_value_stri"..., 118) = 118
> > write(1, "FREEZER value group0 : (null)\n", 30) = 30
> > nanosleep({2, 0}, NULL) = 0
> > access("/cgroup/cpu/grp_0", F_OK) = -1 ENOENT (No such file or
> > directory)
> > access("/cgroup/freezer/grp_0", F_OK) = 0
> > stat("/cgroup/freezer/grp_0//tasks", {st_mode=S_IFREG|0644, st_size=0,
> ...})
> > = 0
> > open("/cgroup/freezer/grp_0/",
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) =
> > 3
> > getdents(3, /* 8 entries */, 32768) = 280
> > stat("/cgroup/freezer/grp_0/freezer.state", {st_mode=S_IFREG|0644,
> > st_size=0, ...}) = 0
> > open("/cgroup/freezer/grp_0/freezer.state", O_RDONLY|O_CLOEXEC) = 4
> > fstat(4, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
> > mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
> =
> > 0x7fdd5752a000
> > read(4, "THAWED\n", 4096) = 7
> > read(4, "", 4096) = 0
> > close(4) = 0
> > munmap(0x7fdd5752a000, 4096) = 0
> > stat("/cgroup/freezer/grp_0/cgroup.clone_children",
> {st_mode=S_IFREG|0644,
> > st_size=0, ...}) = 0
> > stat("/cgroup/freezer/grp_0/cgroup.event_control", {st_mode=S_IFREG|0222,
> > st_size=0, ...}) = 0
> > stat("/cgroup/freezer/grp_0/notify_on_release", {st_mode=S_IFREG|0644,
> > st_size=0, ...}) = 0
> > stat("/cgroup/freezer/grp_0/cgroup.procs", {st_mode=S_IFREG|0644,
> st_size=0,
> > ...}) = 0
> > stat("/cgroup/freezer/grp_0/tasks", {st_mode=S_IFREG|0644, st_size=0,
> ...})
> > = 0
> > getdents(3, /* 0 entries */, 32768) = 0
> > close(3) = 0
> > write(1, "FREEZER value group0 : THAWED\n", 30) = 30
> > nanosleep({2, 0}, NULL) = 0
> > access("/cgroup/cpu/grp_0", F_OK) = -1 ENOENT (No such file or
> > directory)
> > access("/cgroup/freezer/grp_0", F_OK) = 0
> > stat("/cgroup/freezer/grp_0//tasks", {st_mode=S_IFREG|0644, st_size=0,
> ...})
> > = 0
> > write(2, "Error with cgroup_get_cgroup(gro"..., 87) = 87
> > write(2, "Error with cgroup_get_value_stri"..., 118) = 118
> > write(1, "FREEZER value group0 : (null)\n", 30) = 30
> > nanosleep({2, 0}, NULL) = 0
> > access("/cgroup/cpu/grp_0", F_OK) = -1 ENOENT (No such file or
> > directory)
> > access("/cgroup/freezer/grp_0", F_OK) = 0
> > stat("/cgroup/freezer/grp_0//tasks", {st_mode=S_IFREG|0644, st_size=0,
> ...})
> > = 0
> > open("/cgroup/freezer/grp_0/",
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) =
> > 3
> > getdents(3, /* 8 entries */, 32768) = 280
> > stat("/cgroup/freezer/grp_0/freezer.state", {st_mode=S_IFREG|0644,
> > st_size=0, ...}) = 0
> > open("/cgroup/freezer/grp_0/freezer.state", O_RDONLY|O_CLOEXEC) = 4
> > fstat(4, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
> > mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
> =
> > 0x7fdd5752a000
> > read(4, "THAWED\n", 4096) = 7
> > read(4, "", 4096) = 0
> > close(4) = 0
> > munmap(0x7fdd5752a000, 4096) = 0
> > stat("/cgroup/freezer/grp_0/cgroup.clone_children",
> {st_mode=S_IFREG|0644,
> > st_size=0, ...}) = 0
> > stat("/cgroup/freezer/grp_0/cgroup.event_control", {st_mode=S_IFREG|0222,
> > st_size=0, ...}) = 0
> > stat("/cgroup/freezer/grp_0/notify_on_release", {st_mode=S_IFREG|0644,
> > st_size=0, ...}) = 0
> > stat("/cgroup/freezer/grp_0/cgroup.procs", {st_mode=S_IFREG|0644,
> st_size=0,
> > ...}) = 0
> > stat("/cgroup/freezer/grp_0/tasks", {st_mode=S_IFREG|0644, st_size=0,
> ...})
> > = 0
> > getdents(3, /* 0 entries */, 32768) = 0
> > close(3) = 0
> > write(1, "FREEZER value group0 : THAWED\n", 30) = 30
> > nanosleep({2, 0}, NULL) = 0
> > access("/cgroup/cpu/grp_0", F_OK) = -1 ENOENT (No such file or
> > directory)
> > access("/cgroup/freezer/grp_0", F_OK) = 0
> > stat("/cgroup/freezer/grp_0//tasks", {st_mode=S_IFREG|0644, st_size=0,
> ...})
> > = 0
> > write(2, "Error with cgroup_get_cgroup(gro"..., 87) = 87
> > write(2, "Error with cgroup_get_value_stri"..., 118) = 118
> > write(1, "FREEZER value group0 : (null)\n", 30) = 30
> > nanosleep({2, 0}, NULL) = 0
> > access("/cgroup/cpu/grp_0", F_OK) = -1 ENOENT (No such file or
> > directory)
> > access("/cgroup/freezer/grp_0", F_OK) = 0
> > stat("/cgroup/freezer/grp_0//tasks", {st_mode=S_IFREG|0644, st_size=0,
> ...})
> > = 0
> > open("/cgroup/freezer/grp_0/",
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) =
> > 3
> > getdents(3, /* 8 entries */, 32768) = 280
> > stat("/cgroup/freezer/grp_0/freezer.state", {st_mode=S_IFREG|0644,
> > st_size=0, ...}) = 0
> > open("/cgroup/freezer/grp_0/freezer.state", O_RDONLY|O_CLOEXEC) = 4
> > fstat(4, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
> > mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
> =
> > 0x7fdd5752a000
> > read(4, "THAWED\n", 4096) = 7
> > read(4, "", 4096) = 0
> > close(4) = 0
> > munmap(0x7fdd5752a000, 4096) = 0
> > stat("/cgroup/freezer/grp_0/cgroup.clone_children",
> {st_mode=S_IFREG|0644,
> > st_size=0, ...}) = 0
> > stat("/cgroup/freezer/grp_0/cgroup.event_control", {st_mode=S_IFREG|0222,
> > st_size=0, ...}) = 0
> > stat("/cgroup/freezer/grp_0/notify_on_release", {st_mode=S_IFREG|0644,
> > st_size=0, ...}) = 0
> > stat("/cgroup/freezer/grp_0/cgroup.procs", {st_mode=S_IFREG|0644,
> st_size=0,
> > ...}) = 0
> > stat("/cgroup/freezer/grp_0/tasks", {st_mode=S_IFREG|0644, st_size=0,
> ...})
> > = 0
> > getdents(3, /* 0 entries */, 32768) = 0
> > close(3) = 0
> > write(1, "FREEZER value group0 : THAWED\n", 30) = 30
> > nanosleep({2, 0}, NULL) = 0
> > access("/cgroup/cpu/grp_0", F_OK) = -1 ENOENT (No such file or
> > directory)
> > access("/cgroup/freezer/grp_0", F_OK) = 0
> > stat("/cgroup/freezer/grp_0//tasks", {st_mode=S_IFREG|0644, st_size=0,
> ...})
> > = 0
> > write(2, "Error with cgroup_get_cgroup(gro"..., 87) = 87
> > write(2, "Error with cgroup_get_value_stri"..., 118) = 118
> > write(1, "FREEZER value group0 : (null)\n", 30) = 30
> > nanosleep({2, 0}, NULL) = 0
> > access("/cgroup/cpu/grp_0", F_OK) = -1 ENOENT (No such file or
> > directory)
> > access("/cgroup/freezer/grp_0", F_OK) = 0
> > stat("/cgroup/freezer/grp_0//tasks", {st_mode=S_IFREG|0644, st_size=0,
> ...})
> > = 0
> > open("/cgroup/freezer/grp_0/",
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) =
> > 3
> > getdents(3, /* 8 entries */, 32768) = 280
> > stat("/cgroup/freezer/grp_0/freezer.state", {st_mode=S_IFREG|0644,
> > st_size=0, ...}) = 0
> > open("/cgroup/freezer/grp_0/freezer.state", O_RDONLY|O_CLOEXEC) = 4
> > fstat(4, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
> > mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
> =
> > 0x7fdd5752a000
> > read(4, "THAWED\n", 4096) = 7
> > read(4, "", 4096) = 0
> > close(4) = 0
> > munmap(0x7fdd5752a000, 4096) = 0
> > stat("/cgroup/freezer/grp_0/cgroup.clone_children",
> {st_mode=S_IFREG|0644,
> > st_size=0, ...}) = 0
> > stat("/cgroup/freezer/grp_0/cgroup.event_control", {st_mode=S_IFREG|0222,
> > st_size=0, ...}) = 0
> > stat("/cgroup/freezer/grp_0/notify_on_release", {st_mode=S_IFREG|0644,
> > st_size=0, ...}) = 0
> > stat("/cgroup/freezer/grp_0/cgroup.procs", {st_mode=S_IFREG|0644,
> st_size=0,
> > ...}) = 0
> > stat("/cgroup/freezer/grp_0/tasks", {st_mode=S_IFREG|0644, st_size=0,
> ...})
> > = 0
> > getdents(3, /* 0 entries */, 32768) = 0
> > close(3) = 0
> > write(1, "FREEZER value group0 : THAWED\n", 30) = 30
> > nanosleep({2, 0}, NULL) = 0
> > access("/cgroup/cpu/grp_0", F_OK) = -1 ENOENT (No such file or
> > directory)
> > access("/cgroup/freezer/grp_0", F_OK) = 0
> > stat("/cgroup/freezer/grp_0//tasks", {st_mode=S_IFREG|0644, st_size=0,
> ...})
> > = 0
> > write(2, "Error with cgroup_get_cgroup(gro"..., 87) = 87
> > write(2, "Error with cgroup_get_value_stri"..., 118) = 118
> > write(1, "FREEZER value group0 : (null)\n", 30) = 30
> > nanosleep({2, 0}, NULL) = 0
> > access("/cgroup/cpu/grp_0", F_OK) = -1 ENOENT (No such file or
> > directory)
> > access("/cgroup/freezer/grp_0", F_OK) = 0
> > stat("/cgroup/freezer/grp_0//tasks", {st_mode=S_IFREG|0644, st_size=0,
> ...})
> > = 0
> > open("/cgroup/freezer/grp_0/",
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) =
> > 3
> > getdents(3, /* 8 entries */, 32768) = 280
> > stat("/cgroup/freezer/grp_0/freezer.state", {st_mode=S_IFREG|0644,
> > st_size=0, ...}) = 0
> > open("/cgroup/freezer/grp_0/freezer.state", O_RDONLY|O_CLOEXEC) = 4
> > fstat(4, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
> > mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
> =
> > 0x7fdd5752a000
> > read(4, "THAWED\n", 4096) = 7
> > read(4, "", 4096) = 0
> > close(4) = 0
> > munmap(0x7fdd5752a000, 4096) = 0
> > stat("/cgroup/freezer/grp_0/cgroup.clone_children",
> {st_mode=S_IFREG|0644,
> > st_size=0, ...}) = 0
> > stat("/cgroup/freezer/grp_0/cgroup.event_control", {st_mode=S_IFREG|0222,
> > st_size=0, ...}) = 0
> > stat("/cgroup/freezer/grp_0/notify_on_release", {st_mode=S_IFREG|0644,
> > st_size=0, ...}) = 0
> > stat("/cgroup/freezer/grp_0/cgroup.procs", {st_mode=S_IFREG|0644,
> st_size=0,
> > ...}) = 0
> > stat("/cgroup/freezer/grp_0/tasks", {st_mode=S_IFREG|0644, st_size=0,
> ...})
> > = 0
> > getdents(3, /* 0 entries */, 32768) = 0
> > close(3) = 0
> > write(1, "FREEZER value group0 : THAWED\n", 30) = 30
> > nanosleep({2, 0}, NULL) = 0
> > write(1, "path is /cgroup/freezer/grp_1/\n", 31) = 31
> > write(1, "parent's name is /cgroup/freezer"..., 43) = 43
> > stat("/cgroup/freezer/grp_1/", {st_mode=S_IFDIR|0755, st_size=0, ...}) =
> 0
> > stat("/cgroup/freezer/grp_1//..", {st_mode=S_IFDIR|0755, st_size=0,
> ...}) =
> > 0
> > write(1, "group name is grp_1\n", 20) = 20
> > write(1, "parent's group name is .\n", 25) = 25
> > open("/cgroup/freezer/.//tasks", O_WRONLY|O_CREAT|O_TRUNC|O_CLOEXEC,
> 0666) =
> > 3
> > write(1, "Removing group freezer:grp_1\n", 29) = 29
> > open("/cgroup/freezer/grp_1/tasks", O_RDONLY|O_CLOEXEC) = 4
> > fstat(4, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
> > mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
> =
> > 0x7fdd5752a000
> > read(4, "", 4096) = 0
> > close(4) = 0
> > munmap(0x7fdd5752a000, 4096) = 0
> > rmdir("/cgroup/freezer/grp_1/") = 0
> > close(3) = 0
> > write(1, "path is /cgroup/freezer/grp_0/\n", 31) = 31
> > write(1, "parent's name is /cgroup/freezer"..., 43) = 43
> > stat("/cgroup/freezer/grp_0/", {st_mode=S_IFDIR|0755, st_size=0, ...}) =
> 0
> > stat("/cgroup/freezer/grp_0//..", {st_mode=S_IFDIR|0755, st_size=0,
> ...}) =
> > 0
> > write(1, "group name is grp_0\n", 20) = 20
> > write(1, "parent's group name is .\n", 25) = 25
> > open("/cgroup/freezer/.//tasks", O_WRONLY|O_CREAT|O_TRUNC|O_CLOEXEC,
> 0666) =
> > 3
> > write(1, "Removing group freezer:grp_0\n", 29) = 29
> > open("/cgroup/freezer/grp_0/tasks", O_RDONLY|O_CLOEXEC) = 4
> > fstat(4, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
> > mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
> =
> > 0x7fdd5752a000
> > read(4, "", 4096) = 0
> > close(4) = 0
> > munmap(0x7fdd5752a000, 4096) = 0
> > rmdir("/cgroup/freezer/grp_0/") = 0
> > close(3) = 0
> > write(1, "cgroup_config_unload_config: par"..., 53) = 53
> > open("./cgconfig.conf", O_RDONLY|O_CLOEXEC) = 3
> > brk(0x23ed000) = 0x23ed000
> > brk(0x243a000) = 0x243a000
> > fstat(3, {st_mode=S_IFREG|0644, st_size=184, ...}) = 0
> > mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
> =
> > 0x7fdd5752a000
> > read(3, "mount {\n# cpuset = /cgroup/cp"..., 8192) = 184
> > read(3, "", 4096) = 0
> > read(3, "", 8192) = 0
> > ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff3b481760) = -1 ENOTTY
> > (Inappropriate ioctl for device)
> > close(3) = 0
> > munmap(0x7fdd5752a000, 4096) = 0
> > open("/proc/meminfo", O_RDONLY) = 3
> > fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
> > mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
> =
> > 0x7fdd5752a000
> > read(3, "MemTotal: 16413660 kB\nMemF"..., 1024) = 1024
> > close(3) = 0
> > munmap(0x7fdd5752a000, 4096) = 0
> > write(1, "unmounting cpu\n", 15) = 15
> > write(1, "path is /\n", 10) = 10
> > stat("/cgroup/cpu/", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
> > write(1, "seeing file /cgroup/cpu/\n", 25) = 25
> > open("/cgroup/cpu/", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
> > getdents(3, /* 10 entries */, 32768) = 344
> > stat("/cgroup/cpu/grp_1", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
> > stat("/cgroup/cpu/cpu.shares", {st_mode=S_IFREG|0644, st_size=0, ...}) =
> 0
> > stat("/cgroup/cpu/release_agent", {st_mode=S_IFREG|0644, st_size=0,
> ...}) =
> > 0
> > stat("/cgroup/cpu/cgroup.clone_children", {st_mode=S_IFREG|0644,
> st_size=0,
> > ...}) = 0
> > stat("/cgroup/cpu/cgroup.event_control", {st_mode=S_IFREG|0222,
> st_size=0,
> > ...}) = 0
> > stat("/cgroup/cpu/notify_on_release", {st_mode=S_IFREG|0644, st_size=0,
> > ...}) = 0
> > stat("/cgroup/cpu/cgroup.procs", {st_mode=S_IFREG|0644, st_size=0, ...})
> = 0
> > stat("/cgroup/cpu/tasks", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
> > getdents(3, /* 0 entries */, 32768) = 0
> > close(3) = 0
> > write(1, "seeing file /cgroup/cpu/grp_1\n", 30) = 30
> > write(1, "won't unmount cpu: hieararchy is"..., 43) = 43
> > write(1, "unmounting freezer\n", 19) = 19
> > write(1, "path is /\n", 10) = 10
> > stat("/cgroup/freezer/", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
> > write(1, "seeing file /cgroup/freezer/\n", 29) = 29
> > open("/cgroup/freezer/", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
> > getdents(3, /* 8 entries */, 32768) = 280
> > stat("/cgroup/freezer/release_agent", {st_mode=S_IFREG|0644, st_size=0,
> > ...}) = 0
> > stat("/cgroup/freezer/cgroup.clone_children", {st_mode=S_IFREG|0644,
> > st_size=0, ...}) = 0
> > stat("/cgroup/freezer/cgroup.event_control", {st_mode=S_IFREG|0222,
> > st_size=0, ...}) = 0
> > stat("/cgroup/freezer/notify_on_release", {st_mode=S_IFREG|0644,
> st_size=0,
> > ...}) = 0
> > stat("/cgroup/freezer/cgroup.procs", {st_mode=S_IFREG|0644, st_size=0,
> ...})
> > = 0
> > stat("/cgroup/freezer/tasks", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
> > getdents(3, /* 0 entries */, 32768) = 0
> > close(3) = 0
> > write(1, "seeing file /cgroup/freezer/rele"..., 42) = 42
> > write(1, "seeing file /cgroup/freezer/cgro"..., 50) = 50
> > write(1, "seeing file /cgroup/freezer/cgro"..., 49) = 49
> > write(1, "seeing file /cgroup/freezer/noti"..., 46) = 46
> > write(1, "seeing file /cgroup/freezer/cgro"..., 41) = 41
> > write(1, "seeing file /cgroup/freezer/task"..., 34) = 34
> > write(1, "seeing file /cgroup/freezer/\n", 29) = 29
> > write(1, "unmounting freezer at /cgroup/fr"..., 38) = 38
> > umount("/cgroup/freezer", 0) = -1 EBUSY (Device or resource
> busy)
> > brk(0x23a0000) = 0x23a0000
> > write(2, "Error with cgroup_config_unload_"..., 76) = 76
> > exit_group(1) = ?
> >
> >
> > ----
> >
> > --
> > Alexandre LAURENT
> >
> > 2014-12-16 17:40 GMT+01:00 Balbir Singh <bsinghar...@gmail.com>:
> >>
> >> I'm afraid I've lost the logs (sorry, forced email cleanup). I
> >> remember seeing a rollback action because an action failed. Would you
> >> mind resending it?
> >>
> >> Balbir Singh.
> >>
> >> On Tue, Dec 16, 2014 at 9:50 PM, Alexandre LAURENT
> >> <pro.laurent.alexan...@gmail.com> wrote:
> >> > I have continued my investigation about this issue.
> >> > On all machines that I have access, with different kernels : 3.2,
> 3.5.5,
> >> > 3.14, I have always the same issue.
> >> > I am trying to run the tests available in libcgroups 0.41. TEST17 from
> >> > second pass and TEST25 from third pass are always failing. These tests
> >> > are
> >> > related to cgroup_get_cgroup().
> >> >
> >> > Can you reproduce and investigate on this, please ?
> >> >
> >> > Best regards,
> >> >
> >> >
> >> > 2014-12-09 17:21 GMT+01:00 Alexandre LAURENT
> >> > <pro.laurent.alexan...@gmail.com>:
> >> >>
> >> >> Hello,
> >> >>
> >> >> I am attaching the strace from my program.
> >> >> This segment appears when I am calling cgroup_get_cgroup() :
> >> >>
> >> >> access("/cgroup/freezer/grp_1", F_OK) = 0
> >> >> stat("/cgroup/freezer/grp_1//tasks", {st_mode=S_IFREG|0644,
> st_size=0,
> >> >> ...}) = 0
> >> >> gettid() = 18300
> >> >> write(2, "E1209 16:57:17.328337 18300 cgro"..., 108) = 108
> >> >>
> >> >> (gettid() and write() calls are coming from my logger.)
> >> >>
> >> >> Thanks for your help,
> >> >>
> >> >>
> >> >>
> >> >> 2014-12-08 18:52 GMT+01:00 Balbir Singh <bsinghar...@gmail.com>:
> >> >>>
> >> >>> Thanks.. we need the strace logs for the run
> >> >>>
> >> >>> Balbir Singh.
> >> >>>
> >> >>> On Mon, Dec 8, 2014 at 10:34 PM, Alexandre LAURENT
> >> >>> <pro.laurent.alexan...@gmail.com> wrote:
> >> >>> > As far as I know, yes, it is compiled. Memory controller is
> normally
> >> >>> > mounted
> >> >>> > in /cgroup/ and all files are present.
> >> >>> > Here my kernel config :
> >> >>> >
> >> >>> > CONFIG_CGROUPS=y
> >> >>> > # CONFIG_CGROUP_DEBUG is not set
> >> >>> > CONFIG_CGROUP_FREEZER=y
> >> >>> > CONFIG_CGROUP_DEVICE=y
> >> >>> > CONFIG_CGROUP_CPUACCT=y
> >> >>> > CONFIG_CGROUP_MEM_RES_CTLR=y
> >> >>> > CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
> >> >>> > # CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED is not set
> >> >>> > CONFIG_CGROUP_PERF=y
> >> >>> > CONFIG_CGROUP_SCHED=y
> >> >>> > CONFIG_BLK_CGROUP=y
> >> >>> > # CONFIG_DEBUG_BLK_CGROUP is not set
> >> >>> > CONFIG_NET_CLS_CGROUP=y
> >> >>> >
> >> >>> > If I disable memory controller everything will work fine with all
> >> >>> > other
> >> >>> > controllers. But, when enabling again memory controller, I have
> >> >>> > problems
> >> >>> > getting some files like freezer.state or memory.failctn. I guess
> >> >>> > this
> >> >>> > is
> >> >>> > because of the failure of cgroup_get_cgroup().
> >> >>> >
> >> >>> > Am I missing something ?
> >> >>> >
> >> >>> > Best regards,
> >> >>> >
> >> >>> >
> >> >>> > 2014-12-08 11:32 GMT+01:00 Balbir Singh <bsinghar...@gmail.com>:
> >> >>> >>
> >> >>> >> On Mon, Dec 8, 2014 at 3:52 PM, Alexandre LAURENT
> >> >>> >> <pro.laurent.alexan...@gmail.com> wrote:
> >> >>> >> > Hello,
> >> >>> >> >
> >> >>> >> > I am using libcg 0.41 and Linux Kernel 3.2.0.4 (AMD 64) on
> Debian
> >> >>> >> > 7.
> >> >>> >> > When I am using memory controller (and some others) through the
> >> >>> >> > following
> >> >>> >> > config file :
> >> >>> >> > ---
> >> >>> >> > mount {
> >> >>> >> > cpu = /cgroup/cpu;
> >> >>> >> > freezer = /cgroup/freezer;
> >> >>> >> > net_cls = /cgroup/net_cls;
> >> >>> >> > blkio = /cgroup/blkio;
> >> >>> >> > memory = /cgroup/memory;
> >> >>> >> > }
> >> >>> >> > ---
> >> >>> >> >
> >> >>> >> > the cgroup_get_cgroup() function is returning an error "Cgroup
> >> >>> >> > invalid
> >> >>> >> > operation".
> >> >>> >> > The error seems to be emitted from cgroup_add_controller()
> which
> >> >>> >> > will
> >> >>> >> > return on this case :
> >> >>> >> > /*
> >> >>> >> > * Still not sure how to handle the failure here.
> >> >>> >> > */
> >> >>> >> > for (i = 0; i < cgroup->index; i++) {
> >> >>> >> > if (strncmp(name, cgroup->controller[i]->name,
> >> >>> >> > sizeof(cgroup->controller[i]->name)) == 0)
> >> >>> >> > {
> >> >>> >> > return NULL;
> >> >>> >> > }
> >> >>> >> > }
> >> >>> >> >
> >> >>> >> >
> >> >>> >> > When commenting the memory controller line, the error
> disappear.
> >> >>> >> > I have also tried to output all debug messages available in
> >> >>> >> > libcg,
> >> >>> >> > but
> >> >>> >> > none
> >> >>> >> > of these seems related to this issue.
> >> >>> >> >
> >> >>> >> > What can cause this issue ?
> >> >>> >>
> >> >>> >> Is memory cgroup compiled?
> >> >>> >>
> >> >>> >> Balbir Singh.
> >> >>> >
> >> >>> >
> >> >>
> >> >>
> >> >
>
------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
_______________________________________________
Libcg-devel mailing list
Libcg-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libcg-devel