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:
> + continue
> + key, value = line.split(':')
> + if key == 'kern.hv_support' and
> bool(value):
> + qemu_command.extend(['-accel',
> 'hvf'])
> + break
> + except 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?
signature.asc
Description: PGP signature

