On Mon, Jul 30, 2018 at 11:59:00AM +0200, Greg Kurz wrote: > On Mon, 30 Jul 2018 10:41:45 +0200 > Greg Kurz wrote: > > > On Mon, 30 Jul 2018 15:57:15 +1000 > > David Gibson wrote: > [...] > > > > > I'm pretty sure trying to change the accelerator on a qtest test just > > > > > doesn't make sense. We'd need a different approach for testing cpu > > > > > hotplug against kvm & tcg backends. > > > > > > > > > > > > > The test starts QEMU, triggers the CPU hotplug code with a QMP command > > > > and checks the command didn't fail (or QEMU didn't crash, as it would > > > > have before commit b585395b655a)... I really don't understand what > > > > is wrong with that... Please elaborate. > > > > > > Well, ok, let me turn that around. A test that doesn't rely on > > > controlling the guest side behaviour at all probably shouldn't be a > > > qtest based test, since that's what qtest is all about. > > > > > > > The CPU hotplug test doesn't seem to do anything on the guest side: it > > just checks that 'device_add' returns a response that isn't an error. > > I'm not aware that the guest is expected to have a specific behavior > > during 'device_add', apart from not crashing or hanging. That was the > > initial idea behind passing '-S' to ensure the guest doesn't run. > > > > Your remark seems to be more general though... are you meaning that > > doing something like qtest_start("-machine accel=kvm:tcg") is just > > wrong ? > > The purpose of this test is simply to exercise a path in QEMU that > is only used with KVM, but it can also be achieved the other way > around: > > @@ -189,7 +190,7 @@ static void xics_system_init(MachineState *machine, int nr_irqs, Error **errp) > sPAPRMachineState *spapr = SPAPR_MACHINE(machine); > Error *local_err = NULL; > > - if (kvm_enabled()) { > + if (kvm_enabled() || qtest_enabled()) { > if (machine_kernel_irqchip_allowed(machine) && > !xics_kvm_init(spapr, &local_err)) { > > This will test the setup of the in-kernel XICS when run on a book3s host, > and fallback to emulated XICS otherwise (eg, travis). > > Would this be more acceptable ? No, I don't think that will work. With this we call into kvm related code via machine_kernel_irqchip_allowed() and xics_kvm_init() even in the qtest case. If they work on a host which doesn't have KVM (say x86) it will only be by sheer accident. -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson