All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoffer Dall <christoffer.dall@arm.com>
To: Andrew Jones <drjones@redhat.com>
Cc: kvm@vger.kernel.org, marc.zyngier@arm.com, pbonzini@redhat.com,
	kvmarm@lists.cs.columbia.edu
Subject: Re: [PATCH 00/13] kvm: selftests: add aarch64 framework and dirty
Date: Mon, 29 Oct 2018 18:40:02 +0100	[thread overview]
Message-ID: <20181029174002.GB12057@e113682-lin.lund.arm.com> (raw)
In-Reply-To: <20180918175436.19742-1-drjones@redhat.com>

Hi Drew,

On Tue, Sep 18, 2018 at 07:54:23PM +0200, Andrew Jones wrote:
> This series provides KVM selftests that test dirty log tracking on
> AArch64 for both 4K and 64K guest page sizes. Additionally the
> framework provides an easy way to test dirty log tracking with the
> recently posted dynamic IPA and 52bit IPA series[1].

I was trying to parse the commit text of patch 2, and I realized that I
don't understand the 'hypercall to userspace' thing at all, which
probably means I have no idea how the selftests work overall.

I then spent a while reading various bits of documentation in the kernel
tree, LWN, etc., only to realize that I don't understand how this test
framework actually works.

Are the selftests modules, userspace programs, or code that is compiled
with the kernel, and (somehow?) run from userspace.  I thought the
latter, partially based on your explanation at ELC, but then I don't
understand how the "compile and run" make target works.

Can you help me paint the overall picture, or point me to the piece of
documentation/presentation that explains the high-level picture, which I
must have obviously missed somehow?


Thanks!

    Christoffer

