* KVM selftests are failing
@ 2018-11-14 15:30 Ahmed Soliman
2018-11-14 18:08 ` Andrew Jones
0 siblings, 1 reply; 15+ messages in thread
From: Ahmed Soliman @ 2018-11-14 15:30 UTC (permalink / raw)
To: Shuah Khan, linux-kselftest
Cc: Paolo Bonzini, Andrew Jones, Peter Xu, Anders Roxell,
Vitaly Kuznetsov, linux-kernel
Hello,
KVM Self tests located at tools/testing/selftests/kvm seams to be failing.
I have tried:
- dirty_log_test
- x86_64/cr4_cpuid_sync_test
- x86_64/evmcs_test
- x86_64/platform_info_test
- x86_64/set_sregs_test
- x86_64/state_test
- x86_64/sync_regs_test
- x86_64/vmx_tsc_adjust_test
All of them triggered the following assert:
==== Test Assertion Failure ====
lib/kvm_util.c:596: ret == 0
pid=24507 tid=24507 - Invalid argument
1 0x000056360774e468: ?? ??:0
2 0x000056360774e609: ?? ??:0
3 0x00005636077537a0: ?? ??:0
4 0x000056360774d35e: ?? ??:0
5 0x00007f3117571ae6: ?? ??:0
6 0x000056360774d4a9: ?? ??:0
madvise failed,
addr: 0x7f3117350000
length: 0x200000
src_type: 0
I have tried the tests on both kvm(next) branch
commit 22a7cdcae6a4a3c89748 as well as
torvald's master 4.20-rc2.
--
Ahmed,
Junior Researcher, IoT and Cyber Security lab, SmartCI, Alexandria
University, & CIS @ VMI
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: KVM selftests are failing 2018-11-14 15:30 KVM selftests are failing Ahmed Soliman @ 2018-11-14 18:08 ` Andrew Jones 2018-11-14 18:19 ` Anders Roxell 0 siblings, 1 reply; 15+ messages in thread From: Andrew Jones @ 2018-11-14 18:08 UTC (permalink / raw) To: Ahmed Soliman Cc: Shuah Khan, linux-kselftest, Paolo Bonzini, Peter Xu, Anders Roxell, Vitaly Kuznetsov, linux-kernel On Wed, Nov 14, 2018 at 05:30:28PM +0200, Ahmed Soliman wrote: > Hello, > > KVM Self tests located at tools/testing/selftests/kvm seams to be failing. > I have tried: > - dirty_log_test > - x86_64/cr4_cpuid_sync_test > - x86_64/evmcs_test > - x86_64/platform_info_test > - x86_64/set_sregs_test > - x86_64/state_test > - x86_64/sync_regs_test > - x86_64/vmx_tsc_adjust_test > > All of them triggered the following assert: > > ==== Test Assertion Failure ==== > lib/kvm_util.c:596: ret == 0 > pid=24507 tid=24507 - Invalid argument > 1 0x000056360774e468: ?? ??:0 > 2 0x000056360774e609: ?? ??:0 > 3 0x00005636077537a0: ?? ??:0 > 4 0x000056360774d35e: ?? ??:0 > 5 0x00007f3117571ae6: ?? ??:0 > 6 0x000056360774d4a9: ?? ??:0 > madvise failed, > addr: 0x7f3117350000 > length: 0x200000 > src_type: 0 > > I have tried the tests on both kvm(next) branch > commit 22a7cdcae6a4a3c89748 as well as > torvald's master 4.20-rc2. Hi Ahmed, I couldn't reproduce this on a Westmere. Are you sure you're testing a clean compilation? Can you bisect the kernel? Thanks, drew ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: KVM selftests are failing 2018-11-14 18:08 ` Andrew Jones @ 2018-11-14 18:19 ` Anders Roxell 2018-11-14 19:23 ` Ahmed Soliman 0 siblings, 1 reply; 15+ messages in thread From: Anders Roxell @ 2018-11-14 18:19 UTC (permalink / raw) To: drjones Cc: ahmedsoliman, Shuah Khan, open list:KERNEL SELFTEST FRAMEWORK, Paolo Bonzini, peterx, vkuznets, Linux Kernel Mailing List On Wed, 14 Nov 2018 at 19:08, Andrew Jones <drjones@redhat.com> wrote: > > On Wed, Nov 14, 2018 at 05:30:28PM +0200, Ahmed Soliman wrote: > > Hello, > > > > KVM Self tests located at tools/testing/selftests/kvm seams to be failing. > > I have tried: > > - dirty_log_test > > - x86_64/cr4_cpuid_sync_test > > - x86_64/evmcs_test > > - x86_64/platform_info_test > > - x86_64/set_sregs_test > > - x86_64/state_test > > - x86_64/sync_regs_test > > - x86_64/vmx_tsc_adjust_test > > > > All of them triggered the following assert: > > > > ==== Test Assertion Failure ==== > > lib/kvm_util.c:596: ret == 0 > > pid=24507 tid=24507 - Invalid argument > > 1 0x000056360774e468: ?? ??:0 > > 2 0x000056360774e609: ?? ??:0 > > 3 0x00005636077537a0: ?? ??:0 > > 4 0x000056360774d35e: ?? ??:0 > > 5 0x00007f3117571ae6: ?? ??:0 > > 6 0x000056360774d4a9: ?? ??:0 > > madvise failed, > > addr: 0x7f3117350000 > > length: 0x200000 > > src_type: 0 > > > > I have tried the tests on both kvm(next) branch > > commit 22a7cdcae6a4a3c89748 as well as > > torvald's master 4.20-rc2. > > Hi Ahmed, Hi Drew, Ahmed, > > I couldn't reproduce this on a Westmere. Are you sure you're testing > a clean compilation? Can you bisect the kernel? What would be the difference in CONFIG_* fragments that you both have enabled? Cheers, Anders ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: KVM selftests are failing 2018-11-14 18:19 ` Anders Roxell @ 2018-11-14 19:23 ` Ahmed Soliman 2018-11-14 21:29 ` Ahmed Soliman 2018-11-15 8:41 ` Andrew Jones 0 siblings, 2 replies; 15+ messages in thread From: Ahmed Soliman @ 2018-11-14 19:23 UTC (permalink / raw) To: Anders Roxell Cc: Andrew Jones, Shuah Khan, linux-kselftest, Paolo Bonzini, Peter Xu, Vitaly Kuznetsov, linux-kernel Hello, > > I couldn't reproduce this on a Westmere. Are you sure you're testing > > a clean compilation? Can you bisect the kernel? I don't do a make clean normally, but I will do it this time when bisecting, also I only use shallow clones so it will also take some time pulling. Also to note, The arch I am using is Haswell, I am not sure if that should make any difference though. > What would be the difference in CONFIG_* fragments that you both have enabled? Here is my config file: https://pastebin.com/fCNV2z8c Thanks, -- Ahmed, Junior Researcher, IoT and Cyber Security lab, SmartCI, Alexandria University, & CIS @ VMI ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: KVM selftests are failing 2018-11-14 19:23 ` Ahmed Soliman @ 2018-11-14 21:29 ` Ahmed Soliman 2018-11-15 9:02 ` Andrew Jones 2018-11-15 8:41 ` Andrew Jones 1 sibling, 1 reply; 15+ messages in thread From: Ahmed Soliman @ 2018-11-14 21:29 UTC (permalink / raw) To: Anders Roxell Cc: Andrew Jones, Shuah Khan, linux-kselftest, Paolo Bonzini, Peter Xu, Vitaly Kuznetsov, linux-kernel Hello again, On Wed, Nov 14, 2018 at 9:23 PM Ahmed Soliman <ahmedsoliman@mena.vt.edu> wrote: > I don't do a make clean normally, but I will do it this time when > bisecting, also I only use shallow > clones so it will also take some time pulling. Also to note, The arch > I am using is Haswell, I am not > sure if that should make any difference though. I started bisecting from commit 783e9e51266ebb7f78c606a53cb0fa41bb7c31a0 which introduces kvm selftests. I started from complete clean kernel build and run, but unfortunately, I got the Assert there too. Just in case it might help identifying the issue, this is the output of my lscpu: Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 2 Core(s) per socket: 2 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 69 Model name: Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz Stepping: 1 CPU MHz: 897.938 CPU max MHz: 3000.0000 CPU min MHz: 800.0000 BogoMIPS: 4788.69 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 4096K NUMA node0 CPU(s): 0-3 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm abm cpuid_fault epb invpcid_single pti tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 s mep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts > > What would be the difference in CONFIG_* fragments that you both have enabled? > > Here is my config file: > https://pastebin.com/fCNV2z8c Kind regard, ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: KVM selftests are failing 2018-11-14 21:29 ` Ahmed Soliman @ 2018-11-15 9:02 ` Andrew Jones 2018-11-15 13:36 ` Ahmed Soliman 0 siblings, 1 reply; 15+ messages in thread From: Andrew Jones @ 2018-11-15 9:02 UTC (permalink / raw) To: Ahmed Soliman Cc: Anders Roxell, Shuah Khan, linux-kselftest, Paolo Bonzini, Peter Xu, Vitaly Kuznetsov, linux-kernel On Wed, Nov 14, 2018 at 11:29:59PM +0200, Ahmed Soliman wrote: > Hello again, > On Wed, Nov 14, 2018 at 9:23 PM Ahmed Soliman <ahmedsoliman@mena.vt.edu> wrote: > > I don't do a make clean normally, but I will do it this time when > > bisecting, also I only use shallow > > clones so it will also take some time pulling. Also to note, The arch > > I am using is Haswell, I am not > > sure if that should make any difference though. > > I started bisecting from commit 783e9e51266ebb7f78c606a53cb0fa41bb7c31a0 > which introduces kvm selftests. I started from complete clean kernel build and > run, but unfortunately, I got the Assert there too. I think you should be able to pre-compile the selftests and save them, and then bisect the kernel further back than their introduction. Actually you may want to simplify the test case to just a mmap/madvise pair and see if that reproduces, since kvm selftests doesn't do much more than that. (Other than all the /dev/kvm ioctls - you have the right perms on /dev/kvm, or are running as root, right?) Thanks, drew ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: KVM selftests are failing 2018-11-15 9:02 ` Andrew Jones @ 2018-11-15 13:36 ` Ahmed Soliman 2018-11-15 14:50 ` Andrew Jones 0 siblings, 1 reply; 15+ messages in thread From: Ahmed Soliman @ 2018-11-15 13:36 UTC (permalink / raw) To: Andrew Jones, Anders Roxell Cc: Shuah Khan, linux-kselftest, Paolo Bonzini, Peter Xu, Vitaly Kuznetsov, linux-kernel Hello, On Thu, Nov 15, 2018 at 11:02 AM Andrew Jones <drjones@redhat.com> wrote: > I think you should be able to pre-compile the selftests and save them, > and then bisect the kernel further back than their introduction. Actually > you may want to simplify the test case to just a mmap/madvise pair and > see if that reproduces, since kvm selftests doesn't do much more than > that. (Other than all the /dev/kvm ioctls - you have the right perms > on /dev/kvm, or are running as root, right?) yes I have /dev/kvm permissions, but it shouldn't matter at the moment. well I stripped the kvm self tests from most stuff and ended up with simpler code (sorry for spaces, I am using web interface to send this email) #include <stdio.h> #include <sys/mman.h> #include <string.h> #include <errno.h> static void *align(void *x, size_t size) { size_t mask = size - 1; return (void *) (((size_t) x + mask) & ~mask); } int main(){ int ret; void *mmap_start; void *host_mem; size_t length = 6291456; mmap_start = mmap(NULL, length, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | 0, -1, 0); host_mem = align(mmap_start, 1); ret = madvise(host_mem, length, MADV_NOHUGEPAGE); printf("madvise returned: %d\nerrno: %d %s\n", ret, errno, strerror(errno)); } Now I couldn't find a single commit to bisect from, I checked 4.20, 4.19, 4.16, 4.10, 4.4 back to v3.18 tag and None of the builds I attempted did work. All of the kernels returned: madvise returned: -1 errno: 22 Invalid argument and the strace logs looks like this: mmap(NULL, 6291456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f46ea2a1000 madvise(0x7f46ea2a1000, 6291456, MADV_NOHUGEPAGE) = -1 EINVAL (Invalid argument) For comprehension, this is done on intel core i7-4500U CPU @ 1.80GHz As for now I will comment the madvise line and the assert when writing my own kvm self test. I think it wouldn't cause any trouble?, If it is not the case, please let me know. Thanks, -- Ahmed Junior Researcher, IoT and Cyber Security lab, SmartCI, Alexandria University, & CIS @ VMI ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: KVM selftests are failing 2018-11-15 13:36 ` Ahmed Soliman @ 2018-11-15 14:50 ` Andrew Jones 2018-11-15 16:15 ` Ahmed Soliman 0 siblings, 1 reply; 15+ messages in thread From: Andrew Jones @ 2018-11-15 14:50 UTC (permalink / raw) To: Ahmed Soliman Cc: Anders Roxell, Shuah Khan, linux-kselftest, Paolo Bonzini, Peter Xu, Vitaly Kuznetsov, linux-kernel On Thu, Nov 15, 2018 at 03:36:44PM +0200, Ahmed Soliman wrote: > mmap(NULL, 6291456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, > -1, 0) = 0x7f46ea2a1000 > madvise(0x7f46ea2a1000, 6291456, MADV_NOHUGEPAGE) = -1 EINVAL (Invalid argument) > > For comprehension, this is done on intel core i7-4500U CPU @ 1.80GHz Argh. I see what it is. Your config doesn't have CONFIG_TRANSPARENT_HUGEPAGE=y, so madvise_behavior_valid() returns false, which causes madvise() to immediately return EINVAL. We should be more careful in kvm selftests with our madvise behavior use. > > As for now I will comment the madvise line and the assert when writing > my own kvm self test. I think it wouldn't cause any trouble?, If it is > not the case, please let me know. > You may not need madvise() at all for your test, depending on what you're doing. So leaving it out may be fine. Reworking kvm selftests to ensure only valid madvise behaviors are used (and only when necessary), before adding new tests, would be best. Thanks, drew ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: KVM selftests are failing 2018-11-15 14:50 ` Andrew Jones @ 2018-11-15 16:15 ` Ahmed Soliman 2018-11-15 16:39 ` Vitaly Kuznetsov 0 siblings, 1 reply; 15+ messages in thread From: Ahmed Soliman @ 2018-11-15 16:15 UTC (permalink / raw) To: Andrew Jones Cc: Anders Roxell, Shuah Khan, linux-kselftest, Paolo Bonzini, Peter Xu, Vitaly Kuznetsov, linux-kernel Hello, On Thu, Nov 15, 2018 at 4:50 PM Andrew Jones <drjones@redhat.com> wrote: > > On Thu, Nov 15, 2018 at 03:36:44PM +0200, Ahmed Soliman wrote: > > mmap(NULL, 6291456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, > > -1, 0) = 0x7f46ea2a1000 > > madvise(0x7f46ea2a1000, 6291456, MADV_NOHUGEPAGE) = -1 EINVAL (Invalid argument) > > > > For comprehension, this is done on intel core i7-4500U CPU @ 1.80GHz > > Argh. I see what it is. Your config doesn't have CONFIG_TRANSPARENT_HUGEPAGE=y, > so madvise_behavior_valid() returns false, which causes madvise() to > immediately return EINVAL. We should be more careful in kvm selftests with > our madvise behavior use. > > > > > As for now I will comment the madvise line and the assert when writing > > my own kvm self test. I think it wouldn't cause any trouble?, If it is > > not the case, please let me know. > > > > You may not need madvise() at all for your test, depending on what you're > doing. So leaving it out may be fine. Reworking kvm selftests to ensure > only valid madvise behaviors are used (and only when necessary), before > adding new tests, would be best. Confirmed it worked after CONFIG_TRANSPARENT_HUGEPAGE=y I will send a patch soon that should make the self test check if Transparent huge pages are enabled first before issuing the related madvise() Thanks, -- Ahmed, Junior Researcher, IoT and Cyber Security lab, SmartCI, Alexandria University, & CIS @ VMI ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: KVM selftests are failing 2018-11-15 16:15 ` Ahmed Soliman @ 2018-11-15 16:39 ` Vitaly Kuznetsov 2018-11-16 12:00 ` Ahmed Soliman 0 siblings, 1 reply; 15+ messages in thread From: Vitaly Kuznetsov @ 2018-11-15 16:39 UTC (permalink / raw) To: Ahmed Soliman Cc: Anders Roxell, Shuah Khan, linux-kselftest, Paolo Bonzini, Peter Xu, linux-kernel, Andrew Jones Ahmed Soliman <ahmedsoliman@mena.vt.edu> writes: > Hello, > On Thu, Nov 15, 2018 at 4:50 PM Andrew Jones <drjones@redhat.com> wrote: >> >> On Thu, Nov 15, 2018 at 03:36:44PM +0200, Ahmed Soliman wrote: >> > mmap(NULL, 6291456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, >> > -1, 0) = 0x7f46ea2a1000 >> > madvise(0x7f46ea2a1000, 6291456, MADV_NOHUGEPAGE) = -1 EINVAL (Invalid argument) >> > >> > For comprehension, this is done on intel core i7-4500U CPU @ 1.80GHz >> >> Argh. I see what it is. Your config doesn't have CONFIG_TRANSPARENT_HUGEPAGE=y, >> so madvise_behavior_valid() returns false, which causes madvise() to >> immediately return EINVAL. We should be more careful in kvm selftests with >> our madvise behavior use. >> >> > >> > As for now I will comment the madvise line and the assert when writing >> > my own kvm self test. I think it wouldn't cause any trouble?, If it is >> > not the case, please let me know. >> > >> >> You may not need madvise() at all for your test, depending on what you're >> doing. So leaving it out may be fine. Reworking kvm selftests to ensure >> only valid madvise behaviors are used (and only when necessary), before >> adding new tests, would be best. > > Confirmed it worked after CONFIG_TRANSPARENT_HUGEPAGE=y > I will send a patch soon that should make the self test check if > Transparent huge pages are enabled first before issuing the related > madvise() Just ignore -EINVAL returned from madvise(), QEMU went even further, see: commit 1d7414396f926651c4d7a673eb3a10aca5246d76 Author: Dr. David Alan Gilbert <dgilbert@redhat.com> Date: Thu Nov 19 15:27:48 2015 +0000 Assume madvise for (no)hugepage works -- Vitaly ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: KVM selftests are failing 2018-11-15 16:39 ` Vitaly Kuznetsov @ 2018-11-16 12:00 ` Ahmed Soliman 2018-11-16 12:08 ` Paolo Bonzini 2018-11-16 13:36 ` Vitaly Kuznetsov 0 siblings, 2 replies; 15+ messages in thread From: Ahmed Soliman @ 2018-11-16 12:00 UTC (permalink / raw) To: Vitaly Kuznetsov Cc: Anders Roxell, Shuah Khan, linux-kselftest, Paolo Bonzini, Peter Xu, linux-kernel, Andrew Jones Hello once again, I noticed that there is still more problems with kvmself test (at least on my machine) Any test that would successfully reach the guest's code immediately VMexit by a shutdown. $ ./vmx_tsc_adjust_test ==== Test Assertion Failure ==== x86_64/vmx_tsc_adjust_test.c:156: run->exit_reason == KVM_EXIT_IO pid=8499 tid=8499 - Success 1 0x00005604f07bd36c: ?? ??:0 2 0x00007f5c0dc53ae6: ?? ??:0 3 0x00005604f07bd4b9: ?? ??:0 Got exit_reason other than KVM_EXIT_IO: 8 (SHUTDOWN) Also I have got a question I noticed 2 kvm test suites, kvm selftests in tools/testing/selftests/kvm/ and this kvm unit test at [1] I am curious if I should put my tests in the kvm unit test intead of kvm selftest -- links -- [1] https://git.kernel.org/pub/scm/virt/kvm/kvm-unit-tests.git Thanks Ahmed, ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: KVM selftests are failing 2018-11-16 12:00 ` Ahmed Soliman @ 2018-11-16 12:08 ` Paolo Bonzini 2018-11-16 13:36 ` Vitaly Kuznetsov 1 sibling, 0 replies; 15+ messages in thread From: Paolo Bonzini @ 2018-11-16 12:08 UTC (permalink / raw) To: Ahmed Soliman, Vitaly Kuznetsov Cc: Anders Roxell, Shuah Khan, linux-kselftest, Peter Xu, linux-kernel, Andrew Jones On 16/11/18 13:00, Ahmed Soliman wrote: > Hello once again, > > I noticed that there is still more problems with kvmself test (at > least on my machine) > > Any test that would successfully reach the guest's code immediately > VMexit by a shutdown. > > $ ./vmx_tsc_adjust_test > ==== Test Assertion Failure ==== > x86_64/vmx_tsc_adjust_test.c:156: run->exit_reason == KVM_EXIT_IO > pid=8499 tid=8499 - Success > 1 0x00005604f07bd36c: ?? ??:0 > 2 0x00007f5c0dc53ae6: ?? ??:0 > 3 0x00005604f07bd4b9: ?? ??:0 > Got exit_reason other than KVM_EXIT_IO: 8 (SHUTDOWN) > > Also I have got a question I noticed 2 kvm test suites, kvm selftests > in tools/testing/selftests/kvm/ > and this kvm unit test at [1] I am curious if I should put my tests in > the kvm unit test intead of kvm selftest If you are testing the API, or some corner cases and race conditions that are hard to synthesize with a "real-world" guest, put it here. If you are testing the emulated hardware, you probably want to put it in kvm-unit-tests instead. Paolo ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: KVM selftests are failing 2018-11-16 12:00 ` Ahmed Soliman 2018-11-16 12:08 ` Paolo Bonzini @ 2018-11-16 13:36 ` Vitaly Kuznetsov 2018-11-17 19:43 ` Ahmed Soliman 1 sibling, 1 reply; 15+ messages in thread From: Vitaly Kuznetsov @ 2018-11-16 13:36 UTC (permalink / raw) To: Ahmed Soliman Cc: Anders Roxell, Shuah Khan, linux-kselftest, Paolo Bonzini, Peter Xu, linux-kernel, Andrew Jones Ahmed Soliman <ahmedsoliman@mena.vt.edu> writes: > Hello once again, > > I noticed that there is still more problems with kvmself test (at > least on my machine) > > Any test that would successfully reach the guest's code immediately > VMexit by a shutdown. > > $ ./vmx_tsc_adjust_test > ==== Test Assertion Failure ==== > x86_64/vmx_tsc_adjust_test.c:156: run->exit_reason == KVM_EXIT_IO > pid=8499 tid=8499 - Success > 1 0x00005604f07bd36c: ?? ??:0 > 2 0x00007f5c0dc53ae6: ?? ??:0 > 3 0x00005604f07bd4b9: ?? ??:0 > Got exit_reason other than KVM_EXIT_IO: 8 (SHUTDOWN) > Hm, this is weird. Do other KVM users, e.g. qemu work on this host? Are you sure this happens on the first VCPU_RUN invocation? Could you try doing trace-cmd record -e kvm ./x86_64/vmx_tsc_adjust_test && trace-cmd report to see if there's anything suspicious? -- Vitaly ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: KVM selftests are failing 2018-11-16 13:36 ` Vitaly Kuznetsov @ 2018-11-17 19:43 ` Ahmed Soliman 0 siblings, 0 replies; 15+ messages in thread From: Ahmed Soliman @ 2018-11-17 19:43 UTC (permalink / raw) To: Vitaly Kuznetsov Cc: Anders Roxell, Shuah Khan, linux-kselftest, Paolo Bonzini, Peter Xu, linux-kernel, Andrew Jones On Fri, Nov 16, 2018 at 3:37 PM Vitaly Kuznetsov <vkuznets@redhat.com> wrote: > > Ahmed Soliman <ahmedsoliman@mena.vt.edu> writes: > > > Hello once again, > > > > I noticed that there is still more problems with kvmself test (at > > least on my machine) > > > > Any test that would successfully reach the guest's code immediately > > VMexit by a shutdown. > > > > $ ./vmx_tsc_adjust_test > > ==== Test Assertion Failure ==== > > x86_64/vmx_tsc_adjust_test.c:156: run->exit_reason == KVM_EXIT_IO > > pid=8499 tid=8499 - Success > > 1 0x00005604f07bd36c: ?? ??:0 > > 2 0x00007f5c0dc53ae6: ?? ??:0 > > 3 0x00005604f07bd4b9: ?? ??:0 > > Got exit_reason other than KVM_EXIT_IO: 8 (SHUTDOWN) > > > > Hm, this is weird. Do other KVM users, e.g. qemu work on this host? Are > you sure this happens on the first VCPU_RUN invocation? Yes and I have just tested: qemu-system-x86_64 -enable-kvm -cpu host,+vmx -m 2G And Linux as well as android for x86 booted up. Also I kinda have my kvm tests that works but they are not built on top of kvm selftest api. > Could you try doing > > trace-cmd record -e kvm ./x86_64/vmx_tsc_adjust_test && trace-cmd report > > to see if there's anything suspicious? Yes, there is a triple fault induced shutdown probably during EPT handling: vmx_tsc_adjust_-17638 [001] 15628.729863: kvm_update_master_clock: masterclock 0 hostclock tsc offsetmatched 0 vmx_tsc_adjust_-17638 [001] 15628.730820: kvm_write_tsc_offset: vcpu=5 prev=0 next=18446733817569215369 vmx_tsc_adjust_-17638 [001] 15628.730822: kvm_track_tsc: vcpu_id 5 masterclock 0 offsetmatched 0 nr_online 1 hostclock tsc vmx_tsc_adjust_-17638 [001] 15628.730911: kvm_fpu: load vmx_tsc_adjust_-17638 [001] 15628.730913: kvm_update_master_clock: masterclock 1 hostclock tsc offsetmatched 1 vmx_tsc_adjust_-17638 [001] 15628.730954: kvm_entry: vcpu 5 vmx_tsc_adjust_-17638 [001] 15628.730974: kvm_exit: reason EPT_VIOLATION rip 0x56545f0b8760 info 83 0 vmx_tsc_adjust_-17638 [001] 15628.730976: kvm_page_fault: address 180560 error_code 83 vmx_tsc_adjust_-17638 [001] 15628.730989: kvm_entry: vcpu 5 vmx_tsc_adjust_-17638 [001] 15628.730992: kvm_exit: reason TRIPLE_FAULT rip 0x56545f0b8760 info 0 0 vmx_tsc_adjust_-17638 [001] 15628.730993: kvm_fpu: unload vmx_tsc_adjust_-17638 [001] 15628.730996: kvm_userspace_exit: reason KVM_EXIT_SHUTDOWN (8) vmx_tsc_adjust_-17638 [002] 15628.739237: kvm_hv_stimer_cleanup: vcpu_id 5 timer 0 vmx_tsc_adjust_-17638 [002] 15628.739244: kvm_hv_stimer_cleanup: vcpu_id 5 timer 1 vmx_tsc_adjust_-17638 [002] 15628.739244: kvm_hv_stimer_cleanup: vcpu_id 5 timer 2 vmx_tsc_adjust_-17638 [002] 15628.739245: kvm_hv_stimer_cleanup: vcpu_id 5 timer 3 I will try to dive into them after my midterms are over(ends tomorrow) but I would need to verify that someone else can reproduce this, I tried bisecting but it seams that this bug was there from kvmselftests commit one (rebuilt kernel, kvm and the kvm selftests each time). Thanks, ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: KVM selftests are failing 2018-11-14 19:23 ` Ahmed Soliman 2018-11-14 21:29 ` Ahmed Soliman @ 2018-11-15 8:41 ` Andrew Jones 1 sibling, 0 replies; 15+ messages in thread From: Andrew Jones @ 2018-11-15 8:41 UTC (permalink / raw) To: Ahmed Soliman Cc: Anders Roxell, Shuah Khan, linux-kselftest, Paolo Bonzini, Peter Xu, Vitaly Kuznetsov, linux-kernel On Wed, Nov 14, 2018 at 09:23:41PM +0200, Ahmed Soliman wrote: > Hello, > > > > I couldn't reproduce this on a Westmere. Are you sure you're testing > > > a clean compilation? Can you bisect the kernel? > I don't do a make clean normally, but I will do it this time when > bisecting, Sorry, I meant a clean build of the kvm selftests, not the kernel. The kvm selftests makefile is a bit lacking and I've noticed that tests can assert in random places if they aren't built from scratch - ensuring all changed dependencies also get recompiled. Fixing up the makefile is on my todo, but it wasn't very high on it, since 'make clean && make' is fast enough. > also I only use shallow > clones so it will also take some time pulling. Also to note, The arch > I am using is Haswell, I am not > sure if that should make any difference though. I'm not sure either, and unfortunately I don't have the same hardware as you to try and reproduce. > > What would be the difference in CONFIG_* fragments that you both have enabled? > > Here is my config file: > https://pastebin.com/fCNV2z8c I checked the differences but nothing interesting stood out. I'm using a defconfig config with a couple extra file system modules tacked on. drew ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2018-11-17 19:44 UTC | newest] Thread overview: 15+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-11-14 15:30 KVM selftests are failing Ahmed Soliman 2018-11-14 18:08 ` Andrew Jones 2018-11-14 18:19 ` Anders Roxell 2018-11-14 19:23 ` Ahmed Soliman 2018-11-14 21:29 ` Ahmed Soliman 2018-11-15 9:02 ` Andrew Jones 2018-11-15 13:36 ` Ahmed Soliman 2018-11-15 14:50 ` Andrew Jones 2018-11-15 16:15 ` Ahmed Soliman 2018-11-15 16:39 ` Vitaly Kuznetsov 2018-11-16 12:00 ` Ahmed Soliman 2018-11-16 12:08 ` Paolo Bonzini 2018-11-16 13:36 ` Vitaly Kuznetsov 2018-11-17 19:43 ` Ahmed Soliman 2018-11-15 8:41 ` Andrew Jones
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox