X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=resources%2Flibraries%2Fpython%2FQemuUtils.py;h=cfdbc7ffa462bf6c7e0ea5f0f35713db675775ad;hb=fa74b0cda008687827c255c1f2a51c5c44300870;hp=aa149da1854fb1b8d12df380b4fff5042860a85e;hpb=a912d105f3a1d8fed0b4cf6b18e0ef7789be81bf;p=csit.git diff --git a/resources/libraries/python/QemuUtils.py b/resources/libraries/python/QemuUtils.py index aa149da185..cfdbc7ffa4 100644 --- a/resources/libraries/python/QemuUtils.py +++ b/resources/libraries/python/QemuUtils.py @@ -27,7 +27,7 @@ from resources.libraries.python.topology import NodeType class QemuUtils(object): """QEMU utilities.""" - __QEMU_BIN = '/opt/qemu/bin/qemu-system-x86_64' + __QEMU_BIN = '/usr/bin/qemu-system-x86_64' # QEMU Machine Protocol socket __QMP_SOCK = '/tmp/qmp.sock' # QEMU Guest Agent socket @@ -149,6 +149,22 @@ class QemuUtils(object): raise RuntimeError('Set affinity failed on {0}'.format( self._node['host'])) + def qemu_set_scheduler_policy(self): + """Set scheduler policy to SCHED_RR with priority 1 for all Qemu CPU + processes. + + :raises RuntimeError: Set scheduler policy failed. + """ + qemu_cpus = self._qemu_qmp_exec('query-cpus')['return'] + + for qemu_cpu in qemu_cpus: + cmd = 'chrt -r -p 1 {0}'.format(qemu_cpu['thread_id']) + (ret_code, _, stderr) = self._ssh.exec_command_sudo(cmd) + if int(ret_code) != 0: + logger.debug('Set SCHED_RR failed {0}'.format(stderr)) + raise RuntimeError('Set SCHED_RR failed on {0}'.format( + self._node['host'])) + def qemu_set_node(self, node): """Set node to run QEMU on.