Re: [Intel-gfx] [PATCH 3/5] drm/i915/gt: kill fetch_and_zero usage

2022-12-12 Thread Andrzej Hajda




On 12.12.2022 10:14, Upadhyay, Tejas wrote:



-Original Message-
From: Intel-gfx  On Behalf Of
Andrzej Hajda
Sent: Friday, December 9, 2022 9:19 PM
To: linux-ker...@vger.kernel.org; intel-gfx@lists.freedesktop.org; dri-
de...@lists.freedesktop.org
Cc: Hajda, Andrzej ; Arnd Bergmann
; Vivi, Rodrigo ; Andrew Morton
; Andy Shevchenko

Subject: [Intel-gfx] [PATCH 3/5] drm/i915/gt: kill fetch_and_zero usage

Better use recently introduced kernel core helper.

Signed-off-by: Andrzej Hajda 
---
  drivers/gpu/drm/i915/gt/intel_engine_cs.c| 2 +-
  drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c | 4 ++--
  drivers/gpu/drm/i915/gt/intel_execlists_submission.c | 4 ++--
  drivers/gpu/drm/i915/gt/intel_ggtt.c | 4 ++--
  drivers/gpu/drm/i915/gt/intel_gsc.c  | 2 +-
  drivers/gpu/drm/i915/gt/intel_gt.c   | 4 ++--
  drivers/gpu/drm/i915/gt/intel_gt_pm.c| 2 +-
  drivers/gpu/drm/i915/gt/intel_lrc.c  | 6 +++---
  drivers/gpu/drm/i915/gt/intel_migrate.c  | 2 +-
  drivers/gpu/drm/i915/gt/intel_rc6.c  | 2 +-
  drivers/gpu/drm/i915/gt/intel_rps.c  | 2 +-
  drivers/gpu/drm/i915/gt/selftest_context.c   | 2 +-
  drivers/gpu/drm/i915/gt/selftest_ring_submission.c   | 2 +-
  drivers/gpu/drm/i915/gt/selftest_timeline.c  | 2 +-
  drivers/gpu/drm/i915/gt/uc/intel_uc.c| 2 +-
  drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c | 2 +-
  16 files changed, 22 insertions(+), 22 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_engine_cs.c
b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
index c33e0d72d6702b..de318d96d52abd 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_cs.c
+++ b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
@@ -1024,7 +1024,7 @@ static void cleanup_status_page(struct
intel_engine_cs *engine)
/* Prevent writes into HWSP after returning the page to the system */
intel_engine_set_hwsp_writemask(engine, ~0u);

-   vma = fetch_and_zero(>status_page.vma);
+   vma = exchange(>status_page.vma, NULL);
if (!vma)
return;

diff --git a/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
b/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
index 9a527e1f5be655..6029fafaaa674f 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
+++ b/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
@@ -229,7 +229,7 @@ static void heartbeat(struct work_struct *wrk)
mutex_unlock(>timeline->mutex);
  out:
if (!engine->i915->params.enable_hangcheck ||
!next_heartbeat(engine))
-   i915_request_put(fetch_and_zero(

heartbeat.systole));

+   i915_request_put(exchange(>heartbeat.systole, 0));
intel_engine_pm_put(engine);
  }

@@ -244,7 +244,7 @@ void intel_engine_unpark_heartbeat(struct
intel_engine_cs *engine)  void intel_engine_park_heartbeat(struct
intel_engine_cs *engine)  {
if (cancel_delayed_work(>heartbeat.work))
-   i915_request_put(fetch_and_zero(

heartbeat.systole));

+   i915_request_put(exchange(>heartbeat.systole, 0));
  }

  void intel_gt_unpark_heartbeats(struct intel_gt *gt) diff --git
a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
index 49a8f10d76c77b..29e78078d55a8b 100644
--- a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
+++ b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
@@ -3197,7 +3197,7 @@ static void execlists_reset_cancel(struct
intel_engine_cs *engine)
RB_CLEAR_NODE(rb);

