mirror of
https://github.com/ARM-software/devlib.git
synced 2025-02-12 07:58:07 +00:00
commit
6eabf7fc56
@ -9,6 +9,7 @@ GREP=${GREP:-$BUSYBOX grep}
|
|||||||
SED=${SED:-$BUSYBOX sed}
|
SED=${SED:-$BUSYBOX sed}
|
||||||
CAT=${CAT:-$BUSYBOX cat}
|
CAT=${CAT:-$BUSYBOX cat}
|
||||||
AWK=${AWK:-$BUSYBOX awk}
|
AWK=${AWK:-$BUSYBOX awk}
|
||||||
|
PS=${PS:-$BUSYBOX ps}
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# CPUFrequency Utility Functions
|
# CPUFrequency Utility Functions
|
||||||
@ -156,11 +157,11 @@ cgroups_tasks_move() {
|
|||||||
|
|
||||||
[ "x$FILTERS" = "x" ] && exit 0
|
[ "x$FILTERS" = "x" ] && exit 0
|
||||||
|
|
||||||
PIDS=`ps | $GREP $FILTERS | $AWK '{print $2}'`
|
PIDS=`$PS -o comm,pid | $GREP $FILTERS | $AWK '{print $2}'`
|
||||||
PIDS=`echo $PIDS`
|
PIDS=`echo $PIDS`
|
||||||
echo "PIDs to save: [$PIDS]"
|
echo "PIDs to save: [$PIDS]"
|
||||||
for TID in $PIDS; do
|
for TID in $PIDS; do
|
||||||
COMM =`$CAT /proc/$TID/comm`
|
COMM=`$CAT /proc/$TID/comm`
|
||||||
echo "$TID : $COMM"
|
echo "$TID : $COMM"
|
||||||
echo $TID > $SRC_GRP/cgroup.procs
|
echo $TID > $SRC_GRP/cgroup.procs
|
||||||
done
|
done
|
||||||
|
@ -155,7 +155,7 @@ class Controller(object):
|
|||||||
# Build list of tasks to exclude
|
# Build list of tasks to exclude
|
||||||
grep_filters = ''
|
grep_filters = ''
|
||||||
for comm in exclude:
|
for comm in exclude:
|
||||||
grep_filters += '-e "{}" '.format(comm)
|
grep_filters += '-e {} '.format(comm)
|
||||||
logging.debug(' using grep filter: %s', grep_filters)
|
logging.debug(' using grep filter: %s', grep_filters)
|
||||||
if grep_filters != '':
|
if grep_filters != '':
|
||||||
logging.debug(' excluding tasks which name matches:')
|
logging.debug(' excluding tasks which name matches:')
|
||||||
@ -300,7 +300,6 @@ class CgroupsModule(Module):
|
|||||||
|
|
||||||
name = 'cgroups'
|
name = 'cgroups'
|
||||||
stage = 'setup'
|
stage = 'setup'
|
||||||
cgroup_root = '/sys/fs/cgroup'
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def probe(target):
|
def probe(target):
|
||||||
@ -315,22 +314,6 @@ class CgroupsModule(Module):
|
|||||||
|
|
||||||
self.logger = logging.getLogger('CGroups')
|
self.logger = logging.getLogger('CGroups')
|
||||||
|
|
||||||
# Initialize controllers mount point
|
|
||||||
mounted = self.target.list_file_systems()
|
|
||||||
if self.cgroup_root not in [e.mount_point for e in mounted]:
|
|
||||||
self.target.execute('mount -t tmpfs {} {}'\
|
|
||||||
.format('cgroup_root',
|
|
||||||
self.cgroup_root),
|
|
||||||
as_root=True)
|
|
||||||
else:
|
|
||||||
self.logger.debug('cgroup_root already mounted at %s',
|
|
||||||
self.cgroup_root)
|
|
||||||
|
|
||||||
# Ensure CGroups is mounted RW
|
|
||||||
self.target.execute('mount -o remount,rw {}'\
|
|
||||||
.format(self.cgroup_root),
|
|
||||||
as_root=True)
|
|
||||||
|
|
||||||
# Load list of available controllers
|
# Load list of available controllers
|
||||||
controllers = []
|
controllers = []
|
||||||
subsys = self.list_subsystems()
|
subsys = self.list_subsystems()
|
||||||
@ -346,7 +329,9 @@ class CgroupsModule(Module):
|
|||||||
if not controller.probe(self.target):
|
if not controller.probe(self.target):
|
||||||
continue
|
continue
|
||||||
try:
|
try:
|
||||||
controller.mount(self.target, self.cgroup_root)
|
cgroup_root = target.path.join(target.working_directory,
|
||||||
|
'cgroups')
|
||||||
|
controller.mount(self.target, cgroup_root)
|
||||||
except TargetError:
|
except TargetError:
|
||||||
message = 'cgroups {} controller is not supported by the target'
|
message = 'cgroups {} controller is not supported by the target'
|
||||||
raise TargetError(message.format(controller.kind))
|
raise TargetError(message.format(controller.kind))
|
||||||
@ -448,6 +433,8 @@ class CgroupsModule(Module):
|
|||||||
|
|
||||||
# Create Freezer CGroup
|
# Create Freezer CGroup
|
||||||
freezer = self.controller('freezer')
|
freezer = self.controller('freezer')
|
||||||
|
if freezer is None:
|
||||||
|
raise RuntimeError('freezer cgroup controller not present')
|
||||||
freezer_cg = freezer.cgroup('/DEVLIB_FREEZER')
|
freezer_cg = freezer.cgroup('/DEVLIB_FREEZER')
|
||||||
thawed_cg = freezer.cgroup('/')
|
thawed_cg = freezer.cgroup('/')
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user