From: Boris Brezillon <boris.brezillon@collabora.com>
To: "Adrián Larumbe" <adrian.larumbe@collabora.com>
Cc: Steven Price <steven.price@arm.com>,
linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
kernel@collabora.com, Liviu Dudau <liviu.dudau@arm.com>,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
Maxime Ripard <mripard@kernel.org>,
Thomas Zimmermann <tzimmermann@suse.de>,
David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
Daniel Almeida <daniel.almeida@collabora.com>,
Alice Ryhl <aliceryhl@google.com>
Subject: Re: [PATCH v11 5/6] drm/panthor: Support sparse mappings
Date: Wed, 20 May 2026 08:16:08 +0200 [thread overview]
Message-ID: <20260520081608.0122a1d4@fedora> (raw)
In-Reply-To: <agy06w1k_rbiZTFN@sobremesa>
On Tue, 19 May 2026 20:15:34 +0100
Adrián Larumbe <adrian.larumbe@collabora.com> wrote:
> Hi Steven,
>
> On 13.05.2026 16:46, Steven Price wrote:
> > On 07/05/2026 22:49, Adrián Larumbe wrote:
> > > Allow UM to bind sparsely populated memory regions by cyclically mapping
> > > virtual ranges over a kernel-allocated dummy BO. This alternative is
> > > preferable to the old method of handling sparseness in the UMD, because it
> > > relied on the creation of a buffer object to the same end, despite the fact
> > > Vulkan sparse resources don't need to be backed by a driver BO.
> > >
> > > The choice of backing sparsely-bound regions with a Panthor BO was made so
> > > as to profit from the existing shrinker reclaim code. That way no special
> > > treatment must be given to the dummy sparse BOs when reclaiming memory, as
> > > would be the case if we had chosen a raw kernel page implementation.
> >
> > Do you need to fix up the remap_evicted_vma() path though? At the moment
> > that will go through panthor_vm_map_pages() without doing the
> > panthor_fix_sparse_map_offset() dance. Also I suspect it won't map the
> > whole region (just the first 2MB in the sgtable).
>
> You're right, we need to account for the case in which the VMA is of the sparse kind
> and backed by the dummy BO. I suggest something as follows:
>
> ``` diff
> ret = panthor_vm_lock_region(vm, evicted_vma->base.va.addr,
> evicted_vma->base.va.range);
> if (!ret) {
> - ret = panthor_vm_map_pages(vm, evicted_vma->base.va.addr,
> - flags_to_prot(evicted_vma->flags),
> - bo->dmap.sgt,
> - evicted_vma->base.gem.offset,
> - evicted_vma->base.va.range);
> + struct drm_gpuva_op_map map_op = {
> + .va.addr = evicted_vma->base.va.addr,
> + .va.range = evicted_vma->base.va.range,
> + .gem.obj = &bo->base,
> + .gem.offset = evicted_vma->base.gem.offset,
> + };
> + if (evicted_vma->flags & DRM_PANTHOR_VM_BIND_OP_MAP_SPARSE)
> + drm_WARN_ON(&vm->ptdev->base, map_op.gem.offset !=
> + (map_op.va.addr & (SZ_2M - 1)));
> +
> + ret = panthor_vm_exec_map_op(vm, evicted_vma->flags, &map_op);
> if (!ret)
> evicted_vma->evicted = false;
> ```
>
> However, it seems to me there's no need for panthor_fix_sparse_map_offset() in this code path,
> because a VMA should always have the right gem offset even after eviction. This holds true in
> the event of an sm_remap of a VMA that had already been evicted.
Yep, I think you're right.
>
> This led me to think doing a WARN_ON test on the offset is the right way to go.
A WARN_ON[_ONCE]() would do, yes.
next prev parent reply other threads:[~2026-05-20 6:16 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-07 21:49 [PATCH v11 0/6] Support sparse mappings in Panthor Adrián Larumbe
2026-05-07 21:49 ` [PATCH v11 1/6] drm/panthor: Expose GPU page sizes to UM Adrián Larumbe
2026-05-07 21:49 ` [PATCH v11 2/6] drm/panthor: Pass vm_bind_op to vm_prepare_map_op_ctx Adrián Larumbe
2026-05-07 21:49 ` [PATCH v11 3/6] drm/panthor: Delete spurious whitespace from uAPI header Adrián Larumbe
2026-05-07 21:49 ` [PATCH v11 4/6] drm/panthor: Remove unused operation context field Adrián Larumbe
2026-05-07 21:49 ` [PATCH v11 5/6] drm/panthor: Support sparse mappings Adrián Larumbe
2026-05-13 15:46 ` Steven Price
2026-05-13 16:16 ` Boris Brezillon
2026-05-19 19:15 ` Adrián Larumbe
2026-05-20 6:16 ` Boris Brezillon [this message]
2026-05-07 21:49 ` [PATCH v11 6/6] drm/panthor: Bump the driver version to 1.9 Adrián Larumbe
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=20260520081608.0122a1d4@fedora \
--to=boris.brezillon@collabora.com \
--cc=adrian.larumbe@collabora.com \
--cc=airlied@gmail.com \
--cc=aliceryhl@google.com \
--cc=daniel.almeida@collabora.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=kernel@collabora.com \
--cc=linux-kernel@vger.kernel.org \
--cc=liviu.dudau@arm.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.