On Fri, Oct 25, 2024 at 05:03:54PM -0400, Tamir Duberstein wrote:
@@ -124,6 +125,29 @@ class LinuxSourceTreeOperationsQemu(LinuxSourceTreeOperations): '-no-reboot', '-nographic', '-serial', self._serial] + self._extra_qemu_params
accelerators = {line.strip()for line in subprocess.check_output([qemu_binary, "-accel", "help"], text=True).splitlines()if line and line.islower()}if 'kvm' in accelerators:try:with open('/dev/kvm', 'rb+'):qemu_command.extend(['-accel', 'kvm'])except OSError as e:print(e)elif 'hvf' in accelerators:try:for line in subprocess.check_output(['sysctl', 'kern.hv_support'], text=True).splitlines():if not line:continuekey, value = line.split(':')if key == 'kern.hv_support' and bool(value):qemu_command.extend(['-accel', 'hvf'])breakexcept subprocess.CalledProcessError as e:print(e)
QEMU supports falling back if one accelerator is not available, if you specify multiple like -accel kvm:tcg. Couldn't you rely on that rather than re-implementing the availability checks here?