[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CANgfPd8KKYRXGn9Vb-BjAGrhqq0pffE5_+j9KNODvpQGQhv=hg@mail.gmail.com>
Date: Mon, 30 Aug 2021 13:58:19 -0700
From: Ben Gardon <bgardon@...gle.com>
To: Mingwei Zhang <mizhang@...gle.com>
Cc: Paolo Bonzini <pbonzini@...hat.com>, kvm <kvm@...r.kernel.org>,
LKML <linux-kernel@...r.kernel.org>,
Sean Christopherson <seanjc@...gle.com>,
David Matlack <dmatlack@...gle.com>,
Jing Zhang <jingzhangos@...gle.com>,
Peter Xu <peterx@...hat.com>
Subject: Re: [PATCH v3 1/2] selftests: KVM: align guest physical memory base
address to 1GB
On Sun, Aug 29, 2021 at 9:44 PM Mingwei Zhang <mizhang@...gle.com> wrote:
>
> Existing selftest library function always allocates GPA range that aligns
> to the end of GPA address space, ie., the allocated GPA range guarantees to
> end at the last available GPA. This ends up with the fact that selftest
> programs cannot control the alignment of the base GPA. Depending on the
> size of the allocation, the base GPA may align only on a 4K based
> bounday.
>
> The alignment of base GPA sometimes creates problems for dirty logging
> selftest where a 2MB-aligned or 1GB-aligned base GPA is needed to
> create NPT/EPT mappings for hugepages.
>
> So, fix this issue and ensure all GPA allocation starts from a 1GB bounary
> in all architectures.
>
> Cc: Sean Christopherson <seanjc@...gle.com>
> Cc: David Matlack <dmatlack@...gle.com>
> Cc: Jing Zhang <jingzhangos@...gle.com>
> Cc: Peter Xu <peterx@...hat.com>
>
> Suggested-by: Ben Gardon <bgardon@...gle.com>
> Signed-off-by: Mingwei Zhang <mizhang@...gle.com>
Reviewed-by: Ben Gardon <bgardon@...gle.com>
> ---
> tools/testing/selftests/kvm/lib/perf_test_util.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/tools/testing/selftests/kvm/lib/perf_test_util.c b/tools/testing/selftests/kvm/lib/perf_test_util.c
> index 0ef80dbdc116..96c30b8d6593 100644
> --- a/tools/testing/selftests/kvm/lib/perf_test_util.c
> +++ b/tools/testing/selftests/kvm/lib/perf_test_util.c
> @@ -93,10 +93,10 @@ struct kvm_vm *perf_test_create_vm(enum vm_guest_mode mode, int vcpus,
> guest_test_phys_mem = (vm_get_max_gfn(vm) - guest_num_pages) *
> perf_test_args.guest_page_size;
> guest_test_phys_mem &= ~(perf_test_args.host_page_size - 1);
> -#ifdef __s390x__
> - /* Align to 1M (segment size) */
> - guest_test_phys_mem &= ~((1 << 20) - 1);
> -#endif
> +
> + /* Align to 1G for all architectures */
> + guest_test_phys_mem &= ~((1 << 30) - 1);
> +
> pr_info("guest physical test memory offset: 0x%lx\n", guest_test_phys_mem);
>
> /* Add extra memory slots for testing */
> --
> 2.33.0.259.gc128427fd7-goog
>
Powered by blists - more mailing lists