3 # Exercise cgroup metrics in the Linux PMDA
5 # Copyright (c) 2010 Aconex. All Rights Reserved.
9 echo "QA output created by $seq"
11 # get standard environment, filters and checks
16 [ $PCP_PLATFORM = linux
] || _notrun
"tests pmdalinux functionality on Linux only"
21 $sudo umount
$grp 2>/dev
/null
22 rmdir $grp 2>/dev
/null
28 | LC_COLLATE
=POSIX
sort
33 status
=1 # failure is the default!
34 trap "_cleanup; exit \$status" 0 1 2 3 15
36 [ -f /proc
/cgroups
] || _notrun
"No support for cgroups in the running kernel"
37 grep -q cgroup
/proc
/mounts
&& _notrun
"One or more cgroups already in use"
38 grep -q cpuacct
/proc
/cgroups || _notrun
"No cpuacct cgroup support"
39 grep -q cpuset
/proc
/cgroups || _notrun
"No cpuset cgroup support"
40 grep -q cpu
/proc
/cgroups || _notrun
"No cpusched cgroup support"
42 rmdir $grp 2>/dev
/null
43 mkdir
$grp || _fail
"Cannot create cgroup mount point"
45 # since the proc PMDA was split from the Linux PMDA, the proc PMDA may
46 # not be installed (caught by the notrun cases above) or installed as
47 # a daemon, in which case the standard processing of pmcd.conf for
48 # a local PMAPI context connection will not find it, so may have to
49 # be specific about the proc PMDA DSO location
51 pmda
="-Kclear -Kadd,3,$PCP_PMDAS_DIR/proc/pmda_proc.so,proc_init"
53 # real test starts here
54 echo "initial fetch, starting with a clean slate"
55 pmprobe
-L $pmda -v $prefix.mounts | _filter
57 echo "cpu metrics fetch, no user groups defined, single controller"
58 $sudo mount
-t cgroup
-o cpu none
$grp || _fail
"cpuset mount"
59 pmprobe
-v -L $pmda $prefix.mounts | _filter
60 pmprobe
-I -L $pmda $prefix.cpusched | _filter
61 $sudo umount
$grp || _fail
"cpu umount"
63 echo "cpuacct and cpuset fetch, no user groups defined, dual controllers"
64 $sudo mount
-t cgroup
-o cpuacct
,cpuset none
$grp || _fail
"cpu,cpuacct mount"
65 pmprobe
-v -L $pmda $prefix.mounts | _filter
66 pmprobe
-I -L $pmda $prefix.cpuacct
$prefix.cpuset | _filter
67 $sudo umount
$grp || _fail
"cpu,cpuacct cgroup umount"
69 echo "cpuacct and cpuset fetch, one user group defined, dual controllers"
70 $sudo mount
-t cgroup
-o cpuacct
,cpuset none
$grp || _fail
"cpu,cpuacct mount"
71 $sudo mkdir
$grp/pcpqa
72 pmprobe
-v -L $pmda $prefix.mounts | _filter
73 pmprobe
-L $pmda $prefix.mounts
$prefix.cpuacct
$prefix.cpuset | _filter
74 $sudo rmdir $grp/pcpqa
75 echo "cpuacct and cpuset fetch, one user group removed, dual controllers"
76 pmprobe
-I -L $pmda $prefix.mounts
$prefix.cpuacct
$prefix.cpuset | _filter
77 $sudo umount
$grp || _fail
"cpu,cpuacct cgroup umount"