Re: [Intel-gfx] [PATCH 3/5] drm/i915/gt: kill fetch_and_zero usage
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
> -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) {