accel: default to an actually available accelerator
PATCH v2 1/1 accel: default to an actually available accelerator
configure_accelerator() falls back to tcg if no accelerator has been specified. Formerly, we could be sure that tcg is always available; however, with --disable-tcg, this is not longer true, and you are not able to start qemu without explicitly specifying another accelerator on those builds.
Instead, choose an accelerator in the order tcg->kvm->hax.
---RFC->v2:
- drop xen from the list of fallbacks
- use comma-delimited list of accelerators (much easier)
- changed one place in qemu-options.hx that had been missed
--- accel/accel.c | 3 +-- qemu-options.hx | 8 +++++--- 2 files changed, 6 insertions(+), 5 deletions(-)
accel/accel.c +1 -2
@@ -79,8 +79,7 @@ void configure_accelerator(MachineState *ms) accel =qemu_opt_get (qemu_get_machine_opts (),"accel" );if (accel ==NULL ) { -/* Use the default "accelerator", tcg */ - accel ="tcg" ; + accel ="tcg:kvm:hax" ; } p = accel;
qemu-options.hx +5 -3
@@ -31,7 +31,7 @@ DEF("machine", HAS_ARG, QEMU_OPTION_machine, \ "-machine [type=]name[,prop[=value][,...]]\n" " selects emulated machine ('-machine help' for list)\n" " property accel=accel1[:accel2[:...]] selects accelerator\n" - " supported accelerators are kvm, xen, hax or tcg (default: tcg)\n" + " supported accelerators are kvm, xen, hax or tcg (default: tcg:kvm:hax)\n" " kernel_irqchip=on|off|split controls accelerated irqchip support (default=off)\n" " vmport=on|off|auto controls emulation of vmport (default: auto)\n" " kvm_shadow_mem=size of KVM shadow MMU in bytes\n"
@@ -66,7 +66,8 @@ Supported machine properties are: @table @option @item accel=@var{accels1}[:@var{accels2}[:...]] This is used to enable an accelerator. Depending on the target architecture, -kvm, xen, hax or tcg can be available. By default, tcg is used. If there is +kvm, xen, hax or tcg can be available. By default, the first one available +out of tcg, kvm, hax (in that order) is used. If there is more than one accelerator specified, the next one is used if the previous one fails to initialize. @item kernel_irqchip=on|off
@@ -126,7 +127,8 @@ STEXI @item -accel @var{name}[,prop=@var{value}[,...]] @findex -accel This is used to enable an accelerator. Depending on the target architecture, -kvm, xen, hax or tcg can be available. By default, tcg is used. If there is +kvm, xen, hax or tcg can be available. By default, the first one available +out of tcg, kvm, hax (in that order) is used. If there is more than one accelerator specified, the next one is used if the previous one fails to initialize. @table @option
Signature · 1 line
2.13.5
Quoted 57 lines · Cornelia Huck
configure_accelerator()falls back to tcg if no accelerator has been specified. Formerly, we could be sure that tcg is always available; however, with --disable-tcg, this is not longer true, and you are not able to start qemu without explicitly specifying another accelerator on those builds.Instead, choose an accelerator in the order
tcg->kvm->hax.Signed-off-by Cornelia Huck <[email protected]>---
RFC->v2:
- drop xen from the list of fallbacks
- use comma-delimited list of accelerators (much easier)
- changed one place in qemu-options.hx that had been missed--- accel/accel.c | 3 +-- qemu-options.hx | 8 +++++--- 2 files changed, 6 insertions(+), 5 deletions(-)accel/accel.c +1
-2@@ -79,8 +79,7 @@ void configure_accelerator(MachineState *ms) accel =qemu_opt_get (qemu_get_machine_opts (),"accel" );if (accel ==NULL ) { -/* Use the default "accelerator", tcg */ - accel ="tcg" ; + accel ="tcg:kvm:hax" ; } p = accel;qemu-options.hx +3
-2@@ -31,7 +31,7 @@ DEF("machine", HAS_ARG, QEMU_OPTION_machine, \ "-machine [type=]name[,prop[=value][,...]]\n" " selects emulated machine ('-machine help' for list)\n" " property accel=accel1[:accel2[:...]] selects accelerator\n" - " supported accelerators are kvm, xen, hax or tcg (default: tcg)\n" + " supported accelerators are kvm, xen, hax or tcg (default: tcg:kvm:hax)\n" " kernel_irqchip=on|off|split controls accelerated irqchip support (default=off)\n" " vmport=on|off|auto controls emulation of vmport (default: auto)\n" " kvm_shadow_mem=size of KVM shadow MMU in bytes\n"@@ -66,7 +66,8 @@ Supported machine properties are: @table @option @item accel=@var{accels1}[:@var{accels2}[:...]] This is used to enable an accelerator. Depending on the target architecture, -kvm, xen, hax or tcg can be available. By default, tcg is used. If there is +kvm, xen, hax or tcg can be available. By default, the first one available +out of tcg, kvm, hax (in that order) is used. If there is more than one accelerator specified, the next one is used if the previous one fails to initialize. @item kernel_irqchip=on|off
qemu-options.hx STEXI · line 134
Quoted 9 lines
qemu-options.hx +2
-1@@ -126,7 +127,8 @@ STEXI @item -accel @var{name}[,prop=@var{value}[,...]] @findex -accel This is used to enable an accelerator. Depending on the target architecture, -kvm, xen, hax or tcg can be available. By default, tcg is used. If there is +kvm, xen, hax or tcg can be available. By default, the first one available +out of tcg, kvm, hax (in that order) is used. If there is more than one accelerator specified, the next one is used if the previous one fails to initialize. @table @option
Richard Henderson
AppliedQuoted 6 lines · Cornelia Huck
configure_accelerator()falls back to tcg if no accelerator has been specified. Formerly, we could be sure that tcg is always available; however, with --disable-tcg, this is not longer true, and you are not able to start qemu without explicitly specifying another accelerator on those builds.
Quoted 8 lines
Instead, choose an accelerator in the order
tcg->kvm->hax.Signed-off-by Cornelia Huck <[email protected]>---
RFC->v2:
- drop xen from the list of fallbacks
- use comma-delimited list of accelerators (much easier)
- changed one place in qemu-options.hx that had been missed
Queued to tcg-next. Thanks,
r~
Quoted 9 lines · On Wed, 13 Sep 2017 11:09:04 -0700 Richard Henderson…
Quoted 8 lines · Cornelia Huck
configure_accelerator()falls back to tcg if no accelerator has been specified. Formerly, we could be sure that tcg is always available; however, with --disable-tcg, this is not longer true, and you are not able to start qemu without explicitly specifying another accelerator on those builds.Instead, choose an accelerator in the order
tcg->kvm->hax.
Quoted 8 lines
Quoted 6 lines
Signed-off-by Cornelia Huck <[email protected]>---
RFC->v2:
- drop xen from the list of fallbacks
- use comma-delimited list of accelerators (much easier)
- changed one place in qemu-options.hx that had been missedQueued to tcg-next. Thanks,
Hm, has this fallen through the cracks?