From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: <intel-gfx@lists.freedesktop.org>,
<intel-xe@lists.freedesktop.org>,
"Jani Nikula" <jani.nikula@linux.intel.com>,
Joonas Lahtinen <joonas.lahtinen@linux.intel.com>,
Thomas Gleixner <tglx@linutronix.de>,
Tvrtko Ursulin <tursulin@ursulin.net>,
"John B. Wyatt IV" <jwyatt@redhat.com>
Subject: Re: [PATCH 09/10] drm/i915/guc: Consider also RCU depth in busy loop.
Date: Tue, 11 Jun 2024 18:18:35 -0400 [thread overview]
Message-ID: <ZmjNO6-4clY9Kx5d@intel.com> (raw)
In-Reply-To: <20240405142737.920626-10-bigeasy@linutronix.de>
On Fri, Apr 05, 2024 at 04:18:27PM +0200, Sebastian Andrzej Siewior wrote:
> intel_guc_send_busy_loop() looks at in_atomic() and irqs_disabled() to
> decide if it should busy-spin while waiting or if it may sleep.
> Both checks will report false on PREEMPT_RT if sleeping spinlocks are
> acquired leading to RCU splats while the function sleeps.
>
> Check also if RCU has been disabled.
>
> Reported-by: "John B. Wyatt IV" <jwyatt@redhat.com>
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
> drivers/gpu/drm/i915/gt/uc/intel_guc.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc.h b/drivers/gpu/drm/i915/gt/uc/intel_guc.h
> index be70c46604b49..387cc1911302f 100644
> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc.h
> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc.h
> @@ -360,7 +360,7 @@ static inline int intel_guc_send_busy_loop(struct intel_guc *guc,
> {
> int err;
> unsigned int sleep_period_ms = 1;
> - bool not_atomic = !in_atomic() && !irqs_disabled();
> + bool not_atomic = !in_atomic() && !irqs_disabled() && !rcu_preempt_depth();
>
> /*
> * FIXME: Have caller pass in if we are in an atomic context to avoid
> --
> 2.43.0
>
next prev parent reply other threads:[~2024-06-11 22:18 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-05 14:18 [PATCH 00/10] drm/i915: PREEMPT_RT related fixups Sebastian Andrzej Siewior
2024-04-05 14:18 ` [PATCH 01/10] drm/i915: Use preempt_disable/enable_rt() where recommended Sebastian Andrzej Siewior
2024-04-05 14:18 ` [PATCH 02/10] drm/i915: Don't disable interrupts on PREEMPT_RT during atomic updates Sebastian Andrzej Siewior
2024-04-05 14:18 ` [PATCH 03/10] drm/i915: Don't check for atomic context on PREEMPT_RT Sebastian Andrzej Siewior
2024-04-05 14:18 ` [PATCH 04/10] drm/i915: Disable tracing points " Sebastian Andrzej Siewior
2024-04-05 14:18 ` [PATCH 05/10] drm/i915: skip DRM_I915_LOW_LEVEL_TRACEPOINTS with NOTRACE Sebastian Andrzej Siewior
2024-04-08 17:06 ` Steven Rostedt
2024-04-09 11:06 ` Sebastian Andrzej Siewior
2024-04-09 15:55 ` Steven Rostedt
2024-04-10 11:08 ` Sebastian Andrzej Siewior
2024-04-10 14:09 ` Steven Rostedt
2024-04-05 14:18 ` [PATCH 06/10] drm/i915/gt: Queue and wait for the irq_work item Sebastian Andrzej Siewior
2024-04-05 14:18 ` [PATCH 07/10] drm/i915/gt: Use spin_lock_irq() instead of local_irq_disable() + spin_lock() Sebastian Andrzej Siewior
2024-04-05 14:18 ` [PATCH 08/10] drm/i915: Drop the irqs_disabled() check Sebastian Andrzej Siewior
2024-04-05 14:18 ` [PATCH 09/10] drm/i915/guc: Consider also RCU depth in busy loop Sebastian Andrzej Siewior
2024-06-11 22:18 ` Rodrigo Vivi [this message]
2024-04-05 14:18 ` [PATCH 10/10] Revert "drm/i915: Depend on !PREEMPT_RT." Sebastian Andrzej Siewior
2024-04-05 15:09 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: PREEMPT_RT related fixups. (rev5) Patchwork
2024-04-05 15:09 ` ✗ Fi.CI.SPARSE: " Patchwork
2024-04-05 15:15 ` ✓ Fi.CI.BAT: success " Patchwork
2024-04-05 17:16 ` ✗ CI.Patch_applied: failure for drm/i915: PREEMPT_RT related fixups Patchwork
2024-04-05 18:46 ` ✗ Fi.CI.IGT: failure for drm/i915: PREEMPT_RT related fixups. (rev5) Patchwork
2024-04-10 11:35 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: PREEMPT_RT related fixups. (rev6) Patchwork
2024-04-10 11:35 ` ✗ Fi.CI.SPARSE: " Patchwork
2024-04-10 11:58 ` ✗ CI.Patch_applied: failure for drm/i915: PREEMPT_RT related fixups. (rev2) Patchwork
2024-04-10 12:02 ` ✓ Fi.CI.BAT: success for drm/i915: PREEMPT_RT related fixups. (rev6) Patchwork
2024-04-10 22:16 ` ✗ Fi.CI.IGT: failure " Patchwork
2024-06-05 10:01 ` [PATCH 00/10] drm/i915: PREEMPT_RT related fixups Sebastian Andrzej Siewior
2024-06-11 13:06 ` Tvrtko Ursulin
2024-06-11 15:14 ` Sebastian Andrzej Siewior
2024-06-11 22:25 ` Rodrigo Vivi
2024-06-13 8:36 ` Sebastian Andrzej Siewior
2024-06-10 13:36 ` ✗ Fi.CI.BUILD: failure for drm/i915: PREEMPT_RT related fixups. (rev7) Patchwork
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=ZmjNO6-4clY9Kx5d@intel.com \
--to=rodrigo.vivi@intel.com \
--cc=bigeasy@linutronix.de \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=jani.nikula@linux.intel.com \
--cc=joonas.lahtinen@linux.intel.com \
--cc=jwyatt@redhat.com \
--cc=tglx@linutronix.de \
--cc=tursulin@ursulin.net \
/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.