On Tue, Mar 10, 2020 at 01:34:54PM +0100, Christian Borntraeger wrote: > On 10.03.20 13:29, Christian Borntraeger wrote: > > I get the following with your patches. > > And those errors have been there before. > I will provide fixups for sync_regs_test.c and reset.c. So you patch set really has value. Yeah, another thing I intended to say in the cover-letter, but forgot, was that I hadn't tested on s390x, and that there was a chance TEST_ASSERT warnings would be found. Thanks for fixing them! drew > > > > > > > > In file included from s390x/sync_regs_test.c:21: > > s390x/sync_regs_test.c: In function ‘compare_sregs’: > > s390x/sync_regs_test.c:41:7: warning: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 6 has type ‘__u32’ {aka ‘unsigned int’} [-Wformat=] > > 41 | "Register " #reg \ > > | ^~~~~~~~~~~ > > 42 | " values did not match: 0x%llx, 0x%llx\n", \ > > 43 | left->reg, right->reg) > > | ~~~~~~~~~~~~~~~~~~~~~~ > > 44 | > > | > > 45 | static void compare_regs(struct kvm_regs *left, struct kvm_sync_regs *right) > > | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > 46 | { > > | ~ > > 47 | int i; > > | ~~~~~~ > > 48 | > > | > > 49 | for (i = 0; i < 16; i++) > > | ~~~~~~~~~~~~~~~~~~~~~~~~ > > 50 | REG_COMPARE(gprs[i]); > > | ~~~~~~~~~~~~~~~~~~~~~ > > 51 | } > > | ~ > > 52 | > > | > > 53 | static void compare_sregs(struct kvm_sregs *left, struct kvm_sync_regs *right) > > | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > 54 | { > > | ~ > > 55 | int i; > > | ~~~~~~ > > 56 | > > | > > 57 | for (i = 0; i < 16; i++) > > | ~~~~~~~~~~~~~~~~~~~~~~~~ > > 58 | REG_COMPARE(acrs[i]); > > | ~~~~~~~~~~~~~~~~~~~ > > | | > > | __u32 {aka unsigned int} > > include/test_util.h:46:43: note: in definition of macro ‘TEST_ASSERT’ > > 46 | test_assert((e), #e, __FILE__, __LINE__, fmt, ##__VA_ARGS__) > > | ^~~ > > s390x/sync_regs_test.c:58:3: note: in expansion of macro ‘REG_COMPARE’ > > 58 | REG_COMPARE(acrs[i]); > > | ^~~~~~~~~~~ > > s390x/sync_regs_test.c:41:7: warning: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 7 has type ‘__u32’ {aka ‘unsigned int’} [-Wformat=] > > 41 | "Register " #reg \ > > | ^~~~~~~~~~~ > > 42 | " values did not match: 0x%llx, 0x%llx\n", \ > > 43 | left->reg, right->reg) > > | ~~~~~~~~~~~ > > 44 | > > | > > 45 | static void compare_regs(struct kvm_regs *left, struct kvm_sync_regs *right) > > | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > 46 | { > > | ~ > > 47 | int i; > > | ~~~~~~ > > 48 | > > | > > 49 | for (i = 0; i < 16; i++) > > | ~~~~~~~~~~~~~~~~~~~~~~~~ > > 50 | REG_COMPARE(gprs[i]); > > | ~~~~~~~~~~~~~~~~~~~~~ > > 51 | } > > | ~ > > 52 | > > | > > 53 | static void compare_sregs(struct kvm_sregs *left, struct kvm_sync_regs *right) > > | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > 54 | { > > | ~ > > 55 | int i; > > | ~~~~~~ > > 56 | > > | > > 57 | for (i = 0; i < 16; i++) > > | ~~~~~~~~~~~~~~~~~~~~~~~~ > > 58 | REG_COMPARE(acrs[i]); > > | ~~~~~~~~~~~~~~~~~~~ > > | | > > | __u32 {aka unsigned int} > > include/test_util.h:46:43: note: in definition of macro ‘TEST_ASSERT’ > > 46 | test_assert((e), #e, __FILE__, __LINE__, fmt, ##__VA_ARGS__) > > | ^~~ > > s390x/sync_regs_test.c:58:3: note: in expansion of macro ‘REG_COMPARE’ > > 58 | REG_COMPARE(acrs[i]); > > | ^~~~~~~~~~~ > > s390x/sync_regs_test.c: In function ‘main’: > > s390x/sync_regs_test.c:158:7: warning: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 6 has type ‘__u32’ {aka ‘unsigned int’} [-Wformat=] > > 158 | "acr0 sync regs value incorrect 0x%llx.", > > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > 159 | run->s.regs.acrs[0]); > > | ~~~~~~~~~~~~~~~~~~~ > > | | > > | __u32 {aka unsigned int} > > include/test_util.h:46:43: note: in definition of macro ‘TEST_ASSERT’ > > 46 | test_assert((e), #e, __FILE__, __LINE__, fmt, ##__VA_ARGS__) > > | ^~~ > > s390x/sync_regs_test.c:158:44: note: format string is defined here > > 158 | "acr0 sync regs value incorrect 0x%llx.", > > | ~~~^ > > | | > > | long long unsigned int > > | > > > > > > > > On 10.03.20 12:58, Andrew Jones wrote: > >> On Tue, Mar 10, 2020 at 10:45:43AM +0100, Christian Borntraeger wrote: > >>> On 10.03.20 10:15, Andrew Jones wrote: > >>>> > >>>> Andrew Jones (4): > >>>> fixup! selftests: KVM: SVM: Add vmcall test > >>>> KVM: selftests: Share common API documentation > >>>> KVM: selftests: Enable printf format warnings for TEST_ASSERT > >>>> KVM: selftests: Use consistent message for test skipping > >>> > >>> This looks like a nice cleanup but this does not seem to apply > >>> cleanly on kvm/master or linus/master. Which tree is this based on? > >> > >> This is based on kvm/queue. Sorry, I should have mentioned that in > >> the cover letter. > >> > >> Thanks, > >> drew > >> > >>> > >>>> > >>>> tools/testing/selftests/kvm/.gitignore | 5 +- > >>>> .../selftests/kvm/demand_paging_test.c | 6 +- > >>>> tools/testing/selftests/kvm/dirty_log_test.c | 3 +- > >>>> .../testing/selftests/kvm/include/kvm_util.h | 100 ++++++++- > >>>> .../testing/selftests/kvm/include/test_util.h | 5 +- > >>>> .../selftests/kvm/lib/aarch64/processor.c | 17 -- > >>>> tools/testing/selftests/kvm/lib/assert.c | 6 +- > >>>> tools/testing/selftests/kvm/lib/kvm_util.c | 10 +- > >>>> .../selftests/kvm/lib/kvm_util_internal.h | 48 +++++ > >>>> .../selftests/kvm/lib/s390x/processor.c | 74 ------- > >>>> tools/testing/selftests/kvm/lib/test_util.c | 12 ++ > >>>> .../selftests/kvm/lib/x86_64/processor.c | 196 ++++-------------- > >>>> tools/testing/selftests/kvm/lib/x86_64/svm.c | 2 +- > >>>> tools/testing/selftests/kvm/lib/x86_64/vmx.c | 2 +- > >>>> tools/testing/selftests/kvm/s390x/memop.c | 2 +- > >>>> .../selftests/kvm/s390x/sync_regs_test.c | 2 +- > >>>> .../kvm/x86_64/cr4_cpuid_sync_test.c | 2 +- > >>>> .../testing/selftests/kvm/x86_64/evmcs_test.c | 6 +- > >>>> .../selftests/kvm/x86_64/hyperv_cpuid.c | 8 +- > >>>> .../selftests/kvm/x86_64/mmio_warning_test.c | 4 +- > >>>> .../selftests/kvm/x86_64/platform_info_test.c | 3 +- > >>>> .../kvm/x86_64/set_memory_region_test.c | 3 +- > >>>> .../testing/selftests/kvm/x86_64/state_test.c | 4 +- > >>>> .../selftests/kvm/x86_64/svm_vmcall_test.c | 3 +- > >>>> .../selftests/kvm/x86_64/sync_regs_test.c | 4 +- > >>>> .../selftests/kvm/x86_64/vmx_dirty_log_test.c | 2 +- > >>>> .../kvm/x86_64/vmx_set_nested_state_test.c | 4 +- > >>>> .../selftests/kvm/x86_64/xss_msr_test.c | 2 +- > >>>> 28 files changed, 243 insertions(+), 292 deletions(-) > >>>> > >>> > >> > > >