From 556bc84023621489b5133ff52058c9ebbff8b00c Mon Sep 17 00:00:00 2001
From: Sergei Trofimov <sergei.trofimov@arm.com>
Date: Thu, 30 Apr 2015 11:19:38 +0100
Subject: [PATCH] energy_model: fix for when running as a sudo user (rather
 than root)

---
 wlauto/modules/cgroups.py | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/wlauto/modules/cgroups.py b/wlauto/modules/cgroups.py
index 46f836b8..5cfa64c8 100644
--- a/wlauto/modules/cgroups.py
+++ b/wlauto/modules/cgroups.py
@@ -42,10 +42,12 @@ class CgroupController(object):
         if self.mount_point in [e.mount_point for e in mounted]:
             self.logger.debug('controller is already mounted.')
         else:
-            self.device.execute('mkdir -p {} 2>/dev/null'.format(self.mount_point))
+            self.device.execute('mkdir -p {} 2>/dev/null'.format(self.mount_point),
+                                as_root=True)
             self.device.execute('mount -t cgroup -o {} {} {}'.format(self.kind,
                                                                      self.mount_name,
-                                                                     self.mount_point))
+                                                                     self.mount_point),
+                                as_root=True)
 
 
 class CpusetGroup(object):
@@ -58,7 +60,7 @@ class CpusetGroup(object):
             self.directory = controller.mount_point
         else:
             self.directory = self.device.path.join(controller.mount_point, name)
-            self.device.execute('mkdir -p {}'.format(self.directory))
+            self.device.execute('mkdir -p {}'.format(self.directory), as_root=True)
         self.cpus_file = self.device.path.join(self.directory, 'cpuset.cpus')
         self.mems_file = self.device.path.join(self.directory, 'cpuset.mems')
         self.tasks_file = self.device.path.join(self.directory, 'tasks')
@@ -165,7 +167,8 @@ class Cgroups(Module):
     def _on_device_init(self, context):  # pylint: disable=unused-argument
         mounted = self.device.list_file_systems()
         if self.cgroup_root not in [e.mount_point for e in mounted]:
-            self.device.execute('mount -t tmpfs {} {}'.format('cgroup_root', self.cgroup_root))
+            self.device.execute('mount -t tmpfs {} {}'.format('cgroup_root', self.cgroup_root),
+                                as_root=True)
         else:
             self.logger.debug('cgroup_root already mounted at {}'.format(self.cgroup_root))
         for controller in self.controllers: