#
cd5f2fb4 |
| 20-Sep-2023 |
Paolo Bonzini <pbonzini@redhat.com> |
Merge tag 'kvm-x86-2023.09.01' of https://github.com/kvm-x86/kvm-unit-tests into HEAD
x86 fixes, cleanups, and new testcases, and a few generic changes
- Fix a bug in runtime.bash that caused it t
Merge tag 'kvm-x86-2023.09.01' of https://github.com/kvm-x86/kvm-unit-tests into HEAD
x86 fixes, cleanups, and new testcases, and a few generic changes
- Fix a bug in runtime.bash that caused it to mishandle "check" strings with multiple entries, e.g. a test that depends on multiple module params - Make the PMU tests depend on vPMU support being enabled in KVM - Fix PMU's forced emulation test on CPUs with full-width writes - Add a PMU testcase for measuring TSX transactional cycles - Nested SVM testcase for virtual NMIs - Move a pile of code to ASM_TRY() and "safe" helpers - Set up the guest stack in the LBRV tests so that the tests don't fail if the compiler decides to generate function calls in guest code - Ignore the "mispredict" flag in nSVM's LBRV tests to fix false failures - Clean up usage of helpers that disable interrupts, e.g. stop inserting unnecessary nops - Add helpers to dedup code for programming the APIC timer - Fix a variety of bugs in nVMX testcases related to being a 64-bit host
show more ...
|
#
eb421510 |
| 06-Apr-2023 |
Sean Christopherson <seanjc@google.com> |
x86: Add macros to wrap ASM_TRY() for single instructions
Add asm_safe(), asm_safe_report(), and asm_safe_report_ex() macros to reduce the boilerplate needed for using ASM_TRY() with a single instru
x86: Add macros to wrap ASM_TRY() for single instructions
Add asm_safe(), asm_safe_report(), and asm_safe_report_ex() macros to reduce the boilerplate needed for using ASM_TRY() with a single instruction.
Convert the memory test to the report variants to showcase the usage.
Link: https://lore.kernel.org/r/20230406025117.738014-2-seanjc@google.com Signed-off-by: Sean Christopherson <seanjc@google.com>
show more ...
|
#
5b5d27da |
| 03-Apr-2023 |
Paolo Bonzini <pbonzini@redhat.com> |
memory: Skip tests for instructions that are absent
Checking that instructions are absent is broken when running with CPU models other than the bare metal processor's, because neither VMX nor SVM ha
memory: Skip tests for instructions that are absent
Checking that instructions are absent is broken when running with CPU models other than the bare metal processor's, because neither VMX nor SVM have intercept controls for the instructions.
This can even happen with "-cpu max" when running under nested virtualization, which is the current situation in the Fedora KVM job on Cirrus-CI:
FAIL: clflushopt (ABSENT) FAIL: clwb (ABSENT)
In other words it looks like the features have been marked as disabled in the L0 host, while the hardware supports them.
Reported-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
b4b3e5ec |
| 01-Dec-2021 |
Zhenzhong Duan <zhenzhong.duan@intel.com> |
x86: Remove invalid clwb test code
When X86_FEATURE_WAITPKG(CPUID.7.0:ECX.WAITPKG[bit 5]) supported, ".byte 0x66, 0x0f, 0xae, 0xf0" sequence no longer represents clwb instruction with invalid operan
x86: Remove invalid clwb test code
When X86_FEATURE_WAITPKG(CPUID.7.0:ECX.WAITPKG[bit 5]) supported, ".byte 0x66, 0x0f, 0xae, 0xf0" sequence no longer represents clwb instruction with invalid operand but tpause instruction with %eax as input register.
Execute tpause with invalid input triggers #GP with below customed qemu command line:
qemu -kernel x86/memory.flat -overcommit cpu-pm=on ...
Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com> Message-Id: <20211201092619.60298-1-zhenzhong.duan@intel.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
31e68df7 |
| 08-Jun-2020 |
Paolo Bonzini <pbonzini@redhat.com> |
x86: always set up SMP
Currently setup_vm cannot assume that it can invoke IPIs, and therefore only initializes CR0/CR3/CR4 on the CPU it runs on. In order to keep the initialization code clean, le
x86: always set up SMP
Currently setup_vm cannot assume that it can invoke IPIs, and therefore only initializes CR0/CR3/CR4 on the CPU it runs on. In order to keep the initialization code clean, let's just call smp_init (and therefore setup_idt) unconditionally.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
a299895b |
| 06-Dec-2019 |
Thomas Huth <thuth@redhat.com> |
Switch the order of the parameters in report() and report_xfail()
Commit c09c54c66b1df ("lib: use an argument which doesn't require default argument promotion") fixed a warning that occurs with Clan
Switch the order of the parameters in report() and report_xfail()
Commit c09c54c66b1df ("lib: use an argument which doesn't require default argument promotion") fixed a warning that occurs with Clang, but introduced a regression: If the "pass" parameter is a value which has only set the condition bits in the upper 32 bits of a 64 bit value, the condition is now false since the value is truncated to "unsigned int" so that the upper bits are simply discarded.
We fixed it by reverting the commit, but that of course also means trouble with Clang again. We can not use "bool" if it is the last parameter before the variable argument list. The proper fix is to swap the parameters around and make the format string the last parameter.
This patch (except the changes in lib/libcflat.h and lib/report.c and some rebase conflicts along the way) has basically been created with following coccinelle script (with some additional manual tweaking of long and disabled lines afterwards):
@@ expression fmt; expression pass; expression list args; @@ report( -fmt, pass +pass, fmt , args);
@@ expression fmt; expression pass; expression list args; @@ report_xfail( -fmt, xfail, pass +xfail, pass, fmt , args);
Tested-by: Andrew Jones <drjones@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com> Message-Id: <20191206113102.14914-1-thuth@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
badc98ca |
| 30-Jul-2019 |
Krish Sadhukhan <krish.sadhukhan@oracle.com> |
kvm-unit-test: x86: Replace cpuid/cpuid_indexed calls with this_cpu_has()
Signed-off-by: Krish Sadhukhan <krish.sadhukhan@oracle.com> Reviewed-by: Karl Heubaum <karl.heubaum@oracle.com> Signed-off-b
kvm-unit-test: x86: Replace cpuid/cpuid_indexed calls with this_cpu_has()
Signed-off-by: Krish Sadhukhan <krish.sadhukhan@oracle.com> Reviewed-by: Karl Heubaum <karl.heubaum@oracle.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
4640cd6d |
| 14-Feb-2018 |
Paolo Bonzini <pbonzini@redhat.com> |
x86: memory: do not use report_xfail
XFAIL is for known bugs, not for things that are not supported by the current CPU. Instead, change the test name depending on whether the expected result is #UD
x86: memory: do not use report_xfail
XFAIL is for known bugs, not for things that are not supported by the current CPU. Instead, change the test name depending on whether the expected result is #UD or execution.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
a42d3fde |
| 04-Nov-2015 |
Eduardo Habkost <ehabkost@redhat.com> |
x86: Memory instructions test case
Quickly hacked test case for memory instructions (clflush, mfence, sfence, lfence, clflushopt, clwb, pcommit), that simply checks for #UD exceptions.
This was use
x86: Memory instructions test case
Quickly hacked test case for memory instructions (clflush, mfence, sfence, lfence, clflushopt, clwb, pcommit), that simply checks for #UD exceptions.
This was useful to test TCG handling of those instructions.
The "fake clwb" part will probably break once a new instruction use those opcodes.
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|