* [PATCH v3 04/20] drm/i915: Avoid open-coded use of ratelimit_state structure's ->missed field
[not found] <72ee57b8-9e2a-4cad-aaa0-1e3353d146d8@paulmck-laptop>
@ 2025-04-25 0:28 ` Paul E. McKenney
2025-04-25 8:48 ` Jani Nikula
2025-04-25 0:28 ` [PATCH v3 05/20] drm/amd/pm: Avoid open-coded use of ratelimit_state structure's internals Paul E. McKenney
1 sibling, 1 reply; 4+ messages in thread
From: Paul E. McKenney @ 2025-04-25 0:28 UTC (permalink / raw)
To: linux-kernel
Cc: kernel-team, Andrew Morton, Kuniyuki Iwashima, Mateusz Guzik,
Petr Mladek, Steven Rostedt, John Ogness, Sergey Senozhatsky,
Jon Pan-Doh, Bjorn Helgaas, Karolina Stolarek, Paul E. McKenney,
Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Tvrtko Ursulin,
David Airlie, Simona Vetter, intel-gfx, dri-devel
The i915_oa_stream_destroy() function directly accesses the
ratelimit_state structure's ->missed field, which work, but which also
makes it more difficult to change this field. Therefore, make use of
the ratelimit_state_get_miss() function instead of directly accessing
the ->missed field.
Link: https://lore.kernel.org/all/fbe93a52-365e-47fe-93a4-44a44547d601@paulmck-laptop/
Link: https://lore.kernel.org/all/20250423115409.3425-1-spasswolf@web.de/
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Tvrtko Ursulin <tursulin@ursulin.net>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: <intel-gfx@lists.freedesktop.org>
Cc: <dri-devel@lists.freedesktop.org>
---
drivers/gpu/drm/i915/i915_perf.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
index de0b413600a15..1658f1246c6fa 100644
--- a/drivers/gpu/drm/i915/i915_perf.c
+++ b/drivers/gpu/drm/i915/i915_perf.c
@@ -1666,6 +1666,7 @@ static void i915_oa_stream_destroy(struct i915_perf_stream *stream)
struct i915_perf *perf = stream->perf;
struct intel_gt *gt = stream->engine->gt;
struct i915_perf_group *g = stream->engine->oa_group;
+ int m;
if (WARN_ON(stream != g->exclusive_stream))
return;
@@ -1690,10 +1691,9 @@ static void i915_oa_stream_destroy(struct i915_perf_stream *stream)
free_oa_configs(stream);
free_noa_wait(stream);
- if (perf->spurious_report_rs.missed) {
- gt_notice(gt, "%d spurious OA report notices suppressed due to ratelimiting\n",
- perf->spurious_report_rs.missed);
- }
+ m = ratelimit_state_get_miss(&perf->spurious_report_rs);
+ if (m)
+ gt_notice(gt, "%d spurious OA report notices suppressed due to ratelimiting\n", m);
}
static void gen7_init_oa_buffer(struct i915_perf_stream *stream)
--
2.40.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v3 05/20] drm/amd/pm: Avoid open-coded use of ratelimit_state structure's internals
[not found] <72ee57b8-9e2a-4cad-aaa0-1e3353d146d8@paulmck-laptop>
2025-04-25 0:28 ` [PATCH v3 04/20] drm/i915: Avoid open-coded use of ratelimit_state structure's ->missed field Paul E. McKenney
@ 2025-04-25 0:28 ` Paul E. McKenney
1 sibling, 0 replies; 4+ messages in thread
From: Paul E. McKenney @ 2025-04-25 0:28 UTC (permalink / raw)
To: linux-kernel
Cc: kernel-team, Andrew Morton, Kuniyuki Iwashima, Mateusz Guzik,
Petr Mladek, Steven Rostedt, John Ogness, Sergey Senozhatsky,
Jon Pan-Doh, Bjorn Helgaas, Karolina Stolarek, Paul E. McKenney,
kernel test robot, Alex Deucher, Kenneth Feng,
Christian König, Xinhui Pan, David Airlie, Simona Vetter,
amd-gfx, dri-devel
The amdgpu_set_thermal_throttling_logging() function directly accesses
the ratelimit_state structure's ->missed field, which work, but which
also makes it more difficult to change this field. Therefore, make
use of the ratelimit_state_reset_miss() function instead of directly
accessing the ->missed field.
Nevertheless, open-coded use of ->burst and ->interval is still permitted,
for example, for runtime sysfs adjustment of these fields.
Link: https://lore.kernel.org/all/fbe93a52-365e-47fe-93a4-44a44547d601@paulmck-laptop/
Link: https://lore.kernel.org/all/20250423115409.3425-1-spasswolf@web.de/
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202503180826.EiekA1MB-lkp@intel.com/
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Cc: Kenneth Feng <kenneth.feng@amd.com>
Cc: "Christian König" <christian.koenig@amd.com>
Cc: Xinhui Pan <Xinhui.Pan@amd.com>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: <amd-gfx@lists.freedesktop.org>
Cc: <dri-devel@lists.freedesktop.org>
---
drivers/gpu/drm/amd/pm/amdgpu_pm.c | 11 ++---------
1 file changed, 2 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/drm/amd/pm/amdgpu_pm.c b/drivers/gpu/drm/amd/pm/amdgpu_pm.c
index 922def51685b0..d533c79f7e215 100644
--- a/drivers/gpu/drm/amd/pm/amdgpu_pm.c
+++ b/drivers/gpu/drm/amd/pm/amdgpu_pm.c
@@ -1606,7 +1606,6 @@ static ssize_t amdgpu_set_thermal_throttling_logging(struct device *dev,
struct drm_device *ddev = dev_get_drvdata(dev);
struct amdgpu_device *adev = drm_to_adev(ddev);
long throttling_logging_interval;
- unsigned long flags;
int ret = 0;
ret = kstrtol(buf, 0, &throttling_logging_interval);
@@ -1617,18 +1616,12 @@ static ssize_t amdgpu_set_thermal_throttling_logging(struct device *dev,
return -EINVAL;
if (throttling_logging_interval > 0) {
- raw_spin_lock_irqsave(&adev->throttling_logging_rs.lock, flags);
/*
* Reset the ratelimit timer internals.
* This can effectively restart the timer.
*/
- adev->throttling_logging_rs.interval =
- (throttling_logging_interval - 1) * HZ;
- adev->throttling_logging_rs.begin = 0;
- adev->throttling_logging_rs.printed = 0;
- adev->throttling_logging_rs.missed = 0;
- raw_spin_unlock_irqrestore(&adev->throttling_logging_rs.lock, flags);
-
+ ratelimit_state_reset_interval(&adev->throttling_logging_rs,
+ (throttling_logging_interval - 1) * HZ);
atomic_set(&adev->throttling_logging_enabled, 1);
} else {
atomic_set(&adev->throttling_logging_enabled, 0);
--
2.40.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v3 04/20] drm/i915: Avoid open-coded use of ratelimit_state structure's ->missed field
2025-04-25 0:28 ` [PATCH v3 04/20] drm/i915: Avoid open-coded use of ratelimit_state structure's ->missed field Paul E. McKenney
@ 2025-04-25 8:48 ` Jani Nikula
2025-04-25 14:27 ` Paul E. McKenney
0 siblings, 1 reply; 4+ messages in thread
From: Jani Nikula @ 2025-04-25 8:48 UTC (permalink / raw)
To: Paul E. McKenney, linux-kernel
Cc: kernel-team, Andrew Morton, Kuniyuki Iwashima, Mateusz Guzik,
Petr Mladek, Steven Rostedt, John Ogness, Sergey Senozhatsky,
Jon Pan-Doh, Bjorn Helgaas, Karolina Stolarek, Paul E. McKenney,
Joonas Lahtinen, Rodrigo Vivi, Tvrtko Ursulin, David Airlie,
Simona Vetter, intel-gfx, dri-devel
On Thu, 24 Apr 2025, "Paul E. McKenney" <paulmck@kernel.org> wrote:
> The i915_oa_stream_destroy() function directly accesses the
> ratelimit_state structure's ->missed field, which work, but which also
> makes it more difficult to change this field. Therefore, make use of
> the ratelimit_state_get_miss() function instead of directly accessing
> the ->missed field.
Acked-by: Jani Nikula <jani.nikula@intel.com>
For merging via whichever tree is convenient for you. Please let us know
if you want us to pick it up via drm-intel.
>
> Link: https://lore.kernel.org/all/fbe93a52-365e-47fe-93a4-44a44547d601@paulmck-laptop/
> Link: https://lore.kernel.org/all/20250423115409.3425-1-spasswolf@web.de/
> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
> Reviewed-by: Petr Mladek <pmladek@suse.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Cc: Tvrtko Ursulin <tursulin@ursulin.net>
> Cc: David Airlie <airlied@gmail.com>
> Cc: Simona Vetter <simona@ffwll.ch>
> Cc: <intel-gfx@lists.freedesktop.org>
> Cc: <dri-devel@lists.freedesktop.org>
> ---
> drivers/gpu/drm/i915/i915_perf.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
> index de0b413600a15..1658f1246c6fa 100644
> --- a/drivers/gpu/drm/i915/i915_perf.c
> +++ b/drivers/gpu/drm/i915/i915_perf.c
> @@ -1666,6 +1666,7 @@ static void i915_oa_stream_destroy(struct i915_perf_stream *stream)
> struct i915_perf *perf = stream->perf;
> struct intel_gt *gt = stream->engine->gt;
> struct i915_perf_group *g = stream->engine->oa_group;
> + int m;
>
> if (WARN_ON(stream != g->exclusive_stream))
> return;
> @@ -1690,10 +1691,9 @@ static void i915_oa_stream_destroy(struct i915_perf_stream *stream)
> free_oa_configs(stream);
> free_noa_wait(stream);
>
> - if (perf->spurious_report_rs.missed) {
> - gt_notice(gt, "%d spurious OA report notices suppressed due to ratelimiting\n",
> - perf->spurious_report_rs.missed);
> - }
> + m = ratelimit_state_get_miss(&perf->spurious_report_rs);
> + if (m)
> + gt_notice(gt, "%d spurious OA report notices suppressed due to ratelimiting\n", m);
> }
>
> static void gen7_init_oa_buffer(struct i915_perf_stream *stream)
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v3 04/20] drm/i915: Avoid open-coded use of ratelimit_state structure's ->missed field
2025-04-25 8:48 ` Jani Nikula
@ 2025-04-25 14:27 ` Paul E. McKenney
0 siblings, 0 replies; 4+ messages in thread
From: Paul E. McKenney @ 2025-04-25 14:27 UTC (permalink / raw)
To: Jani Nikula
Cc: linux-kernel, kernel-team, Andrew Morton, Kuniyuki Iwashima,
Mateusz Guzik, Petr Mladek, Steven Rostedt, John Ogness,
Sergey Senozhatsky, Jon Pan-Doh, Bjorn Helgaas, Karolina Stolarek,
Joonas Lahtinen, Rodrigo Vivi, Tvrtko Ursulin, David Airlie,
Simona Vetter, intel-gfx, dri-devel
On Fri, Apr 25, 2025 at 11:48:31AM +0300, Jani Nikula wrote:
> On Thu, 24 Apr 2025, "Paul E. McKenney" <paulmck@kernel.org> wrote:
> > The i915_oa_stream_destroy() function directly accesses the
> > ratelimit_state structure's ->missed field, which work, but which also
> > makes it more difficult to change this field. Therefore, make use of
> > the ratelimit_state_get_miss() function instead of directly accessing
> > the ->missed field.
>
> Acked-by: Jani Nikula <jani.nikula@intel.com>
Thank you, Jani! I will apply this on my next rebase later today.
> For merging via whichever tree is convenient for you. Please let us know
> if you want us to pick it up via drm-intel.
This one depends on a commit earlier in the series, so I will very
happily take you up on your kind offer of letting me push it. ;-)
Thanx, Paul
> > Link: https://lore.kernel.org/all/fbe93a52-365e-47fe-93a4-44a44547d601@paulmck-laptop/
> > Link: https://lore.kernel.org/all/20250423115409.3425-1-spasswolf@web.de/
> > Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
> > Reviewed-by: Petr Mladek <pmladek@suse.com>
> > Cc: Jani Nikula <jani.nikula@linux.intel.com>
> > Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> > Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> > Cc: Tvrtko Ursulin <tursulin@ursulin.net>
> > Cc: David Airlie <airlied@gmail.com>
> > Cc: Simona Vetter <simona@ffwll.ch>
> > Cc: <intel-gfx@lists.freedesktop.org>
> > Cc: <dri-devel@lists.freedesktop.org>
> > ---
> > drivers/gpu/drm/i915/i915_perf.c | 8 ++++----
> > 1 file changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
> > index de0b413600a15..1658f1246c6fa 100644
> > --- a/drivers/gpu/drm/i915/i915_perf.c
> > +++ b/drivers/gpu/drm/i915/i915_perf.c
> > @@ -1666,6 +1666,7 @@ static void i915_oa_stream_destroy(struct i915_perf_stream *stream)
> > struct i915_perf *perf = stream->perf;
> > struct intel_gt *gt = stream->engine->gt;
> > struct i915_perf_group *g = stream->engine->oa_group;
> > + int m;
> >
> > if (WARN_ON(stream != g->exclusive_stream))
> > return;
> > @@ -1690,10 +1691,9 @@ static void i915_oa_stream_destroy(struct i915_perf_stream *stream)
> > free_oa_configs(stream);
> > free_noa_wait(stream);
> >
> > - if (perf->spurious_report_rs.missed) {
> > - gt_notice(gt, "%d spurious OA report notices suppressed due to ratelimiting\n",
> > - perf->spurious_report_rs.missed);
> > - }
> > + m = ratelimit_state_get_miss(&perf->spurious_report_rs);
> > + if (m)
> > + gt_notice(gt, "%d spurious OA report notices suppressed due to ratelimiting\n", m);
> > }
> >
> > static void gen7_init_oa_buffer(struct i915_perf_stream *stream)
>
> --
> Jani Nikula, Intel
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-04-25 14:27 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <72ee57b8-9e2a-4cad-aaa0-1e3353d146d8@paulmck-laptop>
2025-04-25 0:28 ` [PATCH v3 04/20] drm/i915: Avoid open-coded use of ratelimit_state structure's ->missed field Paul E. McKenney
2025-04-25 8:48 ` Jani Nikula
2025-04-25 14:27 ` Paul E. McKenney
2025-04-25 0:28 ` [PATCH v3 05/20] drm/amd/pm: Avoid open-coded use of ratelimit_state structure's internals Paul E. McKenney
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).