diff --git a/devlib/bin/scripts/shutils.in b/devlib/bin/scripts/shutils.in index 9200b70..bc47719 100755 --- a/devlib/bin/scripts/shutils.in +++ b/devlib/bin/scripts/shutils.in @@ -55,6 +55,20 @@ ftrace_get_function_stats() { done } + +################################################################################ +# CGroups Utility Functions +################################################################################ + +cgroups_get_attributes() { + [[ $# -eq 2 ]] || exit -1 + CGROUP="$1" + CONTROLLER="$2" + $GREP '' $CGROUP/* | \ + $GREP "$CONTROLLER\." | \ + $SED -e "s|$CONTROLLER\.||" -e "s|$CGROUP/||" +} + ################################################################################ # Main Function Dispatcher ################################################################################ @@ -75,6 +89,9 @@ cpufreq_get_all_governors) cpufreq_trace_all_frequencies) cpufreq_trace_all_frequencies $* ;; +cgroups_get_attributes) + cgroups_get_attributes $* + ;; ftrace_get_function_stats) ftrace_get_function_stats ;; diff --git a/devlib/module/cgroups.py b/devlib/module/cgroups.py index c55e135..aa9ff33 100644 --- a/devlib/module/cgroups.py +++ b/devlib/module/cgroups.py @@ -166,14 +166,10 @@ class CGroup(object): self.controller.kind) logging.debug(' %s', self.directory) - output = self.target.execute('{} grep \'\' {}/{}.*'.format( - self.target.busybox, - self.directory, - self.controller.kind)) - for res in output.split('\n'): - if res.find(self.controller.kind) < 0: - continue - res = res.split('.')[1] + output = self.target._execute_util( + 'cgroups_get_attributes {} {}'.format( + self.directory, self.controller.kind)) + for res in output.splitlines(): attr = res.split(':')[0] value = res.split(':')[1] conf[attr] = value