spin_lock(>base.sched_engine->lock);
-   rq = fetch_and_zero(>request);
+   rq = exchange(>request, NULL);
if (rq) {
if (i915_request_mark_eio(rq)) {
rq->engine = engine;
@@ -3602,7 +3602,7 @@ static void rcu_virtual_context_destroy(struct
work_struct *wrk)

spin_lock_irq(>base.sched_engine->lock);

-   old = fetch_and_zero(>request);
+   old = exchange(>request, NULL);
if (old) {
GEM_BUG_ON(!__i915_request_is_complete(old));
__i915_request_submit(old);
diff --git a/drivers/gpu/drm/i915/gt/intel_ggtt.c
b/drivers/gpu/drm/i915/gt/intel_ggtt.c
index 0c7fe360f87331..2eb0173c6e968c 100644
--- a/drivers/gpu/drm/i915/gt/intel_ggtt.c
+++ b/drivers/gpu/drm/i915/gt/intel_ggtt.c
@@ -684,7 +684,7 @@ static void fini_aliasing_ppgtt(struct i915_ggtt *ggtt)  {
struct i915_ppgtt *ppgtt;

-   ppgtt = fetch_and_zero(>alias);
+   ppgtt = exchange(>alias, NULL);
if (!ppgtt)
return;

@@ -1238,7 +1238,7 @@ bool i915_ggtt_resume_vm(struct
i915_address_space *vm)
   was_bound);

if (obj) { /* only used during resume => exclusive access */
-   write_domain_objs |= 

Re: [Intel-gfx] [PATCH 3/5] drm/i915/gt: kill fetch_and_zero usage

2022-12-12 Thread Upadhyay, Tejas



> -Original Message-
> From: Intel-gfx  On Behalf Of
> Andrzej Hajda
> Sent: Friday, December 9, 2022 9:19 PM
> To: linux-ker...@vger.kernel.org; intel-gfx@lists.freedesktop.org; dri-
> de...@lists.freedesktop.org
> Cc: Hajda, Andrzej ; Arnd Bergmann
> ; Vivi, Rodrigo ; Andrew Morton
> ; Andy Shevchenko
> 
> Subject: [Intel-gfx] [PATCH 3/5] drm/i915/gt: kill fetch_and_zero usage
> 
> Better use recently introduced kernel core helper.
> 
> Signed-off-by: Andrzej Hajda 
> ---
>  drivers/gpu/drm/i915/gt/intel_engine_cs.c| 2 +-
>  drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c | 4 ++--
>  drivers/gpu/drm/i915/gt/intel_execlists_submission.c | 4 ++--
>  drivers/gpu/drm/i915/gt/intel_ggtt.c | 4 ++--
>  drivers/gpu/drm/i915/gt/intel_gsc.c  | 2 +-
>  drivers/gpu/drm/i915/gt/intel_gt.c   | 4 ++--
>  drivers/gpu/drm/i915/gt/intel_gt_pm.c| 2 +-
>  drivers/gpu/drm/i915/gt/intel_lrc.c  | 6 +++---
>  drivers/gpu/drm/i915/gt/intel_migrate.c  | 2 +-
>  drivers/gpu/drm/i915/gt/intel_rc6.c  | 2 +-
>  drivers/gpu/drm/i915/gt/intel_rps.c  | 2 +-
>  drivers/gpu/drm/i915/gt/selftest_context.c   | 2 +-
>  drivers/gpu/drm/i915/gt/selftest_ring_submission.c   | 2 +-
>  drivers/gpu/drm/i915/gt/selftest_timeline.c  | 2 +-
>  drivers/gpu/drm/i915/gt/uc/intel_uc.c| 2 +-
>  drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c | 2 +-
>  16 files changed, 22 insertions(+), 22 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/gt/intel_engine_cs.c
> b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
> index c33e0d72d6702b..de318d96d52abd 100644
> --- a/drivers/gpu/drm/i915/gt/intel_engine_cs.c
> +++ b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
> @@ -1024,7 +1024,7 @@ static void cleanup_status_page(struct
> intel_engine_cs *engine)
>   /* Prevent writes into HWSP after returning the page to the system */
>   intel_engine_set_hwsp_writemask(engine, ~0u);
> 
> - vma = fetch_and_zero(>status_page.vma);
> + vma = exchange(>status_page.vma, NULL);
>   if (!vma)
>   return;
> 
> diff --git a/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
> b/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
> index 9a527e1f5be655..6029fafaaa674f 100644
> --- a/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
> +++ b/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
> @@ -229,7 +229,7 @@ static void heartbeat(struct work_struct *wrk)
>   mutex_unlock(>timeline->mutex);
>  out:
>   if (!engine->i915->params.enable_hangcheck ||
> !next_heartbeat(engine))
> - i915_request_put(fetch_and_zero(
> >heartbeat.systole));
> + i915_request_put(exchange(>heartbeat.systole, 0));
>   intel_engine_pm_put(engine);
>  }
> 
> @@ -244,7 +244,7 @@ void intel_engine_unpark_heartbeat(struct
> intel_engine_cs *engine)  void intel_engine_park_heartbeat(struct
> intel_engine_cs *engine)  {
>   if (cancel_delayed_work(>heartbeat.work))
> - i915_request_put(fetch_and_zero(
> >heartbeat.systole));
> + i915_request_put(exchange(>heartbeat.systole, 0));
>  }
> 
>  void intel_gt_unpark_heartbeats(struct intel_gt *gt) diff --git
> a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
> b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
> index 49a8f10d76c77b..29e78078d55a8b 100644
> --- a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
> +++ b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
> @@ -3197,7 +3197,7 @@ static void execlists_reset_cancel(struct
> intel_engine_cs *engine)
>   RB_CLEAR_NODE(rb);
> 
>   spin_lock(>base.sched_engine->lock);
> - rq = fetch_and_zero(>request);
> + rq = exchange(>request, NULL);
>   if (rq) {
>   if (i915_request_mark_eio(rq)) {
>   rq->engine = engine;
> @@ -3602,7 +3602,7 @@ static void rcu_virtual_context_destroy(struct
> work_struct *wrk)
> 
>   spin_lock_irq(>base.sched_engine->lock);
> 
> - old = fetch_and_zero(>request);
> + old = exchange(>request, NULL);
>   if (old) {
>   GEM_BUG_ON(!__i915_request_is_complete(old));
>   __i915_request_submit(old);
> diff --git a/drivers/gpu/drm/i915/gt/intel_ggtt.c
> b/drivers/gpu/drm/i915/gt/intel_ggtt.c
> index 0c7fe360f87331..2eb0173c6e968c 100644
> --- a/drivers/gpu/drm/i915/gt/intel_ggtt.c
> +++ b/drivers/gpu/drm/i915/gt/intel_ggtt.c
> @@ -684,7 +684,7 @@ static void fini_aliasing_ppgtt(struct i915_ggtt *ggtt)  {
>   struct i915_ppgtt *ppgtt;
> 
> - ppgtt = fetch_and_zero(>alias);
> + ppgtt = exchange(>alias, NULL);
>   if (!ppgtt)
>   return;
> 
> @@ -1238,7 +1238,7 @@ bool i915_ggtt_resume_vm(struct
> i915_address_space *vm)
>  was_bound);
> 
>   if (obj) {