> 
> The series breaks down into parts as follows:
> 
>  01-02: generalize guest code to host userspace exit support by
>         introducing "ucalls" - hypercalls to userspace
>  03-05: prepare common code for a new architecture
>  06-07: add virtual memory setup support for AArch64
>     08: add vcpu setup support for AArch64
>     09: port the dirty log test to AArch64
>  10-11: add 64K guest page size support for the dirty log test
>  12-13: prepare the dirty log test to also test > 40-bit guest
>         physical address setups by allowing the test memory
>         region to be placed at the top of physical memory
> 
> [1] https://www.spinics.net/lists/arm-kernel/msg676819.html
> 
> Thanks,
> drew
> 
> 
> Andrew Jones (13):
>   kvm: selftests: vcpu_setup: set cr4.osfxsr
>   kvm: selftests: introduce ucall
>   kvm: selftests: move arch-specific files to arch-specific locations
>   kvm: selftests: add cscope make target
>   kvm: selftests: tidy up kvm_util
>   kvm: selftests: add vm_phy_pages_alloc
>   kvm: selftests: add virt mem support for aarch64
>   kvm: selftests: add vcpu support for aarch64
>   kvm: selftests: port dirty_log_test to aarch64
>   kvm: selftests: introduce new VM mode for 64K pages
>   kvm: selftests: dirty_log_test: also test 64K pages on aarch64
>   kvm: selftests: stop lying to aarch64 tests about PA-bits
>   kvm: selftests: support high GPAs in dirty_log_test
> 
>  tools/testing/selftests/kvm/.gitignore        |  11 +-
>  tools/testing/selftests/kvm/Makefile          |  36 +-
>  tools/testing/selftests/kvm/dirty_log_test.c  | 374 +++++++++----
>  .../selftests/kvm/include/aarch64/processor.h |  55 ++
>  .../testing/selftests/kvm/include/kvm_util.h  | 166 +++---
>  .../testing/selftests/kvm/include/sparsebit.h |   6 +-
>  .../testing/selftests/kvm/include/test_util.h |   6 +-
>  .../kvm/include/{x86.h => x86_64/processor.h} |  24 +-
>  .../selftests/kvm/include/{ => x86_64}/vmx.h  |   6 +-
>  .../selftests/kvm/lib/aarch64/processor.c     | 311 +++++++++++
>  tools/testing/selftests/kvm/lib/assert.c      |   2 +-
>  tools/testing/selftests/kvm/lib/kvm_util.c    | 499 +++++++-----------
>  .../selftests/kvm/lib/kvm_util_internal.h     |  33 +-
>  tools/testing/selftests/kvm/lib/ucall.c       | 144 +++++
>  .../kvm/lib/{x86.c => x86_64/processor.c}     | 197 ++++++-
>  .../selftests/kvm/lib/{ => x86_64}/vmx.c      |   4 +-
>  .../kvm/{ => x86_64}/cr4_cpuid_sync_test.c    |  14 +-
>  .../kvm/{ => x86_64}/set_sregs_test.c         |   2 +-
>  .../selftests/kvm/{ => x86_64}/state_test.c   |  25 +-
>  .../kvm/{ => x86_64}/sync_regs_test.c         |   2 +-
>  .../kvm/{ => x86_64}/vmx_tsc_adjust_test.c    |  23 +-
>  21 files changed, 1329 insertions(+), 611 deletions(-)
>  create mode 100644 tools/testing/selftests/kvm/include/aarch64/processor.h
>  rename tools/testing/selftests/kvm/include/{x86.h => x86_64/processor.h} (98%)
>  rename tools/testing/selftests/kvm/include/{ => x86_64}/vmx.h (99%)
>  create mode 100644 tools/testing/selftests/kvm/lib/aarch64/processor.c
>  create mode 100644 tools/testing/selftests/kvm/lib/ucall.c
>  rename tools/testing/selftests/kvm/lib/{x86.c => x86_64/processor.c} (85%)
>  rename tools/testing/selftests/kvm/lib/{ => x86_64}/vmx.c (99%)
>  rename tools/testing/selftests/kvm/{ => x86_64}/cr4_cpuid_sync_test.c (91%)
>  rename tools/testing/selftests/kvm/{ => x86_64}/set_sregs_test.c (98%)
>  rename tools/testing/selftests/kvm/{ => x86_64}/state_test.c (90%)
>  rename tools/testing/selftests/kvm/{ => x86_64}/sync_regs_test.c (99%)
>  rename tools/testing/selftests/kvm/{ => x86_64}/vmx_tsc_adjust_test.c (91%)
> 
> -- 
> 2.17.1
> 

  parent reply	other threads:[~2018-10-29 17:40 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-18 17:54 [PATCH 00/13] kvm: selftests: add aarch64 framework and dirty Andrew Jones
2018-09-18 17:54 ` [PATCH 01/13] kvm: selftests: vcpu_setup: set cr4.osfxsr Andrew Jones
2018-09-18 17:54 ` [PATCH 02/13] kvm: selftests: introduce ucall Andrew Jones
2018-09-18 17:54 ` [PATCH 03/13] kvm: selftests: move arch-specific files to arch-specific locations Andrew Jones
2018-09-18 17:54 ` [PATCH 04/13] kvm: selftests: add cscope make target Andrew Jones
2018-09-18 17:54 ` [PATCH 05/13] kvm: selftests: tidy up kvm_util Andrew Jones
2018-09-18 17:54 ` [PATCH 06/13] kvm: selftests: add vm_phy_pages_alloc Andrew Jones
2018-09-18 17:54 ` [PATCH 07/13] kvm: selftests: add virt mem support for aarch64 Andrew Jones
2018-09-18 17:54 ` [PATCH 08/13] kvm: selftests: add vcpu " Andrew Jones
2018-09-18 17:54 ` [PATCH 09/13] kvm: selftests: port dirty_log_test to aarch64 Andrew Jones
2018-09-18 17:54 ` [PATCH 10/13] kvm: selftests: introduce new VM mode for 64K pages Andrew Jones
2018-09-18 17:54 ` [PATCH 11/13] kvm: selftests: dirty_log_test: also test 64K pages on aarch64 Andrew Jones
2018-09-18 17:54 ` [PATCH 12/13] kvm: selftests: stop lying to aarch64 tests about PA-bits Andrew Jones
2018-09-18 17:54 ` [PATCH 13/13] kvm: selftests: support high GPAs in dirty_log_test Andrew Jones
2018-09-19 12:37 ` [PATCH 00/13] kvm: selftests: add aarch64 framework and dirty Andrew Jones
2018-09-19 13:13   ` Suzuki K Poulose
2018-10-29 17:40 ` Christoffer Dall [this message]
2018-10-30 17:38   ` Andrew Jones
2018-10-30 17:50     ` Paolo Bonzini
2018-11-01  9:08     ` Christoffer Dall
2018-11-01  9:31       ` Andrew Jones

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=20181029174002.GB12057@e113682-lin.lund.arm.com \
    --to=christoffer.dall@arm.com \
    --cc=drjones@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=kvmarm@lists.cs.columbia.edu \
    --cc=marc.zyngier@arm.com \
    --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 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.