mirror of
https://git.yoctoproject.org/poky
synced 2026-05-09 05:29:32 +00:00
testimage: allow using kvm when running qemux86* machines
Using kvm can provide significant speedups when running qemux86* machines on an x86* host. Enabled by using the new QEMU_USE_KVM variable. [YOCTO #9298] (From OE-Core rev: ebac2c8d1fcd09ebce0659a4abb445e4f1c18571) Signed-off-by: Bill Randle <william.c.randle@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
ff3a455ee8
commit
f479e3866d
@@ -125,6 +125,12 @@ class QemuTarget(BaseTarget):
|
||||
dump_target_cmds = d.getVar("testimage_dump_target", True)
|
||||
dump_host_cmds = d.getVar("testimage_dump_host", True)
|
||||
dump_dir = d.getVar("TESTIMAGE_DUMP_DIR", True)
|
||||
if d.getVar("QEMU_USE_KVM", False) is not None \
|
||||
and d.getVar("QEMU_USE_KVM", False) == "True" \
|
||||
and "x86" in d.getVar("MACHINE", True):
|
||||
use_kvm = True
|
||||
else:
|
||||
use_kvm = False
|
||||
|
||||
# Log QemuRunner log output to a file
|
||||
import oe.path
|
||||
@@ -153,6 +159,7 @@ class QemuTarget(BaseTarget):
|
||||
display = d.getVar("BB_ORIGENV", False).getVar("DISPLAY", True),
|
||||
logfile = self.qemulog,
|
||||
boottime = int(d.getVar("TEST_QEMUBOOT_TIMEOUT", True)),
|
||||
use_kvm = use_kvm,
|
||||
dump_dir = dump_dir,
|
||||
dump_host_cmds = d.getVar("testimage_dump_host", True))
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ re_control_char = re.compile('[%s]' % re.escape("".join(control_chars)))
|
||||
|
||||
class QemuRunner:
|
||||
|
||||
def __init__(self, machine, rootfs, display, tmpdir, deploy_dir_image, logfile, boottime, dump_dir, dump_host_cmds):
|
||||
def __init__(self, machine, rootfs, display, tmpdir, deploy_dir_image, logfile, boottime, dump_dir, dump_host_cmds, use_kvm):
|
||||
|
||||
# Popen object for runqemu
|
||||
self.runqemu = None
|
||||
@@ -49,6 +49,7 @@ class QemuRunner:
|
||||
self.boottime = boottime
|
||||
self.logged = False
|
||||
self.thread = None
|
||||
self.use_kvm = use_kvm
|
||||
|
||||
self.runqemutime = 60
|
||||
self.host_dumper = HostDumper(dump_host_cmds, dump_dir)
|
||||
@@ -133,7 +134,13 @@ class QemuRunner:
|
||||
self.origchldhandler = signal.getsignal(signal.SIGCHLD)
|
||||
signal.signal(signal.SIGCHLD, self.handleSIGCHLD)
|
||||
|
||||
launch_cmd = 'runqemu tcpserial=%s %s %s %s' % (self.serverport, self.machine, self.rootfs, self.qemuparams)
|
||||
launch_cmd = 'runqemu '
|
||||
if self.use_kvm:
|
||||
logger.info('Using kvm for runqemu')
|
||||
launch_cmd += 'kvm '
|
||||
else:
|
||||
logger.info('Not using kvm for runqemu')
|
||||
launch_cmd += 'tcpserial=%s %s %s %s' % (self.serverport, self.machine, self.rootfs, self.qemuparams)
|
||||
# FIXME: We pass in stdin=subprocess.PIPE here to work around stty
|
||||
# blocking at the end of the runqemu script when using this within
|
||||
# oe-selftest (this makes stty error out immediately). There ought
|
||||
|
||||
Reference in New Issue
Block a user