From: Boris Brezillon <boris.brezillon@collabora.com>
To: Steven Price <steven.price@arm.com>
Cc: "Nicolas Boichat" <drinkcat@chromium.org>,
"Daniel Stone" <daniels@collabora.com>,
"Neil Armstrong" <neil.armstrong@linaro.org>,
"Liviu Dudau" <Liviu.Dudau@arm.com>,
dri-devel@lists.freedesktop.org,
"Clément Péron" <peron.clem@gmail.com>,
"Marty E . Plummer" <hanetzer@startmail.com>,
"Robin Murphy" <robin.murphy@arm.com>,
"Faith Ekstrand" <faith.ekstrand@collabora.com>
Subject: Re: [PATCH v2 02/15] drm/panthor: Add uAPI
Date: Mon, 4 Sep 2023 10:26:12 +0200 [thread overview]
Message-ID: <20230904102612.595840b1@collabora.com> (raw)
In-Reply-To: <fe1bd580-2c3e-555a-0c1f-34a9ac4bdf9a@arm.com>
On Mon, 4 Sep 2023 08:42:08 +0100
Steven Price <steven.price@arm.com> wrote:
> On 01/09/2023 17:10, Boris Brezillon wrote:
> > On Wed, 9 Aug 2023 18:53:15 +0200
> > Boris Brezillon <boris.brezillon@collabora.com> wrote:
> >
> >> +/**
> >> + * DOC: MMIO regions exposed to userspace.
> >> + *
> >> + * .. c:macro:: DRM_PANTHOR_USER_MMIO_OFFSET
> >> + *
> >> + * File offset for all MMIO regions being exposed to userspace. Don't use
> >> + * this value directly, use DRM_PANTHOR_USER_<name>_OFFSET values instead.
> >> + *
> >> + * .. c:macro:: DRM_PANTHOR_USER_FLUSH_ID_MMIO_OFFSET
> >> + *
> >> + * File offset for the LATEST_FLUSH_ID register. The Userspace driver controls
> >> + * GPU cache flushling through CS instructions, but the flush reduction
> >> + * mechanism requires a flush_id. This flush_id could be queried with an
> >> + * ioctl, but Arm provides a well-isolated register page containing only this
> >> + * read-only register, so let's expose this page through a static mmap offset
> >> + * and allow direct mapping of this MMIO region so we can avoid the
> >> + * user <-> kernel round-trip.
> >> + */
> >> +#define DRM_PANTHOR_USER_MMIO_OFFSET (0x1ull << 56)
> >
> > I'm playing with a 32-bit kernel/userspace, and this is problematic,
> > because vm_pgoff is limited to 32-bit there, meaning we can only map up
> > to (1ull << (PAGE_SHIFT + 32)) - 1. Should we add a DEV_QUERY to let
> > userspace set the mmio range?
>
> Hmm, I was rather hoping we could ignore 32 bit these days ;) But while
> I can't see why anyone would be running a 32 bit kernel, I guess 32 bit
> user space is likely to still be needed.
Well, I can tell you some people are using 32-bit kernels ;-).
>
> I can't really think of anything better than letting user space set the
> MMIO range. Having an ioctl which returned a special fd just for MMIO
> would be one option (which would preserve the full 44 bit GPU VA) but
> seems somewhat overkill.
Yeah, I don't think I like the separate-fd approach. Just feels like it
goes against the DRM-way of doing things. And, with 32-bit userspace,
we'd be limited by the CPU VA range anyway. Of course it's orthogonal
to the max file offset, and just because we can't map all buffers at
once, doesn't mean we don't want to be able to address more than 4G of
memory. But with 43-bit left (I think I'd prefer if we enforce a log2
value for the mmio offset/size, meaning that the max MMIO range would be
1ull << 43), that means we're still able to address 8TB of memory. I
guess that's more than enough for 32-bit users...
> Hiding the mmap within an ioctl would of course
> be bad as it breaks tools like Valgrind.
Don't like this idea either.
>
> Oh and please do make it a range - user space submission will be adding
> to the MMIO range ;)
Yeah, that was the plan (I keep usermode submission in the back of my
mind ;-)).
next prev parent reply other threads:[~2023-09-04 8:26 UTC|newest]
Thread overview: 93+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-09 16:53 [PATCH v2 00/15] drm: Add a driver for FW-based Mali GPUs Boris Brezillon
2023-08-09 16:53 ` [PATCH v2 01/15] drm/shmem-helper: Make pages_use_count an atomic_t Boris Brezillon
2023-08-11 13:08 ` Steven Price
2023-08-19 2:13 ` Dmitry Osipenko
2023-08-28 9:03 ` Boris Brezillon
2023-08-09 16:53 ` [PATCH v2 02/15] drm/panthor: Add uAPI Boris Brezillon
2023-08-11 14:13 ` Steven Price
2023-09-01 13:59 ` Liviu Dudau
2023-09-01 16:10 ` Boris Brezillon
2023-09-04 7:42 ` Steven Price
2023-09-04 8:26 ` Boris Brezillon [this message]
2023-09-04 9:26 ` Boris Brezillon
2023-09-04 15:22 ` Steven Price
2023-09-04 16:16 ` Boris Brezillon
2023-09-04 16:25 ` Robin Murphy
2023-09-06 10:55 ` Steven Price
2023-09-04 16:06 ` Robin Murphy
2023-09-06 12:18 ` Ketil Johnsen
2023-08-09 16:53 ` [PATCH v2 03/15] drm/panthor: Add GPU register definitions Boris Brezillon
2023-08-11 14:13 ` Steven Price
2023-08-29 13:00 ` Boris Brezillon
2023-08-09 16:53 ` [PATCH v2 04/15] drm/panthor: Add the device logical block Boris Brezillon
2023-08-11 15:47 ` Steven Price
2023-08-29 14:00 ` Boris Brezillon
2023-08-30 13:17 ` Steven Price
2023-08-30 14:06 ` Boris Brezillon
2023-09-04 11:46 ` Liviu Dudau
2023-08-09 16:53 ` [PATCH v2 05/15] drm/panthor: Add the GPU " Boris Brezillon
2023-08-14 10:54 ` Steven Price
2023-08-21 16:09 ` Robin Murphy
2023-08-23 8:48 ` Steven Price
2023-08-29 14:42 ` Boris Brezillon
2023-08-29 14:40 ` Boris Brezillon
2023-08-09 16:53 ` [PATCH v2 06/15] drm/panthor: Add GEM " Boris Brezillon
2023-08-14 13:40 ` Steven Price
2023-08-29 14:45 ` Boris Brezillon
2023-08-09 16:53 ` [PATCH v2 07/15] drm/panthor: Add the devfreq " Boris Brezillon
2023-08-14 13:45 ` Steven Price
2023-08-09 16:53 ` [PATCH v2 08/15] drm/panthor: Add the MMU/VM " Boris Brezillon
2023-08-14 15:53 ` Steven Price
2023-08-29 15:33 ` Boris Brezillon
2023-08-30 14:12 ` Steven Price
2023-08-30 14:53 ` Boris Brezillon
2023-08-30 15:55 ` Steven Price
2023-08-09 16:53 ` [PATCH v2 09/15] drm/panthor: Add the FW " Boris Brezillon
2023-08-16 16:01 ` Steven Price
2023-08-29 16:15 ` Boris Brezillon
2023-08-30 15:20 ` Steven Price
2023-08-09 16:53 ` [PATCH v2 10/15] drm/panthor: Add the heap " Boris Brezillon
2023-08-18 14:39 ` Steven Price
2023-08-29 16:21 ` Boris Brezillon
2023-08-09 16:53 ` [PATCH v2 11/15] drm/panthor: Add the scheduler " Boris Brezillon
2023-08-18 15:38 ` Steven Price
2023-08-29 16:36 ` Boris Brezillon
2023-08-09 16:53 ` [PATCH v2 12/15] drm/panthor: Add the driver frontend block Boris Brezillon
2023-08-21 11:31 ` Steven Price
2023-08-29 17:46 ` Boris Brezillon
2023-08-31 14:42 ` Steven Price
2023-09-06 12:38 ` Ketil Johnsen
2023-09-06 13:05 ` Boris Brezillon
2023-08-09 16:53 ` [PATCH v2 13/15] drm/panthor: Allow driver compilation Boris Brezillon
2023-08-11 16:35 ` Robin Murphy
2023-08-11 16:56 ` Daniel Stone
2023-08-11 19:26 ` Robin Murphy
2023-08-14 11:18 ` Steven Price
2023-08-21 17:56 ` Robin Murphy
2023-08-23 9:17 ` Steven Price
2023-08-29 12:51 ` Boris Brezillon
2023-08-21 12:47 ` Steven Price
2023-08-09 16:53 ` [PATCH v2 14/15] dt-bindings: gpu: mali-valhall-csf: Add initial bindings for panthor driver Boris Brezillon
2023-08-09 16:53 ` Boris Brezillon
2023-08-20 8:01 ` Krzysztof Kozlowski
2023-08-20 8:01 ` Krzysztof Kozlowski
2023-09-20 13:41 ` Liviu Dudau
2023-09-20 13:41 ` Liviu Dudau
2023-09-20 13:51 ` Krzysztof Kozlowski
2023-09-20 13:51 ` Krzysztof Kozlowski
2023-09-20 14:25 ` Liviu Dudau
2023-09-20 14:25 ` Liviu Dudau
2023-09-20 15:31 ` Krzysztof Kozlowski
2023-09-20 15:31 ` Krzysztof Kozlowski
2023-09-20 13:56 ` Boris Brezillon
2023-09-20 13:56 ` Boris Brezillon
2023-09-20 14:03 ` Liviu Dudau
2023-08-09 16:53 ` [PATCH v2 15/15] drm/panthor: Add an entry to MAINTAINERS Boris Brezillon
2023-08-11 16:08 ` Steven Price
2023-08-29 17:48 ` Boris Brezillon
2023-08-31 13:18 ` Liviu Dudau
2023-08-31 13:25 ` Boris Brezillon
2023-08-09 20:22 ` [PATCH v2 00/15] drm: Add a driver for FW-based Mali GPUs Rob Herring
2023-08-10 15:44 ` Boris Brezillon
2023-08-21 14:01 ` Rob Herring
2023-09-27 15:47 ` 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=20230904102612.595840b1@collabora.com \
--to=boris.brezillon@collabora.com \
--cc=Liviu.Dudau@arm.com \
--cc=daniels@collabora.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=drinkcat@chromium.org \
--cc=faith.ekstrand@collabora.com \
--cc=hanetzer@startmail.com \
--cc=neil.armstrong@linaro.org \
--cc=peron.clem@gmail.com \
--cc=robin.murphy@arm.com \
--cc=steven.price@arm.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.