public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Ricardo Koller <ricarkol@google.com>
To: Auger Eric <eric.auger@redhat.com>
Cc: kvm@vger.kernel.org, kvmarm@lists.cs.columbia.edu,
	pbonzini@redhat.com, maz@kernel.org, drjones@redhat.com,
	alexandru.elisei@arm.com
Subject: Re: [PATCH v3 0/5] KVM: selftests: arm64 exception handling and debug test
Date: Fri, 14 May 2021 11:31:13 -0700	[thread overview]
Message-ID: <YJ7B8TCwvzxJLJH/@google.com> (raw)
In-Reply-To: <aeeec52e-5a13-be39-3b9c-cf25a27b97b1@redhat.com>

On Thu, May 13, 2021 at 08:37:33AM +0200, Auger Eric wrote:
> Hi Ricardo,
> 
> On 5/13/21 2:27 AM, Ricardo Koller wrote:
> > 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
> > 
> > v2 -> v3:
> > 
> > Addressed comments from Andrew and Marc (thanks again). Also, many thanks for
> > the reviews and tests from Eric and Zenghui.
> You are welcome. This version does not fail anymore on Cavium Sabre so
> this looks to fix the previously reported issue.
> 
> Thanks

Great, thanks Eric. The issue was that writing to mdscr needed ISBs
afterward (discovered by Zenghui).

> 
> Eric
> > - add missing ISBs after writing into debug registers.
> > - not store/restore of sp_el0 on exceptions.
> > - add default handlers for Error and FIQ.
> > - change multiple TEST_ASSERT(false, ...) to TEST_FAIL.
> > - use Andrew's suggestion regarding __GUEST_ASSERT modifications
> >   in order to easier implement GUEST_ASSERT_EQ (Thanks Andrew).
> > 
> > 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  | 250 ++++++++++++++++++
> >  .../selftests/kvm/include/aarch64/processor.h |  83 +++++-
> >  .../testing/selftests/kvm/include/kvm_util.h  |  23 +-
> >  .../selftests/kvm/include/x86_64/processor.h  |   4 +-
> >  .../selftests/kvm/lib/aarch64/handlers.S      | 124 +++++++++
> >  .../selftests/kvm/lib/aarch64/processor.c     | 131 +++++++++
> >  .../selftests/kvm/lib/x86_64/processor.c      |  22 +-
> >  .../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, 615 insertions(+), 47 deletions(-)
> >  create mode 100644 tools/testing/selftests/kvm/aarch64/debug-exceptions.c
> >  create mode 100644 tools/testing/selftests/kvm/lib/aarch64/handlers.S
> > 
> 

  reply	other threads:[~2021-05-14 18:31 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-13  0:27 [PATCH v3 0/5] KVM: selftests: arm64 exception handling and debug test Ricardo Koller
2021-05-13  0:27 ` [PATCH v3 1/5] KVM: selftests: Rename vm_handle_exception Ricardo Koller
2021-05-13  0:27 ` [PATCH v3 2/5] KVM: selftests: Introduce UCALL_UNHANDLED for unhandled vector reporting Ricardo Koller
2021-05-13  0:28 ` [PATCH v3 3/5] KVM: selftests: Move GUEST_ASSERT_EQ to utils header Ricardo Koller
2021-05-13  7:35   ` Andrew Jones
2021-05-16  9:50   ` Auger Eric
2021-05-13  0:28 ` [PATCH v3 4/5] KVM: selftests: Add exception handling support for aarch64 Ricardo Koller
2021-05-13  8:05   ` Andrew Jones
2021-05-13  0:28 ` [PATCH v3 5/5] KVM: selftests: Add aarch64/debug-exceptions test Ricardo Koller
2021-05-13  6:37 ` [PATCH v3 0/5] KVM: selftests: arm64 exception handling and debug test Auger Eric
2021-05-14 18:31   ` Ricardo Koller [this message]
2021-06-01  9:34 ` 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=YJ7B8TCwvzxJLJH/@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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox