From: Sebastian Ene <sebastianene@google.com>
To: Marc Zyngier <maz@kernel.org>
Cc: akpm@linux-foundation.org, alexghiti@rivosinc.com,
ankita@nvidia.com, ardb@kernel.org, catalin.marinas@arm.com,
christophe.leroy@csgroup.eu, james.morse@arm.com,
vdonnefort@google.com, mark.rutland@arm.com,
oliver.upton@linux.dev, rananta@google.com, ryan.roberts@arm.com,
shahuang@redhat.com, suzuki.poulose@arm.com, will@kernel.org,
yuzenghui@huawei.com, kvmarm@lists.linux.dev,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, kernel-team@android.com
Subject: Re: [PATCH v9 0/5] arm64: ptdump: View the second stage page-tables
Date: Mon, 2 Sep 2024 07:08:24 +0000 [thread overview]
Message-ID: <ZtVkaMO0dG082KNK@google.com> (raw)
In-Reply-To: <ZtVW-CQ-G84lHUE5@google.com>
On Mon, Sep 02, 2024 at 06:11:04AM +0000, Sebastian Ene wrote:
> On Fri, Aug 30, 2024 at 04:00:11PM +0100, Marc Zyngier wrote:
> > On Fri, 30 Aug 2024 15:44:39 +0100,
> > Marc Zyngier <maz@kernel.org> wrote:
Hello Marc,
I tried with a 16Kb host under VHE on Qemu starting a 4kb guest with
kvmtool:
root@seb-qemu-pkvm-host:~# zcat /proc/config.gz | grep
"CONFIG_ARM64_[164K]*_PAGES=y"
CONFIG_ARM64_16K_PAGES=y
root@seb-qemu-pkvm-host:~# cat
/sys/kernel/debug/kvm/263-4/stage2*
2
---[ Guest IPA ]---
0x0000000000000000-0x0000000001020000 16512K 3
0x0000000001020000-0x0000000001024000 16K 3 R W X AF
0x0000000001024000-0x0000000002000000 16240K 3
0x0000000002000000-0x0000000080000000 2016M 2
0x0000000080000000-0x0000000084000000 64M 2 R W AF BLK
0x0000000084000000-0x000000008e000000 160M 2
0x000000008e000000-0x0000000090000000 32M 2 R W AF BLK
0x0000000090000000-0x0000000098000000 128M 2
0x0000000098000000-0x000000009a000000 32M 2 R W X AF BLK
0x000000009a000000-0x000000009c000000 32M 2 R W AF BLK
This looks quite right I guess and I wonder how can I repro what you are seeing ?
What kvm-arm.mode is the host running into ?
Thanks,
Seb
>
> Hello Marc,
>
> > >
> > > Hi Seb,
> >
> > [...]
> >
> > > I've been giving this a go on my test systems with 16k pages, and it
> > > doesn't really work as advertised:
> > >
> > > root@babette:/sys/kernel/debug/kvm# cat 2573-13/stage2_*
> > > 2
> > > ---[ Guest IPA ]---
> > > 0x0000000000000000-0x0000000008000000 128M
> > > 0x0000000008000000-0x00000000090a0000 17024K 3
> > > 0x00000000090a0000-0x00000000090a4000 16K 3 R W X AF
> > > 0x00000000090a4000-0x000000000a000000 15728K 3
> > >
> > > Only 16kB mapped? This is a full Linux guest running the Debian
> > > installer, and just the kernel is about 20MB (the VM has 4GB of RAM,
> > > and is using QEMU as the VMM)
> > >
> > > So clearly something isn't playing as expected. Also, this '128M'
> > > without a level being displayed makes me wonder. It is probably the
> > > QEMU flash, but then the rest of the addresses don't make much sense
> > > (RAM on QEMU is at 1GB, not at 128MB.
> > >
> > > On another system with kvmtool, I get something similar:
> > >
> > > root@duodenum:/home/maz# cat /sys/kernel/debug/kvm/*/stage2_*
> > > 2
> > > ---[ Guest IPA ]---
> > > 0x0000000000000000-0x0000000001020000 16512K 3
> > > 0x0000000001020000-0x0000000001024000 16K 3 R W X AF
> > > 0x0000000001024000-0x0000000002000000 16240K 3
> > >
> > > and kvmtool places the RAM at 2GB. Clearly not what we're seeing here.
> > >
> > > Could you please verify this?
>
> Ughh, this doesn't look right. I will give it a spin with a different
> granule, thanks for bringing me to attention. I will look first at
> mm/ptdump.c if it works as intended.
>
>
> >
> > For the record, on a 4kB host, I get much more plausible results:
> >
> > root@big-leg-emma:/home/maz# cat /sys/kernel/debug/kvm/632-12/stage2_*
> > 3
> > ---[ Guest IPA ]---
> > 0x0000000000000000-0x0000000000200000 2M 2 R AF BLK
> > 0x0000000000200000-0x0000000040000000 1022M 2
> > 0x0000000040000000-0x0000000040200000 2M 2 R W X AF BLK
> > 0x0000000040200000-0x0000000044000000 62M 2
> > 0x0000000044000000-0x0000000044200000 2M 2 R W X AF BLK
> > 0x0000000044200000-0x0000000047600000 52M 2
> > 0x0000000047600000-0x0000000047800000 2M 2 R W AF BLK
> > 0x0000000047800000-0x0000000047e00000 6M 2 R W X AF BLK
> > 0x0000000047e00000-0x0000000048000000 2M 2 R W AF BLK
> > 0x0000000048000000-0x00000000b9c00000 1820M 2
> > 0x00000000b9c00000-0x00000000b9e00000 2M 2 R W X AF BLK
> > 0x00000000b9e00000-0x00000000bb800000 26M 2
> > 0x00000000bb800000-0x00000000bba00000 2M 2 R W X AF BLK
> > 0x00000000bba00000-0x00000000bbe00000 4M 2 R W AF BLK
> > 0x00000000bbe00000-0x00000000bc200000 4M 2 R W X AF BLK
> > 0x00000000bc200000-0x00000000bc800000 6M 2 R W AF BLK
> > 0x00000000bc800000-0x00000000be400000 28M 2
> > 0x00000000be400000-0x00000000bf800000 20M 2 R W X AF BLK
> > 0x00000000bf800000-0x00000000bfe00000 6M 2 R W AF BLK
> > 0x00000000bfe00000-0x00000000c0000000 2M 2 R W X AF BLK
> >
> > So 16kB is the one that needs investigating, and I strongly suspect
> > that 64kB is in the same boat...
> >
> > Thanks,
> >
> > M. (signing off for the day)
> >
>
> Thanks,
> Sebastian
>
> > --
> > Without deviation from the norm, progress is not possible.
next prev parent reply other threads:[~2024-09-02 7:08 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-27 8:45 [PATCH v9 0/5] arm64: ptdump: View the second stage page-tables Sebastian Ene
2024-08-27 8:45 ` [PATCH v9 1/5] KVM: arm64: Move pagetable definitions to common header Sebastian Ene
2024-08-27 8:45 ` [PATCH v9 2/5] arm64: ptdump: Expose the attribute parsing functionality Sebastian Ene
2024-08-30 12:28 ` Marc Zyngier
2024-09-02 5:36 ` Sebastian Ene
2024-08-27 8:45 ` [PATCH v9 3/5] arm64: ptdump: Use the ptdump description from a local context Sebastian Ene
2024-08-27 8:45 ` [PATCH v9 4/5] KVM: arm64: Register ptdump with debugfs on guest creation Sebastian Ene
2024-08-30 10:24 ` Vincent Donnefort
2024-08-30 14:11 ` Marc Zyngier
2024-09-02 5:27 ` Sebastian Ene
2024-09-02 11:13 ` Vincent Donnefort
2024-09-02 13:45 ` Sebastian Ene
2024-09-02 5:31 ` Sebastian Ene
2024-08-27 8:45 ` [PATCH v9 5/5] KVM: arm64: Introduce the PTDUMP_STAGE2_DEBUGFS config Sebastian Ene
2024-08-30 10:26 ` Vincent Donnefort
2024-08-30 14:44 ` [PATCH v9 0/5] arm64: ptdump: View the second stage page-tables Marc Zyngier
2024-08-30 15:00 ` Marc Zyngier
2024-09-02 6:11 ` Sebastian Ene
2024-09-02 7:08 ` Sebastian Ene [this message]
2024-09-02 8:22 ` 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=ZtVkaMO0dG082KNK@google.com \
--to=sebastianene@google.com \
--cc=akpm@linux-foundation.org \
--cc=alexghiti@rivosinc.com \
--cc=ankita@nvidia.com \
--cc=ardb@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=christophe.leroy@csgroup.eu \
--cc=james.morse@arm.com \
--cc=kernel-team@android.com \
--cc=kvmarm@lists.linux.dev \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=maz@kernel.org \
--cc=oliver.upton@linux.dev \
--cc=rananta@google.com \
--cc=ryan.roberts@arm.com \
--cc=shahuang@redhat.com \
--cc=suzuki.poulose@arm.com \
--cc=vdonnefort@google.com \
--cc=will@kernel.org \
--cc=yuzenghui@huawei.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.