X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Fpython%2FQemuUtils.py;h=cfdbc7ffa462bf6c7e0ea5f0f35713db675775ad;hp=76f86063e2462bea05f52abc8b7f5f9b23f3e0c6;hb=b0eaa32dce87ccb8749b227066b26ae9bc66cace;hpb=7a0a0ec3986ad03444cd4864ae8d35019007be60;ds=sidebyside diff --git a/resources/libraries/python/QemuUtils.py b/resources/libraries/python/QemuUtils.py index 76f86063e2..cfdbc7ffa4 100644 --- a/resources/libraries/python/QemuUtils.py +++ b/resources/libraries/python/QemuUtils.py @@ -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.