From 3cab786d03e367f0d8396475323af52a70a729fc Mon Sep 17 00:00:00 2001 From: Patrick Bellasi Date: Fri, 26 Aug 2016 16:27:23 +0100 Subject: [PATCH] cgroups: use shutils for move_tasks Signed-off-by: Patrick Bellasi --- devlib/module/cgroups.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/devlib/module/cgroups.py b/devlib/module/cgroups.py index 586045b..f6871d0 100644 --- a/devlib/module/cgroups.py +++ b/devlib/module/cgroups.py @@ -117,19 +117,16 @@ class Controller(object): cgroups.append(cg) return cgroups - def move_tasks(self, source, dest): + def move_tasks(self, source, dest, exclude=[]): try: srcg = self._cgroups[source] dstg = self._cgroups[dest] - command = 'for task in $(cat {}); do echo $task>{}; done' - self.target.execute(command.format(srcg.tasks_file, dstg.tasks_file), - # this will always fail as some of the tasks - # are kthreads that cannot be migrated, but we - # don't care about those, so don't check exit - # code. - check_exit_code=False, as_root=True) except KeyError as e: raise ValueError('Unkown group: {}'.format(e)) + output = self.target._execute_util( + 'cgroups_tasks_move {} {} \'{}\''.format( + srcg.directory, dstg.directory, exclude), + as_root=True) def move_all_tasks_to(self, dest): for cgroup in self._cgroups: