From: Sean Christopherson <seanjc@google.com>
To: Bibo Mao <maobibo@loongson.cn>
Cc: sashiko-reviews@lists.linux.dev, kvm@vger.kernel.org,
Oliver Upton <oupton@kernel.org>,
kvmarm@lists.linux.dev, Marc Zyngier <maz@kernel.org>,
Tianrui Zhao <zhaotianrui@loongson.cn>,
Huacai Chen <chenhuacai@kernel.org>
Subject: Re: [PATCH 02/20] KVM: selftests: Bump the minimum GPA for page tables to 0x200000
Date: Thu, 27 Aug 2026 06:44:53 -0700 [thread overview]
Message-ID: <apA_Vfl0Rqyk0Ii1@google.com> (raw)
In-Reply-To: <de6deb5a-5ce8-2acf-01b8-9d597b2e3769@loongson.cn>
On Thu, Aug 27, 2026, Bibo Mao wrote:
> On 2026/8/27 上午7:38, Sean Christopherson wrote:
> > +LoongArch folks (question below for you)
> >
> > On Wed, Aug 26, 2026, sashiko-bot@kernel.org wrote:
> > > > diff --git a/tools/testing/selftests/kvm/include/kvm_util.h b/tools/testing/selftests/kvm/include/kvm_util.h
> > > > index 5a7a455b53875..70906a0d1003c 100644
> > > > --- a/tools/testing/selftests/kvm/include/kvm_util.h
> > > > +++ b/tools/testing/selftests/kvm/include/kvm_util.h
> > > > @@ -175,7 +175,7 @@ static inline struct userspace_mem_region *vm_get_mem_region(struct kvm_vm *vm,
> > > > /* Minimum allocated guest virtual and physical addresses */
> > > > #define KVM_UTIL_MIN_VADDR 0x2000
> > > > -#define KVM_GUEST_PAGE_TABLE_MIN_PADDR 0x180000
> > > > +#define KVM_GUEST_PAGE_TABLE_MIN_PADDR 0x200000
> > >
> > > [Severity: High]
> > > Does bumping the minimum GPA to 0x200000 cause the guest page tables to overlap
> > > with the VGIC redistributor on ARM64?
> >
> > This is definitely a Marc/Oliver question. FWIW, I didn't see failures on arm64,
> > but I also have no idea if the hardware I was using supports the v3 tests, so
> > it's entirely possible this is a real and obvious problem.
> >
> > > In tools/testing/selftests/kvm/arm64/vgic_init.c:subtest_v3_redist_regions(),
> > > the redistributor is hardcoded to be placed at the same address:
> > >
> > > addr = REDIST_REGION_ATTR_ADDR(2, 0x200000, 0, 0);
> > > kvm_device_attr_set(v->gic_fd, KVM_DEV_ARM_VGIC_GRP_ADDR,
> > > KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION, &addr);
> > >
> > > Because KVM maps the redistributor over memory, wouldn't the hardware MMU's
> > > stage-1 page table walk attempt to read page table entries from an emulated IO
> > > region?
> > >
> > > This seems like it would cause a stage-2 fault that KVM cannot handle for a
> > > stage-1 page table walk, leading to an infinite exception loop.
> > >
> > > Additionally, does starting allocations at 0x200000 severely reduce the
> > > available memory in memslot 0?
> > >
> > > In tools/testing/selftests/kvm/lib/kvm_util.c:vm_nr_pages_required(), memslot 0
> > > is sized to be just slightly larger than 2MB:
> > >
> > > nr_pages = 512;
> > > /* Account for the per-vCPU stacks on behalf of the test. */
> > > nr_pages += nr_runnable_vcpus * DEFAULT_STACK_PGS;
> >
> > Ugh, right, because this doesn't change the base of the memslot.
> >
> > Why does LoongArch use 0x200000 instead of 0x180000 as the base? I switched the
> > common macro purely because I thought it would be the path of least resistance,
> > but maybe "fixing" LoongArch to use KVM_GUEST_PAGE_TABLE_MIN_PADDR is easier?
> It is no limitation on LoongArch with physical address, the common address
> 0x180000 is ok. Originally it is to add huge page on VM side in future, it
> seems that it is VA address macro KVM_UTIL_MIN_VADDR rather than PA address
> for page table for huge page purpose.
Nice! In that case, I'll replace this with a patch to switch LoongArch to
KVM_GUEST_PAGE_TABLE_MIN_PADDR.
Thanks!
next prev parent reply other threads:[~2026-08-27 13:45 UTC|newest]
Thread overview: 111+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-26 23:04 [PATCH 00/20] KVM: selftests: PPC pre-enabling Sean Christopherson
2026-08-26 23:04 ` Sean Christopherson
2026-08-26 23:04 ` Sean Christopherson
2026-08-26 23:04 ` [PATCH 01/20] KVM: selftests: Use MEM_REGION_PT memslot instead of '0' for s390 regions/segments Sean Christopherson
2026-08-26 23:04 ` Sean Christopherson
2026-08-26 23:04 ` Sean Christopherson
2026-08-26 23:13 ` sashiko-bot
2026-08-26 23:04 ` [PATCH 02/20] KVM: selftests: Bump the minimum GPA for page tables to 0x200000 Sean Christopherson
2026-08-26 23:04 ` Sean Christopherson
2026-08-26 23:04 ` Sean Christopherson
2026-08-26 23:22 ` sashiko-bot
2026-08-26 23:38 ` Sean Christopherson
2026-08-27 6:34 ` Bibo Mao
2026-08-27 13:44 ` Sean Christopherson [this message]
2026-08-28 17:58 ` Claudio Imbrenda
2026-08-28 17:58 ` Claudio Imbrenda
2026-08-28 17:58 ` Claudio Imbrenda
2026-08-28 18:07 ` Sean Christopherson
2026-08-28 18:07 ` Sean Christopherson
2026-08-28 18:07 ` Sean Christopherson
2026-08-31 11:34 ` Claudio Imbrenda
2026-08-31 11:34 ` Claudio Imbrenda
2026-08-31 11:34 ` Claudio Imbrenda
2026-08-26 23:04 ` [PATCH 03/20] KVM: selftests: Use vm_alloc_page_table() to allocate LoongArch page tables Sean Christopherson
2026-08-26 23:04 ` Sean Christopherson
2026-08-26 23:04 ` Sean Christopherson
2026-08-27 6:43 ` Bibo Mao
2026-08-27 6:43 ` Bibo Mao
2026-08-27 6:43 ` Bibo Mao
2026-08-26 23:04 ` [PATCH 04/20] KVM: selftests: Rename "num" param to "nr_pages" for physical page allocators Sean Christopherson
2026-08-26 23:04 ` Sean Christopherson
2026-08-26 23:04 ` Sean Christopherson
2026-08-26 23:12 ` sashiko-bot
2026-08-26 23:04 ` [PATCH 05/20] KVM: selftests: Use goto instead of do-while to retry finding unused physical pages Sean Christopherson
2026-08-26 23:04 ` Sean Christopherson
2026-08-26 23:04 ` Sean Christopherson
2026-09-02 17:50 ` Gautam Menghani
2026-09-02 17:50 ` Gautam Menghani
2026-09-02 17:50 ` Gautam Menghani
2026-08-26 23:04 ` [PATCH 06/20] KVM: selftests: Extend page allocator to support naturally aligned allocations Sean Christopherson
2026-08-26 23:04 ` Sean Christopherson
2026-08-26 23:04 ` Sean Christopherson
2026-08-26 23:04 ` [PATCH 07/20] KVM: selftests: Make the single-page allocator APIs static inline Sean Christopherson
2026-08-26 23:04 ` Sean Christopherson
2026-08-26 23:04 ` Sean Christopherson
2026-08-26 23:04 ` [PATCH 08/20] KVM: selftests: Use the innermost page allocator API in the memslot perf test Sean Christopherson
2026-08-26 23:04 ` Sean Christopherson
2026-08-26 23:04 ` Sean Christopherson
2026-08-26 23:05 ` [PATCH 09/20] KVM: selftests: Use the innermost page allocator API in s390's IRQ routing test Sean Christopherson
2026-08-26 23:05 ` Sean Christopherson
2026-08-26 23:05 ` Sean Christopherson
2026-08-26 23:05 ` [PATCH 10/20] KVM: selftests: Add a wrapper API to allocate multiple page table pages Sean Christopherson
2026-08-26 23:05 ` Sean Christopherson
2026-08-26 23:05 ` Sean Christopherson
2026-08-27 5:27 ` Itaru Kitayama
2026-08-27 5:27 ` Itaru Kitayama
2026-08-27 5:27 ` Itaru Kitayama
2026-09-02 17:51 ` Gautam Menghani
2026-09-02 17:51 ` Gautam Menghani
2026-09-02 17:51 ` Gautam Menghani
2026-08-26 23:05 ` [PATCH 11/20] KVM: selftests: Initialize vm->memslots[] with invalid memslots during creation Sean Christopherson
2026-08-26 23:05 ` Sean Christopherson
2026-08-26 23:05 ` Sean Christopherson
2026-09-02 17:52 ` Gautam Menghani
2026-09-02 17:52 ` Gautam Menghani
2026-09-02 17:52 ` Gautam Menghani
2026-08-26 23:05 ` [PATCH 12/20] KVM: selftests: Add APIs to override memory region types with custom memslots Sean Christopherson
2026-08-26 23:05 ` Sean Christopherson
2026-08-26 23:05 ` Sean Christopherson
2026-08-26 23:05 ` [PATCH 13/20] KVM: selftests: Add TEST_EXTRA memory region type for "special" memslots Sean Christopherson
2026-08-26 23:05 ` Sean Christopherson
2026-08-26 23:05 ` Sean Christopherson
2026-08-26 23:15 ` sashiko-bot
2026-08-27 4:37 ` Itaru Kitayama
2026-08-27 4:37 ` Itaru Kitayama
2026-08-27 4:37 ` Itaru Kitayama
2026-08-26 23:05 ` [PATCH 14/20] KVM: selftests: Use TEST_EXTRA region in arm64's vGIC LPI stress test Sean Christopherson
2026-08-26 23:05 ` Sean Christopherson
2026-08-26 23:05 ` Sean Christopherson
2026-08-26 23:05 ` [PATCH 15/20] KVM: selftests: Use TEST_EXTRA region in x86's smaller MAXPHYADDR test Sean Christopherson
2026-08-26 23:05 ` Sean Christopherson
2026-08-26 23:05 ` Sean Christopherson
2026-08-26 23:05 ` [PATCH 16/20] KVM: selftests: Use TEST_EXTRA region in set memory region test Sean Christopherson
2026-08-26 23:05 ` Sean Christopherson
2026-08-26 23:05 ` Sean Christopherson
2026-08-26 23:05 ` [PATCH 17/20] KVM: selftests: Take the memory region type, not memslot, in page allocators Sean Christopherson
2026-08-26 23:05 ` Sean Christopherson
2026-08-26 23:05 ` Sean Christopherson
2026-08-26 23:05 ` [PATCH 18/20] KVM: selftests: Use TEST_ASSERT(), not assert(), in vm_get_mem_region() Sean Christopherson
2026-08-26 23:05 ` Sean Christopherson
2026-08-26 23:05 ` Sean Christopherson
2026-08-26 23:05 ` [PATCH 19/20] KVM: selftests: Automatically pick min_gpa for allocations based on region type Sean Christopherson
2026-08-26 23:05 ` Sean Christopherson
2026-08-26 23:05 ` Sean Christopherson
2026-08-26 23:19 ` sashiko-bot
2026-08-26 23:05 ` [PATCH 20/20] KVM: selftests: Add arch hook to force page tables to be naturally aligned Sean Christopherson
2026-08-26 23:05 ` Sean Christopherson
2026-08-26 23:05 ` Sean Christopherson
2026-08-26 23:18 ` sashiko-bot
2026-08-27 8:07 ` [PATCH 00/20] KVM: selftests: PPC pre-enabling Itaru Kitayama
2026-08-27 8:07 ` Itaru Kitayama
2026-08-27 8:07 ` Itaru Kitayama
2026-09-02 17:47 ` Gautam Menghani
2026-09-02 17:47 ` Gautam Menghani
2026-09-02 17:47 ` Gautam Menghani
2026-09-02 17:53 ` Sean Christopherson
2026-09-02 17:53 ` Sean Christopherson
2026-09-02 17:53 ` Sean Christopherson
2026-09-02 17:59 ` Ritesh Harjani
2026-09-02 17:59 ` Ritesh Harjani
2026-09-02 17:59 ` Ritesh Harjani
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=apA_Vfl0Rqyk0Ii1@google.com \
--to=seanjc@google.com \
--cc=chenhuacai@kernel.org \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.linux.dev \
--cc=maobibo@loongson.cn \
--cc=maz@kernel.org \
--cc=oupton@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
--cc=zhaotianrui@loongson.cn \
/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.