On Fri, 5 Oct 2018 16:13:12 +0200 Thomas Huth <th...@redhat.com> wrote:
> When compiling with "--disable-tcg", we currently still use "tcg" > as default accelerator. "kvm" should be used in this case instead. > Also, some downstream distros provide QEMU binaries which have "kvm" > in their names (e.g. "qemu-kvm" on RHEL or "kvm" on Ubuntu) that use > KVM by default - and some users might want to do something similar > with upstream binaries, too. Accomodate them by using "kvm:tcg" as > default when we detect such a binary name. Heh, we haven't had that discussion for some time ;) > > Signed-off-by: Thomas Huth <th...@redhat.com> > --- > accel/accel.c | 18 +++++++++++++++--- > include/sysemu/accel.h | 2 +- > vl.c | 2 +- > 3 files changed, 17 insertions(+), 5 deletions(-) > > diff --git a/accel/accel.c b/accel/accel.c > index 966b2d8..9be195c 100644 > --- a/accel/accel.c > +++ b/accel/accel.c > @@ -68,7 +68,7 @@ static int accel_init_machine(AccelClass *acc, MachineState > *ms) > return ret; > } > > -void configure_accelerator(MachineState *ms) > +void configure_accelerator(MachineState *ms, const char *progname) > { > const char *accel; > char **accel_list, **tmp; > @@ -79,8 +79,20 @@ void configure_accelerator(MachineState *ms) > > accel = qemu_opt_get(qemu_get_machine_opts(), "accel"); > if (accel == NULL) { > - /* Use the default "accelerator", tcg */ > - accel = "tcg"; > + /* Select the default accelerator */ > + int pnlen = strlen(progname); > + if (pnlen >= 3 && g_str_equal(&progname[pnlen - 3], "kvm")) { > + /* If the program name ends with "kvm", we prefer KVM */ > + accel = "kvm:tcg"; Ends, or also starts? (In general, that approach probably makes more sense than the current default.) > + } else { > +#if defined(CONFIG_TCG) > + accel = "tcg"; > +#elif defined(CONFIG_KVM) > + accel = "kvm"; > +#else > +#error "No default accelerator available" So, we can't configure a qemu with neither tcg nor kvm, but for example with hax or xen? (Is that possible today?) > +#endif > + } > } > > accel_list = g_strsplit(accel, ":", 0); ISTR that we had a suggestion last time that we should provide qemu-kvm, qemu-tcg, etc. binaries...