#
dca3f4c0 |
| 24-Feb-2025 |
Paolo Bonzini <pbonzini@redhat.com> |
Merge tag 'kvm-x86-2025.02.21' of https://github.com/kvm-x86/kvm-unit-tests into HEAD
KVM-Unit-Tests x86 changes:
- Expand the per-CPU data+stack area to 12KiB per CPU to reduce the probability
Merge tag 'kvm-x86-2025.02.21' of https://github.com/kvm-x86/kvm-unit-tests into HEAD
KVM-Unit-Tests x86 changes:
- Expand the per-CPU data+stack area to 12KiB per CPU to reduce the probability of tests overflowing their stack and clobbering pre-CPU data.
- Add testcases for LA57 canonical checks.
- Add testcases for LAM.
- Add a smoke test to make sure KVM doesn't bleed split-lock #AC/#DB into the guest.
- Fix many warts and bugs in the PMU test, and prepare it for PMU version 5 and beyond.
- Many misc fixes and cleanups.
show more ...
|
#
5f4bb740 |
| 21-Feb-2025 |
Sean Christopherson <seanjc@google.com> |
x86: Drop "enabled" field from "struct kvm_vcpu_pv_apf_data"
Remove the now-defunct (and never used in KVM-Unit-Tests) "enabled" field from kvm_vcpu_pv_apf_data. The field was removed from KVM by c
x86: Drop "enabled" field from "struct kvm_vcpu_pv_apf_data"
Remove the now-defunct (and never used in KVM-Unit-Tests) "enabled" field from kvm_vcpu_pv_apf_data. The field was removed from KVM by commit ccb2280ec2f9 ("x86/kvm: Use separate percpu variable to track the enabling of asyncpf").
Suggested-by: Xiaoyao Li <xiaoyao.li@intel.com> Link: https://lore.kernel.org/r/20250221225744.2231975-1-seanjc@google.com Signed-off-by: Sean Christopherson <seanjc@google.com>
show more ...
|
#
d301d018 |
| 20-Jun-2024 |
Paolo Bonzini <pbonzini@redhat.com> |
fix cirrus-ci-macos-i386 CI job
Apparently, on that compiler uint32_t is an unsigned long. Whatever.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
#
dcec966f |
| 20-Jun-2024 |
Paolo Bonzini <pbonzini@redhat.com> |
Merge tag 'kvm-x86-2024.06.14' of https://github.com/kvm-x86/kvm-unit-tests into HEAD
x86 fixes, cleanups, and new testcases:
- Add a testcase to verify that KVM doesn't inject a triple fault (or
Merge tag 'kvm-x86-2024.06.14' of https://github.com/kvm-x86/kvm-unit-tests into HEAD
x86 fixes, cleanups, and new testcases:
- Add a testcase to verify that KVM doesn't inject a triple fault (or any other "error") if a nested VM is run with an EP4TA pointing MMIO.
- Play nice with CR4.CET in test_vmxon_bad_cr()
- Force emulation when testing MSR_IA32_FLUSH_CMD to workaround an issue where Skylake CPUs don't follow the architecturally defined behavior, and so that the test doesn't break if/when new bits are supported by future CPUs.
- Rework the async #PF test to support IRQ-based page-ready notifications.
- Fix a variety of issues related to adaptive PEBS.
- Add several nested VMX tests for virtual interrupt delivery and posted interrupts.
- Ensure PAT is loaded with the default value after the nVMX PAT tests (failure to do so was causing tests to fail due to all memory being UC).
- Misc cleanups.
show more ...
|
#
3ed8e382 |
| 08-Jan-2024 |
Dan Wu <dan1.wu@intel.com> |
x86/asyncpf: Update async page fault test for IRQ-based "page ready"
KVM switched to use interrupt for 'page ready' APF event since Linux v5.10 and the legacy mechanism using #PF was deprecated. Int
x86/asyncpf: Update async page fault test for IRQ-based "page ready"
KVM switched to use interrupt for 'page ready' APF event since Linux v5.10 and the legacy mechanism using #PF was deprecated. Interrupt-based 'page-ready' notification requires KVM_ASYNC_PF_DELIVERY_AS_INT to be set as well in MSR_KVM_ASYNC_PF_EN to enable asyncpf.
Update asyncpf.c for the new interrupt-based notification to check for (KVM_FEATURE_ASYNC_PF && KVM_FEATURE_ASYNC_PF_INT) support, and implement interrupt-based 'page-ready' handler with the necessary struct changes.
To run this test, add the QEMU option "-cpu host" to check CPUID, since KVM_FEATURE_ASYNC_PF_INT can't be detected without "-cpu host".
Opportunistically update the "help" section to describe how to setup cgroups for cgroup v1 vs. v2.
Signed-off-by: Dan Wu <dan1.wu@intel.com> Reviewed-by: Xiaoyao Li <xiaoyao.li@intel.com> Link: https://lore.kernel.org/r/20240108063014.41117-1-dan1.wu@intel.com [sean: report skip instead of fail if no async #PFs occur, massage changelog] Signed-off-by: Sean Christopherson <seanjc@google.com>
show more ...
|
#
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 ...
|
#
787f0aeb |
| 22-Nov-2022 |
Maxim Levitsky <mlevitsk@redhat.com> |
x86: replace irq_{enable|disable}() with sti()/cli()
This removes a layer of indirection which is strictly speaking not needed since its x86 code anyway.
Signed-off-by: Maxim Levitsky <mlevitsk@red
x86: replace irq_{enable|disable}() with sti()/cli()
This removes a layer of indirection which is strictly speaking not needed since its x86 code anyway.
Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com> Reviewed-by: Emanuele Giuseppe Esposito <eesposit@redhat.com> Link: https://lore.kernel.org/r/20221122161152.293072-2-mlevitsk@redhat.com [sean: move and reword IRQ shadow to be above and about safe_halt()] Signed-off-by: Sean Christopherson <seanjc@google.com>
show more ...
|
#
5c3582f0 |
| 05-Oct-2021 |
Janis Schoetterl-Glausch <scgl@linux.ibm.com> |
Use report_pass(...) instead of report(1/true, ...)
Whitespace is kept consistent with the rest of the file.
Signed-off-by: Janis Schoetterl-Glausch <scgl@linux.ibm.com> Reviewed-by: Thomas Huth <t
Use report_pass(...) instead of report(1/true, ...)
Whitespace is kept consistent with the rest of the file.
Signed-off-by: Janis Schoetterl-Glausch <scgl@linux.ibm.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Message-Id: <20211005090921.1816373-6-scgl@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
show more ...
|
#
198dfd0e |
| 05-Oct-2021 |
Janis Schoetterl-Glausch <scgl@linux.ibm.com> |
Use report_fail(...) instead of report(0/false, ...)
Whitespace is kept consistent with the rest of the file.
Signed-off-by: Janis Schoetterl-Glausch <scgl@linux.ibm.com> Reviewed-by: Thomas Huth <
Use report_fail(...) instead of report(0/false, ...)
Whitespace is kept consistent with the rest of the file.
Signed-off-by: Janis Schoetterl-Glausch <scgl@linux.ibm.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Andrew Jones <drjones@redhat.com> Message-Id: <20211005090921.1816373-5-scgl@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
show more ...
|
#
d26193a0 |
| 01-Sep-2020 |
Roman Bolshakov <r.bolshakov@yadro.com> |
lib: x86: Use portable format macros for uint32_t
Compilation of the files fails on ARCH=i386 with i686-elf gcc because they use "%x" or "%d" format specifier that does not match the actual size of
lib: x86: Use portable format macros for uint32_t
Compilation of the files fails on ARCH=i386 with i686-elf gcc because they use "%x" or "%d" format specifier that does not match the actual size of uint32_t:
x86/s3.c: In function ‘main’: x86/s3.c:53:35: error: format ‘%x’ expects argument of type ‘unsigned int’, but argument 2 has type ‘u32’ {aka ‘long unsigned int’} [-Werror=format=] 53 | printf("PM1a event registers at %x\n", fadt->pm1a_evt_blk); | ~^ ~~~~~~~~~~~~~~~~~~ | | | | | u32 {aka long unsigned int} | unsigned int | %lx
Use PRIx32 instead of "x" and PRId32 instead of "d" to take into account u32_long case.
Cc: Alex Bennée <alex.bennee@linaro.org> Cc: Andrew Jones <drjones@redhat.com> Cc: Cameron Esfahani <dirty@apple.com> Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com> Message-Id: <20200901085056.33391-6-r.bolshakov@yadro.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 ...
|
#
dcda215b |
| 23-Oct-2017 |
Paolo Bonzini <pbonzini@redhat.com> |
vmalloc: convert to alloc_ops
The final step moves the vmalloc and vmap implementation to generic code, rewriting vmalloc and vfree as an alloc_ops implementation that is installed by setup_vm.
Thi
vmalloc: convert to alloc_ops
The final step moves the vmalloc and vmap implementation to generic code, rewriting vmalloc and vfree as an alloc_ops implementation that is installed by setup_vm.
This way all architectures can benefit from it just by calling setup_vm and providing the implementation of install_page.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
c41e032a |
| 23-Oct-2017 |
Paolo Bonzini <pbonzini@redhat.com> |
x86: turn virt_to_phys_cr3 into virt_to_pte_phys
For consistency with install_page, make it accept a root page table pointer.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
#
fd6aada0 |
| 17-May-2017 |
Radim Krčmář <rkrcmar@redhat.com> |
use %# instead of 0x% in all format strings
It's one character shorter, properly prefixed, and also provides error detection: %#d triggers a warning.
Done with `sed -i 's/0x%/%#/g' **/*.[ch]` to mo
use %# instead of 0x% in all format strings
It's one character shorter, properly prefixed, and also provides error detection: %#d triggers a warning.
Done with `sed -i 's/0x%/%#/g' **/*.[ch]` to motivate the use of %#, existing padding was raised by 2 to account for the counted "0x" (output should be the same).
Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
show more ...
|
#
2ce7a6c7 |
| 17-May-2017 |
Radim Krčmář <rkrcmar@redhat.com> |
fix conversions in report()s
Fix conversions that would trigger a warning if the format was checked by a compiler.
Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: David Hildenbrand <david@
fix conversions in report()s
Fix conversions that would trigger a warning if the format was checked by a compiler.
Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: David Hildenbrand <david@redhat.com> Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
show more ...
|
#
d637cb11 |
| 19-Dec-2016 |
Andrew Jones <drjones@redhat.com> |
report already adds a newline
Signed-off-by: Andrew Jones <drjones@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
#
d10d16e1 |
| 06-Jun-2016 |
Alexander Gordeev <agordeev@redhat.com> |
x86: Cleanup PT_*_MASK flags
Cc: Andrew Jones <drjones@redhat.com> Cc: Thomas Huth <thuth@redhat.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Radim Krčmář <rkrcmar@redhat.com> Reviewed-by: Andre
x86: Cleanup PT_*_MASK flags
Cc: Andrew Jones <drjones@redhat.com> Cc: Thomas Huth <thuth@redhat.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Radim Krčmář <rkrcmar@redhat.com> Reviewed-by: Andrew Jones <drjones@redhat.com> Signed-off-by: Alexander Gordeev <agordeev@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
a7cb1259 |
| 12-Dec-2014 |
Andrew Jones <drjones@redhat.com> |
x86: asyncpf: use report
Signed-off-by: Andrew Jones <drjones@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
#
8f4755fa |
| 02-Apr-2014 |
Paolo Bonzini <pbonzini@redhat.com> |
x86: desc: reuse cstart.S GDT and TSS
There is no particular reason to use a specific TSS in tests that use task-switching. In fact, in many cases the tests just want a separate interrupt stack and
x86: desc: reuse cstart.S GDT and TSS
There is no particular reason to use a specific TSS in tests that use task-switching. In fact, in many cases the tests just want a separate interrupt stack and could run on 64-bit just as well if the task-switching is abstracted.
As a first step, remove duplicate protected mode setup from desc.c's users. Just leave some spare selectors in cstart.S's GDT before the CPUs' main TSS. Then reuse CPU 0's TSS as TSS_MAIN.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
334cd2bf |
| 09-May-2012 |
Gleb Natapov <gleb@redhat.com> |
Add async page fault test
The test checks that when hypervisor prefaults swapped in page it does not generates spurious #PFs in case page was unmapped while it was swapped out.
Signed-off-by: Marce
Add async page fault test
The test checks that when hypervisor prefaults swapped in page it does not generates spurious #PFs in case page was unmapped while it was swapped out.
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
show more ...
|