From: Ricardo Koller <ricarkol@google.com> To: kvm@vger.kernel.org, kvmarm@lists.cs.columbia.edu Cc: pbonzini@redhat.com, maz@kernel.org, drjones@redhat.com, alexandru.elisei@arm.com, eric.auger@redhat.com, Ricardo Koller <ricarkol@google.com> Subject: [PATCH v2 0/5] KVM: selftests: arm64 exception handling and debug test Date: Fri, 30 Apr 2021 16:24:02 -0700 [thread overview] Message-ID: <20210430232408.2707420-1-ricarkol@google.com> (raw) Hi, These patches add a debug exception test in aarch64 KVM selftests while also adding basic exception handling support. The structure of the exception handling is based on its x86 counterpart. Tests use the same calls to initialize exception handling and both architectures allow tests to override the handler for a particular vector, or (vector, ec) for synchronous exceptions in the arm64 case. The debug test is similar to x86_64/debug_regs, except that the x86 one controls the debugging from outside the VM. This proposed arm64 test controls and handles debug exceptions from the inside. Thanks, Ricardo v1 -> v2: Addressed comments from Andrew and Marc (thank you very much): - rename vm_handle_exception in all tests. - introduce UCALL_UNHANDLED in x86 first. - move GUEST_ASSERT_EQ to common utils header. - handle sync and other exceptions separately: use two tables (like kvm-unit-tests). - add two separate functions for installing sync versus other exceptions - changes in handlers.S: use the same layout as user_pt_regs, treat the EL1t vectors as invalid, refactor the vector table creation to not use manual numbering, add comments, remove LR from the stored registers. - changes in debug-exceptions.c: remove unused headers, use the common GUEST_ASSERT_EQ, use vcpu_run instead of _vcpu_run. - changes in processor.h: write_sysreg with support for xzr, replace EL1 with current in macro names, define ESR_EC_MASK as ESR_EC_NUM-1. Ricardo Koller (5): KVM: selftests: Rename vm_handle_exception KVM: selftests: Introduce UCALL_UNHANDLED for unhandled vector reporting KVM: selftests: Move GUEST_ASSERT_EQ to utils header KVM: selftests: Add exception handling support for aarch64 KVM: selftests: Add aarch64/debug-exceptions test tools/testing/selftests/kvm/.gitignore | 1 + tools/testing/selftests/kvm/Makefile | 3 +- .../selftests/kvm/aarch64/debug-exceptions.c | 244 ++++++++++++++++++ .../selftests/kvm/include/aarch64/processor.h | 90 ++++++- .../testing/selftests/kvm/include/kvm_util.h | 10 + .../selftests/kvm/include/x86_64/processor.h | 4 +- .../selftests/kvm/lib/aarch64/handlers.S | 130 ++++++++++ .../selftests/kvm/lib/aarch64/processor.c | 124 +++++++++ .../selftests/kvm/lib/x86_64/processor.c | 19 +- .../selftests/kvm/x86_64/kvm_pv_test.c | 2 +- .../selftests/kvm/x86_64/tsc_msrs_test.c | 9 - .../kvm/x86_64/userspace_msr_exit_test.c | 8 +- .../selftests/kvm/x86_64/xapic_ipi_test.c | 2 +- 13 files changed, 611 insertions(+), 35 deletions(-) create mode 100644 tools/testing/selftests/kvm/aarch64/debug-exceptions.c create mode 100644 tools/testing/selftests/kvm/lib/aarch64/handlers.S -- 2.31.1.527.g47e6f16901-goog
WARNING: multiple messages have this Message-ID (diff)
From: Ricardo Koller <ricarkol@google.com> To: kvm@vger.kernel.org, kvmarm@lists.cs.columbia.edu Cc: maz@kernel.org, pbonzini@redhat.com Subject: [PATCH v2 0/5] KVM: selftests: arm64 exception handling and debug test Date: Fri, 30 Apr 2021 16:24:02 -0700 [thread overview] Message-ID: <20210430232408.2707420-1-ricarkol@google.com> (raw) Hi, These patches add a debug exception test in aarch64 KVM selftests while also adding basic exception handling support. The structure of the exception handling is based on its x86 counterpart. Tests use the same calls to initialize exception handling and both architectures allow tests to override the handler for a particular vector, or (vector, ec) for synchronous exceptions in the arm64 case. The debug test is similar to x86_64/debug_regs, except that the x86 one controls the debugging from outside the VM. This proposed arm64 test controls and handles debug exceptions from the inside. Thanks, Ricardo v1 -> v2: Addressed comments from Andrew and Marc (thank you very much): - rename vm_handle_exception in all tests. - introduce UCALL_UNHANDLED in x86 first. - move GUEST_ASSERT_EQ to common utils header. - handle sync and other exceptions separately: use two tables (like kvm-unit-tests). - add two separate functions for installing sync versus other exceptions - changes in handlers.S: use the same layout as user_pt_regs, treat the EL1t vectors as invalid, refactor the vector table creation to not use manual numbering, add comments, remove LR from the stored registers. - changes in debug-exceptions.c: remove unused headers, use the common GUEST_ASSERT_EQ, use vcpu_run instead of _vcpu_run. - changes in processor.h: write_sysreg with support for xzr, replace EL1 with current in macro names, define ESR_EC_MASK as ESR_EC_NUM-1. Ricardo Koller (5): KVM: selftests: Rename vm_handle_exception KVM: selftests: Introduce UCALL_UNHANDLED for unhandled vector reporting KVM: selftests: Move GUEST_ASSERT_EQ to utils header KVM: selftests: Add exception handling support for aarch64 KVM: selftests: Add aarch64/debug-exceptions test tools/testing/selftests/kvm/.gitignore | 1 + tools/testing/selftests/kvm/Makefile | 3 +- .../selftests/kvm/aarch64/debug-exceptions.c | 244 ++++++++++++++++++ .../selftests/kvm/include/aarch64/processor.h | 90 ++++++- .../testing/selftests/kvm/include/kvm_util.h | 10 + .../selftests/kvm/include/x86_64/processor.h | 4 +- .../selftests/kvm/lib/aarch64/handlers.S | 130 ++++++++++ .../selftests/kvm/lib/aarch64/processor.c | 124 +++++++++ .../selftests/kvm/lib/x86_64/processor.c | 19 +- .../selftests/kvm/x86_64/kvm_pv_test.c | 2 +- .../selftests/kvm/x86_64/tsc_msrs_test.c | 9 - .../kvm/x86_64/userspace_msr_exit_test.c | 8 +- .../selftests/kvm/x86_64/xapic_ipi_test.c | 2 +- 13 files changed, 611 insertions(+), 35 deletions(-) create mode 100644 tools/testing/selftests/kvm/aarch64/debug-exceptions.c create mode 100644 tools/testing/selftests/kvm/lib/aarch64/handlers.S -- 2.31.1.527.g47e6f16901-goog _______________________________________________ kvmarm mailing list kvmarm@lists.cs.columbia.edu https://lists.cs.columbia.edu/mailman/listinfo/kvmarm
next reply other threads:[~2021-04-30 23:24 UTC|newest] Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-04-30 23:24 Ricardo Koller [this message] 2021-04-30 23:24 ` [PATCH v2 0/5] KVM: selftests: arm64 exception handling and debug test Ricardo Koller 2021-04-30 23:24 ` [PATCH v2 1/5] KVM: selftests: Rename vm_handle_exception Ricardo Koller 2021-04-30 23:24 ` Ricardo Koller 2021-05-03 11:02 ` Andrew Jones 2021-05-03 11:02 ` Andrew Jones 2021-05-06 12:27 ` Auger Eric 2021-05-06 12:27 ` Auger Eric 2021-04-30 23:24 ` [PATCH v2 2/5] KVM: selftests: Introduce UCALL_UNHANDLED for unhandled vector reporting Ricardo Koller 2021-04-30 23:24 ` Ricardo Koller 2021-05-03 11:09 ` Andrew Jones 2021-05-03 11:09 ` Andrew Jones 2021-05-06 12:27 ` Auger Eric 2021-05-06 12:27 ` Auger Eric 2021-04-30 23:24 ` [PATCH v2 3/5] KVM: selftests: Move GUEST_ASSERT_EQ to utils header Ricardo Koller 2021-04-30 23:24 ` Ricardo Koller 2021-05-03 11:31 ` Andrew Jones 2021-05-03 11:31 ` Andrew Jones 2021-04-30 23:24 ` [PATCH v2 4/5] KVM: selftests: Add exception handling support for aarch64 Ricardo Koller 2021-04-30 23:24 ` Ricardo Koller 2021-05-03 10:32 ` Marc Zyngier 2021-05-03 10:32 ` Marc Zyngier 2021-05-03 19:12 ` Ricardo Koller 2021-05-03 19:12 ` Ricardo Koller 2021-05-06 12:30 ` Auger Eric 2021-05-06 12:30 ` Auger Eric 2021-05-06 19:14 ` Ricardo Koller 2021-05-06 19:14 ` Ricardo Koller 2021-05-07 14:08 ` Auger Eric 2021-05-07 14:08 ` Auger Eric 2021-05-07 17:54 ` Ricardo Koller 2021-05-07 17:54 ` Ricardo Koller 2021-05-12 7:27 ` Ricardo Koller 2021-05-12 7:27 ` Ricardo Koller 2021-05-12 8:19 ` Auger Eric 2021-05-12 8:19 ` Auger Eric 2021-05-12 8:33 ` Marc Zyngier 2021-05-12 8:33 ` Marc Zyngier 2021-05-12 8:52 ` Auger Eric 2021-05-12 8:52 ` Auger Eric 2021-05-12 16:06 ` Ricardo Koller 2021-05-12 16:06 ` Ricardo Koller 2021-05-12 12:59 ` Zenghui Yu 2021-05-12 12:59 ` Zenghui Yu 2021-05-12 13:43 ` Marc Zyngier 2021-05-12 13:43 ` Marc Zyngier 2021-05-12 16:03 ` Ricardo Koller 2021-05-12 16:03 ` Ricardo Koller 2021-05-12 16:18 ` Marc Zyngier 2021-05-12 16:18 ` Marc Zyngier 2021-05-12 21:39 ` Ricardo Koller 2021-05-12 21:39 ` Ricardo Koller 2021-05-07 14:31 ` Marc Zyngier 2021-05-07 14:31 ` Marc Zyngier 2021-05-07 18:02 ` Ricardo Koller 2021-05-07 18:02 ` Ricardo Koller 2021-05-03 12:39 ` Andrew Jones 2021-05-03 12:39 ` Andrew Jones 2021-04-30 23:24 ` [PATCH v2 5/5] KVM: selftests: Add aarch64/debug-exceptions test Ricardo Koller 2021-04-30 23:24 ` Ricardo Koller 2021-05-03 12:49 ` Andrew Jones 2021-05-03 12:49 ` Andrew Jones 2021-05-24 12:14 ` [PATCH v2 0/5] KVM: selftests: arm64 exception handling and debug test Paolo Bonzini 2021-05-24 12:14 ` Paolo Bonzini 2021-05-24 12:59 ` Marc Zyngier 2021-05-24 12:59 ` Marc Zyngier
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210430232408.2707420-1-ricarkol@google.com \ --to=ricarkol@google.com \ --cc=alexandru.elisei@arm.com \ --cc=drjones@redhat.com \ --cc=eric.auger@redhat.com \ --cc=kvm@vger.kernel.org \ --cc=kvmarm@lists.cs.columbia.edu \ --cc=maz@kernel.org \ --cc=pbonzini@redhat.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.