summaryrefslogtreecommitdiffstats
path: root/meta/lib/oeqa/utils/qemurunner.py
diff options
context:
space:
mode:
authorThomas Roos <throos@amazon.de>2023-05-17 16:36:13 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2023-06-29 10:57:27 +0100
commitf82c3bd37d62a3efc49fd33efa38a7f523e6c676 (patch)
treeaf91e742b938e4116a5082bfb9351dba83616cca /meta/lib/oeqa/utils/qemurunner.py
parent303421dce02fec67daab0dc86d85e11963d5741f (diff)
downloadpoky-f82c3bd37d62a3efc49fd33efa38a7f523e6c676.tar.gz
testimage/oeqa: Drop testimage_dump_host functionality
The intent behind these functions was to dump the system state when issues occured but it has never really worked as we'd planned. Regular monitoring as the build runs has largely replaced this as that allows a trend to be seen rather than a spot value which was never really useful. The code is bitrotting and not functioning correctly so drop it. [YOCTO #13872] RP: Reword commit message (From OE-Core rev: dea37ba49a236029da73d5cfbfc069bffc38b508) Signed-off-by: Thomas Roos <throos@amazon.de> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib/oeqa/utils/qemurunner.py')
-rw-r--r--meta/lib/oeqa/utils/qemurunner.py18
1 files changed, 2 insertions, 16 deletions
diff --git a/meta/lib/oeqa/utils/qemurunner.py b/meta/lib/oeqa/utils/qemurunner.py
index 0ef8cf0a79..22cf258ddd 100644
--- a/meta/lib/oeqa/utils/qemurunner.py
+++ b/meta/lib/oeqa/utils/qemurunner.py
@@ -21,7 +21,6 @@ import threading
21import codecs 21import codecs
22import logging 22import logging
23import tempfile 23import tempfile
24from oeqa.utils.dump import HostDumper
25from collections import defaultdict 24from collections import defaultdict
26import importlib 25import importlib
27 26
@@ -33,8 +32,8 @@ re_control_char = re.compile('[%s]' % re.escape("".join(control_chars)))
33 32
34class QemuRunner: 33class QemuRunner:
35 34
36 def __init__(self, machine, rootfs, display, tmpdir, deploy_dir_image, logfile, boottime, dump_dir, dump_host_cmds, 35 def __init__(self, machine, rootfs, display, tmpdir, deploy_dir_image, logfile, boottime, dump_dir, use_kvm, logger, use_slirp=False,
37 use_kvm, logger, use_slirp=False, serial_ports=2, boot_patterns = defaultdict(str), use_ovmf=False, workdir=None, tmpfsdir=None): 36 serial_ports=2, boot_patterns = defaultdict(str), use_ovmf=False, workdir=None, tmpfsdir=None):
38 37
39 # Popen object for runqemu 38 # Popen object for runqemu
40 self.runqemu = None 39 self.runqemu = None
@@ -69,7 +68,6 @@ class QemuRunner:
69 if not workdir: 68 if not workdir:
70 workdir = os.getcwd() 69 workdir = os.getcwd()
71 self.qemu_pidfile = workdir + '/pidfile_' + str(os.getpid()) 70 self.qemu_pidfile = workdir + '/pidfile_' + str(os.getpid())
72 self.host_dumper = HostDumper(dump_host_cmds, dump_dir)
73 self.monitorpipe = None 71 self.monitorpipe = None
74 72
75 self.logger = logger 73 self.logger = logger
@@ -138,7 +136,6 @@ class QemuRunner:
138 self.logger.error('runqemu exited with code %d' % self.runqemu.returncode) 136 self.logger.error('runqemu exited with code %d' % self.runqemu.returncode)
139 self.logger.error('Output from runqemu:\n%s' % self.getOutput(self.runqemu.stdout)) 137 self.logger.error('Output from runqemu:\n%s' % self.getOutput(self.runqemu.stdout))
140 self.stop() 138 self.stop()
141 self._dump_host()
142 139
143 def start(self, qemuparams = None, get_ip = True, extra_bootparams = None, runqemuparams='', launch_cmd=None, discard_writes=True): 140 def start(self, qemuparams = None, get_ip = True, extra_bootparams = None, runqemuparams='', launch_cmd=None, discard_writes=True):
144 env = os.environ.copy() 141 env = os.environ.copy()
@@ -286,7 +283,6 @@ class QemuRunner:
286 if self.runqemu.returncode: 283 if self.runqemu.returncode:
287 # No point waiting any longer 284 # No point waiting any longer
288 self.logger.warning('runqemu exited with code %d' % self.runqemu.returncode) 285 self.logger.warning('runqemu exited with code %d' % self.runqemu.returncode)
289 self._dump_host()
290 self.logger.warning("Output from runqemu:\n%s" % self.getOutput(output)) 286 self.logger.warning("Output from runqemu:\n%s" % self.getOutput(output))
291 self.stop() 287 self.stop()
292 return False 288 return False
@@ -314,7 +310,6 @@ class QemuRunner:
314 ps = subprocess.Popen(['ps', 'axww', '-o', 'pid,ppid,pri,ni,command '], stdout=subprocess.PIPE).communicate()[0] 310 ps = subprocess.Popen(['ps', 'axww', '-o', 'pid,ppid,pri,ni,command '], stdout=subprocess.PIPE).communicate()[0]
315 processes = ps.decode("utf-8") 311 processes = ps.decode("utf-8")
316 self.logger.debug("Running processes:\n%s" % processes) 312 self.logger.debug("Running processes:\n%s" % processes)
317 self._dump_host()
318 op = self.getOutput(output) 313 op = self.getOutput(output)
319 self.stop() 314 self.stop()
320 if op: 315 if op:
@@ -430,7 +425,6 @@ class QemuRunner:
430 self.logger.error("Couldn't get ip from qemu command line and runqemu output! " 425 self.logger.error("Couldn't get ip from qemu command line and runqemu output! "
431 "Here is the qemu command line used:\n%s\n" 426 "Here is the qemu command line used:\n%s\n"
432 "and output from runqemu:\n%s" % (cmdline, out)) 427 "and output from runqemu:\n%s" % (cmdline, out))
433 self._dump_host()
434 self.stop() 428 self.stop()
435 return False 429 return False
436 430
@@ -517,7 +511,6 @@ class QemuRunner:
517 lines = tail(bootlog if bootlog else self.msg) 511 lines = tail(bootlog if bootlog else self.msg)
518 self.logger.warning("Last 25 lines of text (%d):\n%s" % (len(bootlog), lines)) 512 self.logger.warning("Last 25 lines of text (%d):\n%s" % (len(bootlog), lines))
519 self.logger.warning("Check full boot log: %s" % self.logfile) 513 self.logger.warning("Check full boot log: %s" % self.logfile)
520 self._dump_host()
521 self.stop() 514 self.stop()
522 return False 515 return False
523 516
@@ -698,13 +691,6 @@ class QemuRunner:
698 status = 1 691 status = 1
699 return (status, str(data)) 692 return (status, str(data))
700 693
701
702 def _dump_host(self):
703 self.host_dumper.create_dir("qemu")
704 self.logger.warning("Qemu ended unexpectedly, dump data from host"
705 " is in %s" % self.host_dumper.dump_dir)
706 self.host_dumper.dump_host()
707
708# This class is for reading data from a socket and passing it to logfunc 694# This class is for reading data from a socket and passing it to logfunc
709# to be processed. It's completely event driven and has a straightforward 695# to be processed. It's completely event driven and has a straightforward
710# event loop. The mechanism for stopping the thread is a simple pipe which 696# event loop. The mechanism for stopping the thread is a simple pipe which