On Mon, Jul 03, 2017 at 12:25:36PM +0200, Paolo Bonzini wrote: > > > On 03/07/2017 12:20, Daniel P. Berrange wrote: > >> > >> +if test "$tcg" = "no"; then > >> + for target in $target_list; do > >> + if test "$softmmu" = "yes"; then > >> + case $target in > >> + i386-softmmu|x86_64-softmmu) > >> + ;; > >> + *) > >> + error_exit "The current $target can't support disable-tcg,"\ > >> + "only i386-softmmu|x86_64-softmmu support disable-tcg" > >> + ;; > > This looks too simplistic in its logic. > > > > You can disable TCG, if-and-only-if the system emulator supports KVM. > > > > KVM is supported on many architectures, not only x86-64 & i386. > > > > KVM is only supported if the guest emulator architecture matches the > > host build target architecture. > > > > ie if you are building an x86_64 system emulator on a PPC64 host, > > then you can't disable TCG. > > > > So this needs rewriting to *not* special case x86_64 / i386. Instead > > you need to compare & match build target / system emulator architectures, > > across all architectures supporting KVM. > > i386-softmmu and x86_64-softmmu are singled out here, because they're > the only targets where --disable-tcg compiles. For the others, more > work is needed (see patches 6-15 in Yang Zhong's series).
Even with that, you still can't disable TCG if building on a non-x86 host, since that'd leave you with no available CPU at all. So the code still needs refactoring to check architectures properly. > The part that is missing in this patch is disabling non-hypervisor > targets when --disable-tcg is specified. My original patch built only > i386-softmmu and x86_64-softmmu if you specified --disable-tcg, see > > https://lists.nongnu.org/archive/html/qemu-devel/2012-09/msg02570.html > https://lists.nongnu.org/archive/html/qemu-devel/2012-09/msg02571.html Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
