From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris J Arges Subject: Re: kvm-unit-test failures Date: Fri, 29 Aug 2014 16:05:05 -0500 Message-ID: <5400EB01.1080106@canonical.com> References: <53FDDD3F.8050102@redhat.com> <1409150751-22763-1-git-send-email-chris.j.arges@canonical.com> <53FDF09F.4060007@redhat.com> <53FE4C7E.90201@canonical.com> <1018860798.37183509.1409177149937.JavaMail.zimbra@redhat.com> <5400BA22.9080704@canonical.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: kvm@vger.kernel.org To: Paolo Bonzini Return-path: Received: from youngberry.canonical.com ([91.189.89.112]:58583 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750784AbaH2VFJ (ORCPT ); Fri, 29 Aug 2014 17:05:09 -0400 In-Reply-To: <5400BA22.9080704@canonical.com> Sender: kvm-owner@vger.kernel.org List-ID: On 08/29/2014 12:36 PM, Chris J Arges wrote: > On 08/27/2014 05:05 PM, Paolo Bonzini wrote: >> >> >> ----- Messaggio originale ----- >>> Da: "Chris J Arges" >>> A: "Paolo Bonzini" , kvm@vger.kernel.org >>> Inviato: Mercoled=C3=AC, 27 agosto 2014 23:24:14 >>> Oggetto: kvm-unit-test failures (was: [PATCH 1/2 v3] add check para= meter to run_tests configuration) >>> >>> >>>> Thanks, looks good. Are there more failures? >>>> >>>> Paolo >>>> >>> >>> Paolo, >>> Thanks for applying those patches! >>> >>> I now only see the two failures on my machine: >>> model name : Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.60GHz >>> >>> I'm running with the tip of kvm master: >>> 0ac625df43ce9d085d4ff54c1f739611f4308b13 (Merge tag 'kvm-s390-20140= 825') >>> >>> sudo ./x86-run x86/apic.flat -smp 2 -cpu qemu64,+x2apic,+tsc-deadli= ne | >>> grep -v PASS >>> qemu-system-x86_64 -enable-kvm -device pc-testdev -device >>> isa-debug-exit,iobase=3D0xf4,iosize=3D0x4 -display none -serial std= io >>> -device pci-testdev -kernel x86/apic.flat -smp 2 -cpu >>> qemu64,+x2apic,+tsc-deadline >>> enabling apic >>> enabling apic >>> paging enabled >>> cr0 =3D 80010011 >>> cr3 =3D 7fff000 >>> cr4 =3D 20 >>> apic version: 1050014 >>> x2apic enabled >>> FAIL: tsc deadline timer clearing >>> tsc deadline timer enabled >> >> This is fixed in kvm/next (3.18). >> >>> SUMMARY: 16 tests, 1 unexpected failures >>> Return value from qemu: 3 >>> >>> sudo ./x86-run x86/kvmclock_test.flat -smp 2 --append "10000000 `da= te +%s`" >>> qemu-system-x86_64 -enable-kvm -device pc-testdev -device >>> isa-debug-exit,iobase=3D0xf4,iosize=3D0x4 -display none -serial std= io >>> -device pci-testdev -kernel x86/kvmclock_test.flat -smp 2 --append >>> 10000000 1409174399 >>> enabling apic >>> enabling apic >>> kvm-clock: cpu 0, msr 0x:44d4c0 >>> kvm-clock: cpu 0, msr 0x:44d4c0 >>> Wallclock test, threshold 5 >>> Seconds get from host: 1409174399 >>> Seconds get from kvmclock: 1409173176 >>> Offset: -1223 >> >> Weird, your clock is 20 minutes behind in the VM than it >> is in the host. Is the offset always around -1200? What >> happens if you reboot? >> >> (I get 0, 1 or sometimes 2). >> >> Paolo >> >=20 > Hi Paolo, >=20 > Results building with kvm queue tree > (fd2752352bbc98850d83b5448a288d8991590317): > CPU: > model name : Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.60GHz >=20 > I still get failures with the following test, I actually tested on > multiple machines with identical hardware and the same failure occurr= ed. > In v3.13/v3.16 series kernels this passes. I'll look into which commi= t > changed this result for me. I suspect it was fairly recent. >=20 I did a quick grep through the patches between v3.16 and the latest and I found: (0d3da0d26e3c3515997c99451ce3b0ad1a69a36c KVM: x86: fix TSC matching). I reverted this patch and the test case passed for me. Looking at the patch, I added an extra else statement as so: if (!matched) { kvm->arch.nr_vcpus_matched_tsc =3D 0; } else if (!already_matched) { kvm->arch.nr_vcpus_matched_tsc++; } else { printk("kvm: do we get here?\n"); } And indeed there is a condition where matched && already_matched are both true. In this case we don't zero or increment nr_vcpus_matched_tsc= =2E Incrementing nr_vcpus_matched_tsc in that last else clause allows the test to pass; however this is identical to the logic before the patch. Any suggestions for fixing this case? Thanks, --chris j arges > ./x86-run x86/kvmclock_test.flat -smp 2 --append "10000000 `date +%s`= " | > grep -v PASS > qemu-system-x86_64 -enable-kvm -device pc-testdev -device > isa-debug-exit,iobase=3D0xf4,iosize=3D0x4 -display none -serial stdio > -device pci-testdev -kernel x86/kvmclock_test.flat -smp 2 --append > 10000000 1409160326 > enabling apic > enabling apic > kvm-clock: cpu 0, msr 0x:44d520 > kvm-clock: cpu 0, msr 0x:44d520 > Wallclock test, threshold 5 > Seconds get from host: 1409160326 > Seconds get from kvmclock: 1409153484 > Offset: -6842 > offset too large! > Check the stability of raw cycle ... > Worst warp -6841795339348 > Total vcpus: 2 > Test loops: 10000000 > Total warps: 1 > Total stalls: 0 > Worst warp: -6841795339348 > Raw cycle is not stable > Monotonic cycle test: > Worst warp -6836691572679 > Total vcpus: 2 > Test loops: 10000000 > Total warps: 1 > Total stalls: 0 > Worst warp: -6836691572679 > Measure the performance of raw cycle ... > Total vcpus: 2 > Test loops: 10000000 > TSC cycles: 1098400654 > Measure the performance of adjusted cycle ... > Total vcpus: 2 > Test loops: 10000000 > TSC cycles: 1106302952 > Return value from qemu: 3 >=20 > This is another test that fails or hangs, this passes in 3.13, but fa= ils > on 3.16 with my testing. I'll dig into this more perhaps to find out > which commit changes things. >=20 > ./x86-run x86/vmx.flat -smp 1 -cpu host,+vmx | grep -v PASS > qemu-system-x86_64 -enable-kvm -device pc-testdev -device > isa-debug-exit,iobase=3D0xf4,iosize=3D0x4 -display none -serial stdio > -device pci-testdev -kernel x86/vmx.flat -smp 1 -cpu host,+vmx > enabling apic > paging enabled > cr0 =3D 80010011 > cr3 =3D 7fff000 > cr4 =3D 20 >=20 > Test suite: VMX capability reporting >=20 > Test suite: vmenter >=20 > Test suite: preemption timer >=20 > Test suite: control field PAT >=20 > Test suite: control field EFER >=20 > Test suite: CR shadowing >=20 > Test suite: I/O bitmap >=20 > Test suite: instruction intercept >=20 > Test suite: EPT framework > FAIL: EPT violation - paging structure >=20 > Test suite: interrupt > `ASS: running a guest with interrupt acknowledgement set >=20 > Test suite: debug controls >=20 > SUMMARY: 109 tests, 1 unexpected failures > Return value from qemu: 3 >=20 > Here is the test case hanging: >=20 > ./x86-run x86/vmx.flat -smp 1 -cpu host,+vmx | grep -v PASS > qemu-system-x86_64 -enable-kvm -device pc-testdev -device > isa-debug-exit,iobase=3D0xf4,iosize=3D0x4 -display none -serial stdio > -device pci-testdev -kernel x86/vmx.flat -smp 1 -cpu host,+vmx > enabling apic > paging enabled > cr0 =3D 80010011 > cr3 =3D 7fff000 > cr4 =3D 20 >=20 > Test suite: VMX capability reporting >=20 > Test suite: vmenter >=20 > Test suite: preemption timer >=20 > Test suite: control field PAT >=20 > Test suite: control field EFER >=20 > Test suite: CR shadowing >=20 > Test suite: I/O bitmap >=20 > Test suite: instruction intercept >=20 > Test suite: EPT framework > FAIL: EPT violation - paging structure > FAIL: EPT - MMIO access >=20 > Test suite: interrupt > FAIL: intercepted interrupt + hlt >=20 > Thanks, > --chris j arges >=20