From: Boris Brezillon <boris.brezillon@collabora.com>
To: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Cc: Ariel D'Alessandro <ariel.dalessandro@collabora.com>,
dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,
robh@kernel.org, steven.price@arm.com,
maarten.lankhorst@linux.intel.com, mripard@kernel.org,
tzimmermann@suse.de, airlied@gmail.com, simona@ffwll.ch,
kernel@collabora.com, linux-mediatek@lists.infradead.org,
linux-arm-kernel@lists.infradead.org, sjoerd@collabora.com
Subject: Re: [PATCH v1 4/6] drm/panfrost: Add support for AARCH64_4K page table format
Date: Tue, 11 Mar 2025 11:05:20 +0100 [thread overview]
Message-ID: <20250311110520.6b79e090@collabora.com> (raw)
In-Reply-To: <16f6a6e2-4dce-4af9-bc0a-61c4d6213f02@collabora.com>
On Tue, 11 Mar 2025 10:14:44 +0100
AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
wrote:
> Il 11/03/25 09:05, Boris Brezillon ha scritto:
> > On Mon, 10 Mar 2025 16:59:19 -0300
> > Ariel D'Alessandro <ariel.dalessandro@collabora.com> wrote:
> >
> >> Currently, Panfrost only supports MMU configuration in "LEGACY" (as
> >> Bifrost calls it) mode, a (modified) version of LPAE "Large Physical
> >> Address Extension", which in Linux we've called "mali_lpae".
> >>
> >> This commit adds support for conditionally enabling AARCH64_4K page
> >> table format. To achieve that, a "GPU optional configurations" field was
> >> added to `struct panfrost_features` with the related flag.
> >>
> >> Note that, in order to enable AARCH64_4K mode, the GPU variant must have
> >> the HW_FEATURE_AARCH64_MMU feature flag present.
> >>
> >> Signed-off-by: Ariel D'Alessandro <ariel.dalessandro@collabora.com>
> >> ---
> >> drivers/gpu/drm/panfrost/panfrost_device.h | 16 +++
> >> drivers/gpu/drm/panfrost/panfrost_mmu.c | 132 +++++++++++++++++++--
> >> drivers/gpu/drm/panfrost/panfrost_regs.h | 34 ++++++
> >> 3 files changed, 169 insertions(+), 13 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/panfrost/panfrost_device.h b/drivers/gpu/drm/panfrost/panfrost_device.h
> >> index cffcb0ac7c111..0385702aa43c7 100644
> >> --- a/drivers/gpu/drm/panfrost/panfrost_device.h
> >> +++ b/drivers/gpu/drm/panfrost/panfrost_device.h
> >> @@ -42,6 +42,14 @@ enum panfrost_gpu_pm {
> >> GPU_PM_VREG_OFF,
> >> };
> >>
> >> +/**
> >> + * enum panfrost_gpu_config - GPU optional configurations
> >> + * @GPU_CONFIG_AARCH64_4K: Use AARCH64_4K page table format
> >> + */
> >> +enum panfrost_gpu_config {
> >> + GPU_CONFIG_AARCH64_4K,
> >> +};
> >> +
> >> struct panfrost_features {
> >> u16 id;
> >> u16 revision;
> >> @@ -95,6 +103,9 @@ struct panfrost_compatible {
> >>
> >> /* Allowed PM features */
> >> u8 pm_features;
> >> +
> >> + /* GPU features */
> >> + u8 gpu_configs;
> >
> > I would probably name this gpu_quirks, with the GPU_CONFIG_AARCH64_4K
> > flag renamed GPU_QUIRK_FORCE_AARCH64_PAGE_TABLE.
> >
>
> Boris, at this point the quirk should be LPAE, not AARCH64_4K, because the
> former is legacy...
It's legacy, but it's also the default in this driver. And just because
it's legacy doesn't mean it's broken :P. As Steve mentioned, there are
perf considerations to take into account, and on some platforms (most?),
it's preferable to use the legacy format because of that.
>
> I think that Ariel is right in this, as in, that's a capability of the GPU
> MMU, so if anything I would rather rename it to gpu_capabilities,
No, GPU capabilities are extracted from he GPU ID, and all Bifrost GPUs
support the aarch64 page table format. But what matters here is GPUs
that can't use the legacy page table format because it's to limited to
express the cacheability/shareability properties.
> but then
> that'd be confusing for other stuff - which means that gpu_configs is most
> probably the least confusing and/or most appropriate name for this.
Again, it's not a random configuration decision, it's something we do
because the default (legacy page table format) doesn't work, so I keep
thinking quirk is an appropriate name in this context.
Regards,
Boris
next prev parent reply other threads:[~2025-03-11 10:07 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-10 19:59 [PATCH v1 0/6] drm/panfrost: Add support for AARCH64_4K page table format Ariel D'Alessandro
2025-03-10 19:59 ` [PATCH v1 1/6] drm/panfrost: Set IOMMU_CACHE flag Ariel D'Alessandro
2025-03-11 9:16 ` AngeloGioacchino Del Regno
2025-03-14 16:17 ` Steven Price
2025-03-10 19:59 ` [PATCH v1 2/6] drm/panfrost: Use GPU_MMU_FEATURES_VA_BITS/PA_BITS macros Ariel D'Alessandro
2025-03-10 19:59 ` [PATCH v1 3/6] drm/panfrost: Unify panfrost_mmu_enable/disable common code Ariel D'Alessandro
2025-03-11 7:51 ` Boris Brezillon
2025-03-12 13:24 ` Ariel D'Alessandro
2025-03-10 19:59 ` [PATCH v1 4/6] drm/panfrost: Add support for AARCH64_4K page table format Ariel D'Alessandro
2025-03-11 8:05 ` Boris Brezillon
2025-03-11 9:14 ` AngeloGioacchino Del Regno
2025-03-11 10:05 ` Boris Brezillon [this message]
2025-03-12 18:28 ` Ariel D'Alessandro
2025-03-12 17:49 ` Ariel D'Alessandro
2025-03-11 9:10 ` AngeloGioacchino Del Regno
2025-03-12 14:20 ` Ariel D'Alessandro
2025-03-12 14:49 ` AngeloGioacchino Del Regno
2025-03-10 19:59 ` [PATCH v1 5/6] drm/panfrost: Enable AARCH64_4K page table format on mediatek_mt8188 Ariel D'Alessandro
2025-03-11 8:06 ` Boris Brezillon
2025-03-13 19:04 ` Ariel D'Alessandro
2025-03-11 9:09 ` AngeloGioacchino Del Regno
2025-03-14 16:09 ` Ariel D'Alessandro
2025-03-10 19:59 ` [PATCH v1 6/6] drm/panfrost: Set HW_FEATURE_AARCH64_MMU feature flag on Bifrost models Ariel D'Alessandro
2025-03-11 8:08 ` Boris Brezillon
2025-03-14 16:25 ` Steven Price
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=20250311110520.6b79e090@collabora.com \
--to=boris.brezillon@collabora.com \
--cc=airlied@gmail.com \
--cc=angelogioacchino.delregno@collabora.com \
--cc=ariel.dalessandro@collabora.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=kernel@collabora.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=robh@kernel.org \
--cc=simona@ffwll.ch \
--cc=sjoerd@collabora.com \
--cc=steven.price@arm.com \
--cc=tzimmermann@suse.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).