On Mon, 30 Jul 2018 15:57:15 +1000 David Gibson wrote: > On Fri, Jul 27, 2018 at 09:54:52AM +0200, Greg Kurz wrote: > > On Fri, 27 Jul 2018 15:27:24 +1000 > > David Gibson wrote: > > > > > On Wed, Jul 25, 2018 at 04:45:26PM +0200, Greg Kurz wrote: > > > > Commit b585395b655 fixed a regression introduced by some recent changes > > > > in the XICS code, that was causing QEMU to crash instantly during CPU > > > > hotplug with KVM. This is typically the kind of bug we'd like our > > > > test suite to detect before it gets merged. Unfortunately, the current > > > > tests run with '-machine accel=qtest' and don't exercise KVM specific > > > > paths in QEMU. > > > > > > > > This patch hence changes add_pseries_test_case() to launch QEMU with > > > > '-machine accel=kvm' if KVM is available. > > > > > > > > A notable consequence is that the guest will execute SLOF, but for some > > > > reasons SLOF sometimes hits a program exception. This causes the guest > > > > to loop forever and the test to be stuck. Since we don't need the guest > > > > to be truely running, let's pass -S to QEMU to avoid that. > > > > > > > > Also disable machine capabilities that could be unavailable in KVM, eg, > > > > when using PR KVM. > > > > > > > > Signed-off-by: Greg Kurz > > > > > > 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 ?