From: Boris Brezillon <boris.brezillon@collabora.com>
To: Chia-I Wu <olvaffe@gmail.com>
Cc: "Steven Price" <steven.price@arm.com>,
"Liviu Dudau" <liviu.dudau@arm.com>,
"Adrián Larumbe" <adrian.larumbe@collabora.com>,
dri-devel@lists.freedesktop.org,
"David Airlie" <airlied@gmail.com>,
"Simona Vetter" <simona@ffwll.ch>,
"Akash Goel" <akash.goel@arm.com>,
"Rob Clark" <robin.clark@oss.qualcomm.com>,
"Sean Paul" <sean@poorly.run>,
"Konrad Dybcio" <konradybcio@kernel.org>,
"Akhil P Oommen" <akhilpo@oss.qualcomm.com>,
"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
"Maxime Ripard" <mripard@kernel.org>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"Dmitry Osipenko" <dmitry.osipenko@collabora.com>,
"Chris Diamand" <chris.diamand@arm.com>,
"Danilo Krummrich" <dakr@kernel.org>,
"Matthew Brost" <matthew.brost@intel.com>,
"Thomas Hellström" <thomas.hellstrom@linux.intel.com>,
"Alice Ryhl" <aliceryhl@google.com>,
kernel@collabora.com
Subject: Re: [PATCH v3 9/9] drm/panthor: Add a GEM shrinker
Date: Mon, 16 Feb 2026 09:51:10 +0100 [thread overview]
Message-ID: <20260216095110.324c0cde@fedora> (raw)
In-Reply-To: <CAPaKu7SRZDi3yqPie_C8xh+KmENNKtm95im+v404fWK07_GytA@mail.gmail.com>
On Thu, 12 Feb 2026 17:19:20 -0800
Chia-I Wu <olvaffe@gmail.com> wrote:
> On Wed, Feb 11, 2026 at 12:22 AM Boris Brezillon
> <boris.brezillon@collabora.com> wrote:
> [...]
> > +static unsigned long
> > +panthor_gem_shrinker_scan(struct shrinker *shrinker, struct shrink_control *sc)
> > +{
> > + struct panthor_device *ptdev = shrinker->private_data;
> > + unsigned long remaining = 0;
> > + unsigned long freed = 0;
> > +
> > + if (!can_swap())
> > + goto out;
> > +
> > + freed += drm_gem_lru_scan(&ptdev->reclaim.unused,
> > + sc->nr_to_scan - freed, &remaining,
> > + panthor_gem_try_evict, NULL);
> > + if (freed >= sc->nr_to_scan)
> > + goto out;
> > +
> > + freed += drm_gem_lru_scan(&ptdev->reclaim.mmapped,
> > + sc->nr_to_scan - freed, &remaining,
> > + panthor_gem_try_evict, NULL);
> > + if (freed >= sc->nr_to_scan)
> > + goto out;
> > +
> Do we need to check for can_block here? panthor_gem_try_evict will
> block for bos on lrus below.
Yep, we do. Will fix that in v4.
>
>
> > + freed += panthor_mmu_reclaim_priv_bos(ptdev, sc->nr_to_scan - freed,
> > + &remaining, panthor_gem_try_evict);
> > + if (freed >= sc->nr_to_scan)
> > + goto out;
> > +
> > + freed += drm_gem_lru_scan(&ptdev->reclaim.gpu_mapped_shared,
> > + sc->nr_to_scan - freed, &remaining,
> > + panthor_gem_try_evict, NULL);
> > +
> > +out:
> > +#ifdef CONFIG_DEBUG_FS
> > + /* This is racy, but that's okay, because this is just debugfs
> > + * reporting and doesn't need to be accurate.
> > + */
> > + ptdev->reclaim.nr_pages_reclaimed_on_last_scan = freed;
> > +#endif
> > +
> > + /* If there are things to reclaim, try a couple times before giving up. */
> > + if (!freed && remaining > 0 &&
> > + atomic_inc_return(&ptdev->reclaim.retry_count) < 2)
> > + return 0;
> > +
> > + atomic_set(&ptdev->reclaim.retry_count, 0);
> > +
> > + if (freed)
> > + return freed;
> > +
> > + /* There's nothing left to reclaim, or the resources are contended. Give up now. */
> > + return SHRINK_STOP;
> > +}
next prev parent reply other threads:[~2026-02-16 8:51 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-11 8:03 [PATCH v3 0/9] drm/panthor: Add a GEM shrinker Boris Brezillon
2026-02-11 8:03 ` [PATCH v3 1/9] drm/gem: Consider GEM object reclaimable if shrinking fails Boris Brezillon
2026-02-11 8:03 ` [PATCH v3 2/9] drm/panthor: Move panthor_gems_debugfs_init() to panthor_gem.c Boris Brezillon
2026-02-11 8:03 ` [PATCH v3 3/9] drm/panthor: Group panthor_kernel_bo_xxx() helpers Boris Brezillon
2026-02-11 8:03 ` [PATCH v3 4/9] drm/panthor: Don't call drm_gpuvm_bo_extobj_add() if the object is private Boris Brezillon
2026-02-11 15:57 ` Steven Price
2026-02-12 11:04 ` Liviu Dudau
2026-02-11 8:03 ` [PATCH v3 5/9] drm/panthor: Part ways with drm_gem_shmem_object Boris Brezillon
2026-02-11 15:58 ` Steven Price
2026-02-12 11:07 ` Boris Brezillon
2026-02-12 14:20 ` Liviu Dudau
2026-02-12 19:46 ` Chia-I Wu
2026-02-13 18:01 ` Adrián Larumbe
2026-02-16 9:06 ` Boris Brezillon
2026-02-11 8:03 ` [PATCH v3 6/9] drm/panthor: Lazily allocate pages on mmap() Boris Brezillon
2026-02-11 8:03 ` [PATCH v3 7/9] drm/panthor: Split panthor_vm_prepare_map_op_ctx() to prepare for reclaim Boris Brezillon
2026-02-11 8:03 ` [PATCH v3 8/9] drm/panthor: Track the number of mmap on a BO Boris Brezillon
2026-02-11 16:08 ` Steven Price
2026-02-12 11:08 ` Boris Brezillon
2026-02-12 17:16 ` Liviu Dudau
2026-02-11 8:03 ` [PATCH v3 9/9] drm/panthor: Add a GEM shrinker Boris Brezillon
2026-02-13 0:43 ` Chia-I Wu
2026-02-13 9:12 ` Boris Brezillon
2026-02-16 8:50 ` Boris Brezillon
2026-02-13 1:19 ` Chia-I Wu
2026-02-16 8:51 ` Boris Brezillon [this message]
2026-02-13 18:23 ` Adrián Larumbe
2026-02-16 8:57 ` 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=20260216095110.324c0cde@fedora \
--to=boris.brezillon@collabora.com \
--cc=adrian.larumbe@collabora.com \
--cc=airlied@gmail.com \
--cc=akash.goel@arm.com \
--cc=akhilpo@oss.qualcomm.com \
--cc=aliceryhl@google.com \
--cc=chris.diamand@arm.com \
--cc=dakr@kernel.org \
--cc=dmitry.osipenko@collabora.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=kernel@collabora.com \
--cc=konradybcio@kernel.org \
--cc=liviu.dudau@arm.com \
--cc=maarten.lankhorst@linux.intel.com \
--cc=matthew.brost@intel.com \
--cc=mripard@kernel.org \
--cc=olvaffe@gmail.com \
--cc=robin.clark@oss.qualcomm.com \
--cc=sean@poorly.run \
--cc=simona@ffwll.ch \
--cc=steven.price@arm.com \
--cc=thomas.hellstrom@linux.intel.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