[Intel-xe] [PATCH] drm/xe: Remove unnecessary memory barriers related to wait queue

Matthew Brost matthew.brost at intel.com
Thu Jul 27 18:34:23 UTC 2023


These not needed per the wait queue doc, remove them.

Signed-off-by: Matthew Brost <matthew.brost at intel.com>
---
 drivers/gpu/drm/xe/xe_guc_ct.c     | 3 ---
 drivers/gpu/drm/xe/xe_guc_submit.c | 9 +--------
 2 files changed, 1 insertion(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_guc_ct.c b/drivers/gpu/drm/xe/xe_guc_ct.c
index cb75db30800c..3f58902b6be3 100644
--- a/drivers/gpu/drm/xe/xe_guc_ct.c
+++ b/drivers/gpu/drm/xe/xe_guc_ct.c
@@ -308,7 +308,6 @@ int xe_guc_ct_enable(struct xe_guc_ct *ct)
 	spin_unlock_irq(&ct->fast_lock);
 	mutex_unlock(&ct->lock);
 
-	smp_mb();
 	wake_up_all(&ct->wq);
 	drm_dbg(&xe->drm, "GuC CT communication channel enabled\n");
 
@@ -820,8 +819,6 @@ static int parse_g2h_response(struct xe_guc_ct *ct, u32 *msg, u32 len)
 	g2h_release_space(ct, GUC_CTB_HXG_MSG_MAX_LEN);
 
 	g2h_fence->done = true;
-	smp_mb();
-
 	wake_up_all(&ct->g2h_fence_wq);
 
 	return 0;
diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c
index 6cb64a097297..d623cd9f6cc4 100644
--- a/drivers/gpu/drm/xe/xe_guc_submit.c
+++ b/drivers/gpu/drm/xe/xe_guc_submit.c
@@ -705,7 +705,6 @@ static void disable_scheduling_deregister(struct xe_guc *guc,
 	int ret;
 
 	set_min_preemption_timeout(guc, e);
-	smp_rmb();
 	ret = wait_event_timeout(guc->ct.wq, !engine_pending_enable(e) ||
 				 guc_read_stopped(guc), HZ * 5);
 	if (!ret) {
@@ -888,7 +887,6 @@ guc_engine_timedout_job(struct drm_sched_job *drm_job)
 		 * error) messages which can cause the schedule disable to get
 		 * lost. If this occurs, trigger a GT reset to recover.
 		 */
-		smp_rmb();
 		ret = wait_event_timeout(guc->ct.wq,
 					 !engine_pending_disable(e) ||
 					 guc_read_stopped(guc), HZ * 5);
@@ -1008,7 +1006,6 @@ static void suspend_fence_signal(struct xe_engine *e)
 	XE_BUG_ON(!e->guc->suspend_pending);
 
 	e->guc->suspend_pending = false;
-	smp_wmb();
 	wake_up(&e->guc->suspend_wait);
 }
 
@@ -1392,7 +1389,6 @@ int xe_guc_submit_reset_prepare(struct xe_guc *guc)
 	 * and releasing any TDRs waiting on guc->submission_state.stopped.
 	 */
 	ret = atomic_fetch_or(1, &guc->submission_state.stopped);
-	smp_wmb();
 	wake_up_all(&guc->ct.wq);
 
 	return ret;
@@ -1521,17 +1517,14 @@ int xe_guc_sched_done_handler(struct xe_guc *guc, u32 *msg, u32 len)
 	if (engine_pending_enable(e)) {
 		e->guc->resume_time = ktime_get();
 		clear_engine_pending_enable(e);
-		smp_wmb();
 		wake_up_all(&guc->ct.wq);
 	} else {
 		clear_engine_pending_disable(e);
 		if (e->guc->suspend_pending) {
 			suspend_fence_signal(e);
 		} else {
-			if (engine_banned(e)) {
-				smp_wmb();
+			if (engine_banned(e))
 				wake_up_all(&guc->ct.wq);
-			}
 			deregister_engine(guc, e);
 		}
 	}
-- 
2.34.1



More information about the Intel-xe mailing list