From: Catalin Marinas <catalin.marinas@arm.com>
To: Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: Will Deacon <will@kernel.org>,
kvm@vger.kernel.org, kvmarm@lists.linux.dev, maz@kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, steven.price@arm.com,
aneesh.kumar@kernel.org, oupton@kernel.org, gshan@redhat.com,
joey.gouly@arm.com, tabba@google.com, yuzenghui@huawei.com,
linux-coco@lists.linux.dev, gankulkarni@os.amperecomputing.com,
sdonthineni@nvidia.com, alpergun@google.com,
fj0570is@fujitsu.com, WeiLin.Chang@arm.com,
lpieralisi@kernel.org, enju.kohei@fujitsu.com
Subject: Re: [PATCH v18] arm64: mm: Handle Granule Protection Faults (GPFs)
Date: Tue, 29 Sep 2026 11:30:36 +0100 [thread overview]
Message-ID: <aruTTJiIheHigPSJ@arm.com> (raw)
In-Reply-To: <3934b4c9-6b1f-44fa-847e-4fb1e67a58e7@arm.com>
On Mon, Sep 28, 2026 at 11:38:01AM +0100, Suzuki K Poulose wrote:
> On 25/09/2026 18:07, Catalin Marinas wrote:
> > On Wed, Sep 23, 2026 at 05:04:06PM +0100, Suzuki K Poulose wrote:
> > > On 23/09/2026 16:45, Will Deacon wrote:
> > > > On Wed, Sep 23, 2026 at 12:06:15PM +0100, Catalin Marinas wrote:
> > > > > On Tue, Sep 22, 2026 at 06:15:34PM +0100, Will Deacon wrote:
> > > > > > On Sun, Sep 13, 2026 at 08:04:58AM +0100, Suzuki K Poulose wrote:
> > > > > > > From: Steven Price <steven.price@arm.com>
> > > > > > >
> > > > > > > If the host attempts to access granules that have been delegated for use
> > > > > > > in a realm these accesses will be caught and will trigger a Granule
> > > > > > > Protection Fault (GPF).
> > > > > > >
> > > > > > > A fault during a page walk signals a bug in the kernel and is handled by
> > > > > > > oopsing the kernel. A non-page walk fault could be caused by user space
> > > > > > > having access to a page which has been delegated to the kernel and will
> > > > > > > trigger a SIGBUS to allow debugging why user space is trying to access a
> > > > > > > delegated page.
> > > > > > >
> > > > > > > There is work in progress to unmap the guest_memfd backed private pages from the
> > > > > > > linear map. Until we get that support, we could get spurious GPFs from within
> > > > > > > the kernel, e.g., load_unaligned_zeropad(). So, try to fix them up for now.
> > > > > > >
> > > > > > > Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
> > > > > > > Reviewed-by: Gavin Shan <gshan@redhat.com>
> > > > > > > Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
> > > > > > > Signed-off-by: Steven Price <steven.price@arm.com>
> > > > > > > Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
> > > > > > > ---
> > > > > > > Changes since v17:
> > > > > > > * Pass untagged address to die_kernel_fault() - Sashiko
> > > > > > > * Explicitly check !user_mode() for fixups - Catalin
> > > > > > > * Switch to BUS_OBJERR for si_code from SI_KERNEL - Catalin
> > > > > > > * Clarify the commit description about the upcoming work on
> > > > > > > unmapping guest_memfd backed pages from linear map
> > > > > > > Changes since v16:
> > > > > > > * Update the commit description to indicate why we try to fixup GPFs
> > > > > > > Changes since v10:
> > > > > > > * Don't call arm64_notify_die() in do_gpf() but simply return 1.
> > > > > > > Changes since v2:
> > > > > > > * Include missing "Granule Protection Fault at level -1"
> > > > > > > ---
> > > > > > > arch/arm64/mm/fault.c | 30 ++++++++++++++++++++++++------
> > > > > > > 1 file changed, 24 insertions(+), 6 deletions(-)
> > > > > >
> > > > > > I still don't think we should do this, given that the plan is to unmap
> > > > > > the memory from the linear map. If this thing fires, it's a kernel bug
> > > > > > and it should be fatal.
> > > > >
> > > > > If the linear unmapping gets merged first, I agree, no need to handle
> > > > > these faults. I haven't followed that series, so no idea where it is at.
> > >
> > > There doesn't seem to be much progress on that series. Brendan
> > > volunteered to resurrect the series, taking over from Nikita [0].
> > > But looks like Brendan is not working on this anymore. Will see
> > > if someone is really planning to look at it.
> > >
> > > [0] https://lore.kernel.org/all/DJJ35VLH2PE5.DFD8OYXEOH97@linux.dev
> >
> > I just realised that this only solves part of the problem. Normal kernel
> > allocations are delegated RMM metadata and they'll also trigger GPF
>
> Other than Kdump, kernel shouldn't try to touch these metadata pages
> unless there is a kernel bug ?
Hibernate but we need to reject this as well since there's no way you
can save and restore the realm memory.
> And the userspace wouldn't have a mapping for them anyways ?
That's the aim but proposed KVM/CCA support still allows non-gmem slots
to end up delegated (I haven't checked the latest if addressed).
> > https://lore.kernel.org/all/a11aba04-eaaa-43fd-988b-a2581b1b2fdb@arm.com/
> >
> > I think rmi_delegate_range() covers the non-kdump cases, both for
> > metadata and realm memory, we could unmap the linear map there (map it
> > back in rmi_undelegate_range()).
>
> We could explore that option for the kernel allocations too.
I do wonder what we gain from unmapping. If architecturally we get a
synchronous fault when accessing delegated pages, it's only marginally
more code to do_gpf() (and we might need this function anyway for
kdump) and we avoid linear map fragmentation. So, I think we just need
to agree what's fatal and what can safely recover. We do need Alper's
patch for kdump, otherwise we can't fix it up in do_gpf().
--
Catalin
next prev parent reply other threads:[~2026-09-29 10:30 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-13 7:04 [PATCH v18] arm64: mm: Handle Granule Protection Faults (GPFs) Suzuki K Poulose
2026-09-16 16:39 ` Catalin Marinas
2026-09-16 16:56 ` Catalin Marinas
2026-09-17 7:58 ` Catalin Marinas
2026-09-17 9:03 ` Suzuki K Poulose
2026-09-17 10:36 ` Catalin Marinas
2026-09-22 8:16 ` Suzuki K Poulose
2026-09-22 13:21 ` Suzuki K Poulose
2026-09-22 14:49 ` Catalin Marinas
2026-09-22 15:14 ` Suzuki K Poulose
2026-09-28 11:01 ` Suzuki K Poulose
2026-09-29 10:40 ` Catalin Marinas
2026-09-29 10:47 ` Suzuki K Poulose
2026-09-22 17:15 ` Will Deacon
2026-09-23 11:06 ` Catalin Marinas
2026-09-23 15:45 ` Will Deacon
2026-09-23 16:04 ` Suzuki K Poulose
2026-09-24 15:43 ` Catalin Marinas
2026-09-25 17:07 ` Catalin Marinas
2026-09-28 10:38 ` Suzuki K Poulose
2026-09-29 10:30 ` Catalin Marinas [this message]
2026-09-29 10:42 ` Suzuki K Poulose
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=aruTTJiIheHigPSJ@arm.com \
--to=catalin.marinas@arm.com \
--cc=WeiLin.Chang@arm.com \
--cc=alpergun@google.com \
--cc=aneesh.kumar@kernel.org \
--cc=enju.kohei@fujitsu.com \
--cc=fj0570is@fujitsu.com \
--cc=gankulkarni@os.amperecomputing.com \
--cc=gshan@redhat.com \
--cc=joey.gouly@arm.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.linux.dev \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-coco@lists.linux.dev \
--cc=linux-kernel@vger.kernel.org \
--cc=lpieralisi@kernel.org \
--cc=maz@kernel.org \
--cc=oupton@kernel.org \
--cc=sdonthineni@nvidia.com \
--cc=steven.price@arm.com \
--cc=suzuki.poulose@arm.com \
--cc=tabba@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.