From: sashiko-bot@kernel.org
To: "Rob Clark" <robin.clark@oss.qualcomm.com>,
dri-devel@lists.freedesktop.org
Subject: Re: [PATCH v5 2/6] drm/msm: Resume perfcntrs after hw_init
Date: Wed, 04 Nov 2026 18:10:13 +0000 [thread overview]
Message-ID: <sashiko-outbox-197814@kernel.org> (raw)
In-Reply-To: <20261104175931.28475-3-robin.clark@oss.qualcomm.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] drm/msm: runtime PM reference leak in sel_worker() on early return
--
commit 370e064e444724f1b13c89e7e60a8c61a20e2ad7
Author: Rob Clark <robin.clark@oss.qualcomm.com>
drm/msm: Resume perfcntrs after hw_init
This commit moves performance counter resumption from runtime resume and GPU
recovery into msm_gpu_hw_init(), and updates sel_worker() in msm_perfcntr.c to
bail out if gpu->needs_hw_init is still set.
> diff --git a/drivers/gpu/drm/msm/msm_perfcntr.c b/drivers/gpu/drm/msm/msm_perfcntr.c
> index 7fa2e858bd082..6a35e3e2ca959 100644
> --- a/drivers/gpu/drm/msm/msm_perfcntr.c
> +++ b/drivers/gpu/drm/msm/msm_perfcntr.c
> @@ -199,10 +199,17 @@ sel_worker(struct work_struct *w)
> return;
>
> scoped_guard (mutex, &gpu->lock) {
> + /*
> + * If gpu still needs hw_init, bail. We'll be rescheduled
> + * after hw_init, and there is no point to collect counters
> + * beforehand
> + */
> + if (gpu->needs_hw_init)
> + return;
[Severity: High]
Does this early return leak the runtime PM usage reference on &gpu->pdev->dev?
Just before entering the scoped_guard(mutex, &gpu->lock) block, sel_worker()
acquires a runtime PM reference and drops it only after the block finishes:
drivers/gpu/drm/msm/msm_perfcntr.c:sel_worker() {
if (!pm_runtime_get_if_active(&gpu->pdev->dev))
return;
scoped_guard (mutex, &gpu->lock) {
if (gpu->needs_hw_init)
return;
...
}
pm_runtime_put_autosuspend(&gpu->pdev->dev);
}
If the GPU is runtime-active while gpu->needs_hw_init is true (for example,
after adreno_runtime_resume() runs for MSM_PARAM_TIMESTAMP or MSM_PARAM_SYSPROF
before msm_gpu_hw_init() has been called) and userspace configures a counter
stream via msm_ioctl_perfcntr_config(), msm_perfcntr_resume_locked() will
still schedule stream->sel_work.
When sel_worker() runs and sees gpu->needs_hw_init == true, returning from
inside scoped_guard releases gpu->lock via cleanup but exits sel_worker()
without calling pm_runtime_put_autosuspend(&gpu->pdev->dev), permanently
preventing the GPU from runtime-suspending. Should this use break instead of
return to exit the scoped_guard block and reach pm_runtime_put_autosuspend()?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261104175931.28475-1-robin.clark@oss.qualcomm.com?part=2
next prev parent reply other threads:[~2026-11-04 18:10 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-04 17:59 [PATCH v5 0/6] drm/msm: Decouple IFPC disable and sysprof Rob Clark
2026-11-04 17:59 ` [PATCH v5 1/6] drm/msm: Hold runpm ref in set_sysprof() Rob Clark
2026-11-04 17:59 ` [PATCH v5 2/6] drm/msm: Resume perfcntrs after hw_init Rob Clark
2026-11-04 18:10 ` sashiko-bot [this message]
2026-11-04 17:59 ` [PATCH v5 3/6] drm/msm: Rework IFPC disable Rob Clark
2026-11-04 18:24 ` sashiko-bot
2026-11-04 17:59 ` [PATCH v5 4/6] drm/msm: Add cleanup help for disabling IFPC Rob Clark
2026-11-04 18:12 ` sashiko-bot
2026-11-04 17:59 ` [PATCH v5 5/6] drm/msm/debugfs: Use cleanup.h for gpu state dump Rob Clark
2026-11-04 18:17 ` sashiko-bot
2026-11-04 17:59 ` [PATCH v5 6/6] drm/msm: Inhibit IFPC for state snapshot Rob Clark
2026-11-04 18:27 ` sashiko-bot
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=sashiko-outbox-197814@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=robin.clark@oss.qualcomm.com \
--cc=sashiko-reviews@lists.linux.dev \
/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.