On Fri, Sep 06, 2024, Maxim Levitsky wrote: > This is a set of tests that checks KVM and CPU behaviour in regard to > canonical checks of various msrs, segment bases, instructions that > were found to ignore CR4.LA57 on CPUs that support 5 level paging. I have a variety of comments, but nothing that meaningfully changes the functionality of the testcases (mostly cosmetic stuff). I have very limited cycles for KUT right now, so I'm going to send a v2 with my changes, but I'll respond to each patch with my feedback/changes. Please holler if anything is too objectionable. > Maxim Levitsky (5): > x86: add _safe and _fep_safe variants to segment base load > instructions > x86: add a few functions for gdt manipulation > x86: move struct invpcid_desc descriptor to processor.h > Add a test for writing canonical values to various msrs and fields > nVMX: add a test for canonical checks of various host state vmcs12 > fields. > > lib/x86/desc.c | 39 ++++- > lib/x86/desc.h | 9 +- > lib/x86/msr.h | 42 ++++++ > lib/x86/processor.h | 58 +++++++- > x86/Makefile.x86_64 | 1 + > x86/canonical_57.c | 346 ++++++++++++++++++++++++++++++++++++++++++++ > x86/pcid.c | 6 - > x86/vmx_tests.c | 183 +++++++++++++++++++++++ There's no unittest.cfg change, which makes it annoyingly difficult to run the new tests. And there's already kinda sorta an LA57 test, la57.c, which just needs minor tweaking to play nice with x86-64, so I think the easiest approach is to modify la57.c to run on x86-64 and then lands these testcases there. > 8 files changed, 667 insertions(+), 17 deletions(-) > create mode 100644 x86/canonical_57.c