From: Boris Brezillon <boris.brezillon@collabora.com>
To: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Steven Price <steven.price@arm.com>,
dri-devel@lists.freedesktop.org,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
Maxime Ripard <mripard@kernel.org>,
David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
Faith Ekstrand <faith.ekstrand@collabora.com>,
kernel@collabora.com
Subject: Re: [PATCH v4 02/14] drm/gem: Add a drm_gem_object_funcs::sync() and a drm_gem_sync() helper
Date: Thu, 16 Oct 2025 11:40:16 +0200 [thread overview]
Message-ID: <20251016114016.12bb49cd@fedora> (raw)
In-Reply-To: <f89987b9-2df8-45ab-8b53-6a210a30ce50@suse.de>
Hi Thomas,
On Thu, 16 Oct 2025 10:32:46 +0200
Thomas Zimmermann <tzimmermann@suse.de> wrote:
> Hi,
>
> on patches 2 to 4: sync is really begin/end access wrapped into one
> interface, which I find questionable. I also don't like that these
> patches add generic infrastructure for a single driver.
It's actually two drivers (panfrost and panthor), and the interface is
here so other drivers relying on drm_gem_shmem don't have to hand-roll
these things in the future.
>
> My proposal is to make your own dma_buf exporter in panthor and set the
> begin/end_cpu_access functions as you need. Panthor already contains its
> own GEM export helper at [1]. If you inline drm_gem_prime_export() [2]
> you can set the cpu_access callbacks to panthor-specific code. The other
> dma-buf helpers' symbols should be exported and can be re-used. That is
> a lot less intrusive and should provide what you need.
I can of course do that in panthor, but then I'll have to duplicate
the same logic in panfrost. Also, the whole point of making it generic
is so that people don't forget that begin/end_cpu_access() is a thing
they should consider (like happened to me if you look at v2 of this
patchset), otherwise importers of their buffers might have unpleasant
side effects because of missing flush/invalidates. This, IMHO, is a good
reason to have it as a drm_gem_funcs::sync() callback. That, or we
decide that the default dma_buf_ops is not a thing, and we force
developers to think twice when they select the default hooks to pick
for their dma_buf implementation.
>
> I found that a hand full of other DRM drivers implement dma-buf's
> begin/end access callbacks. If you want a generic begin/end interface
> for GEM, you certainly want to get them on board. If there's something
> common to share, this should be done in a separate series.
Fair enough. I'll try to convert freedreno and imagination to this new
interface, and gather some feedback.
Regards,
Boris
next prev parent reply other threads:[~2025-10-16 9:40 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-15 16:03 [PATCH v4 00/14] drm/panfrost, panthor: Cached maps and explicit flushing Boris Brezillon
2025-10-15 16:03 ` [PATCH v4 01/14] drm/panthor: Fix panthor_gpu_coherency_set() Boris Brezillon
2025-10-15 16:03 ` [PATCH v4 02/14] drm/gem: Add a drm_gem_object_funcs::sync() and a drm_gem_sync() helper Boris Brezillon
2025-10-16 8:13 ` Maxime Ripard
2025-10-16 12:57 ` Boris Brezillon
2025-10-16 13:07 ` Boris Brezillon
2025-10-29 9:30 ` Maxime Ripard
2025-10-30 14:07 ` Boris Brezillon
2025-10-16 8:32 ` Thomas Zimmermann
2025-10-16 9:40 ` Boris Brezillon [this message]
2025-10-16 9:58 ` Thomas Zimmermann
2025-10-16 10:32 ` Boris Brezillon
2025-10-16 11:42 ` Thomas Zimmermann
2025-10-16 12:24 ` Boris Brezillon
2025-10-30 14:11 ` Boris Brezillon
2025-10-17 14:32 ` Faith Ekstrand
2025-10-17 14:40 ` Faith Ekstrand
2025-10-17 15:26 ` Boris Brezillon
2025-10-17 15:35 ` Faith Ekstrand
2025-10-17 15:50 ` Boris Brezillon
2025-10-17 15:57 ` Faith Ekstrand
2025-10-17 16:35 ` Boris Brezillon
2025-10-15 16:03 ` [PATCH v4 03/14] drm/prime: Provide default ::{begin, end}_cpu_access() implementations Boris Brezillon
2025-10-15 16:03 ` [PATCH v4 04/14] drm/shmem: Add a drm_gem_shmem_sync() helper Boris Brezillon
2025-10-15 16:03 ` [PATCH v4 05/14] drm/panthor: Expose the selected coherency protocol to the UMD Boris Brezillon
2025-10-15 16:03 ` [PATCH v4 06/14] drm/panthor: Add a PANTHOR_BO_SYNC ioctl Boris Brezillon
2025-10-15 16:03 ` [PATCH v4 07/14] drm/panthor: Add an ioctl to query BO flags Boris Brezillon
2025-10-15 16:03 ` [PATCH v4 08/14] drm/panthor: Add flag to map GEM object Write-Back Cacheable Boris Brezillon
2025-10-15 16:03 ` [PATCH v4 09/14] drm/panthor: Bump the driver version to 1.6 Boris Brezillon
2025-10-15 16:03 ` [PATCH v4 10/14] drm/panfrost: Expose the selected coherency protocol to the UMD Boris Brezillon
2025-10-15 16:06 ` Steven Price
2025-10-15 16:03 ` [PATCH v4 11/14] drm/panfrost: Add a PANFROST_SYNC_BO ioctl Boris Brezillon
2025-10-16 8:42 ` Marcin Ślusarz
2025-10-16 9:52 ` Boris Brezillon
2025-10-16 10:02 ` Marcin Ślusarz
2025-10-16 10:35 ` Boris Brezillon
2025-10-15 16:03 ` [PATCH v4 12/14] drm/panfrost: Add an ioctl to query BO flags Boris Brezillon
2025-10-15 16:03 ` [PATCH v4 13/14] drm/panfrost: Add flag to map GEM object Write-Back Cacheable Boris Brezillon
2025-10-15 16:06 ` Steven Price
2025-10-15 16:03 ` [PATCH v4 14/14] drm/panfrost: Bump the driver version to 1.6 Boris Brezillon
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=20251016114016.12bb49cd@fedora \
--to=boris.brezillon@collabora.com \
--cc=airlied@gmail.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=faith.ekstrand@collabora.com \
--cc=kernel@collabora.com \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=simona@ffwll.ch \
--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 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.