Commit 6c640592 authored by Matthew Brost's avatar Matthew Brost
Browse files

Revert "drm/xe/vf: Post migration, repopulate ring area for pending request"



This reverts commit a0dda25d.

Due to change in the VF migration recovery design this code
is not needed any more.

v3:
 - Add commit message (Michal / Lucas)

Signed-off-by: default avatarMatthew Brost <matthew.brost@intel.com>
Reviewed-by: default avatarMichal Wajdeczko <michal.wajdeczko@intel.com>
Signed-off-by: default avatarMichal Wajdeczko <michal.wajdeczko@intel.com>
Signed-off-by: default avatarMatthew Brost <matthew.brost@intel.com>
Link: https://lore.kernel.org/r/20251002233824.203417-3-michal.wajdeczko@intel.com
parent 08c98f3f
Loading
Loading
Loading
Loading
+0 −24
Original line number Diff line number Diff line
@@ -1146,27 +1146,3 @@ int xe_exec_queue_contexts_hwsp_rebase(struct xe_exec_queue *q, void *scratch)

	return err;
}

/**
 * xe_exec_queue_jobs_ring_restore - Re-emit ring commands of requests pending on given queue.
 * @q: the &xe_exec_queue struct instance
 */
void xe_exec_queue_jobs_ring_restore(struct xe_exec_queue *q)
{
	struct xe_gpu_scheduler *sched = &q->guc->sched;
	struct xe_sched_job *job;

	/*
	 * This routine is used within VF migration recovery. This means
	 * using the lock here introduces a restriction: we cannot wait
	 * for any GFX HW response while the lock is taken.
	 */
	spin_lock(&sched->base.job_list_lock);
	list_for_each_entry(job, &sched->base.pending_list, drm.list) {
		if (xe_sched_job_is_error(job))
			continue;

		q->ring_ops->emit_job(job);
	}
	spin_unlock(&sched->base.job_list_lock);
}
+1 −2
Original line number Diff line number Diff line
@@ -92,7 +92,6 @@ void xe_exec_queue_update_run_ticks(struct xe_exec_queue *q);

int xe_exec_queue_contexts_hwsp_rebase(struct xe_exec_queue *q, void *scratch);

void xe_exec_queue_jobs_ring_restore(struct xe_exec_queue *q);

struct xe_lrc *xe_exec_queue_lrc(struct xe_exec_queue *q);

#endif
+0 −24
Original line number Diff line number Diff line
@@ -845,30 +845,6 @@ guc_exec_queue_run_job(struct drm_sched_job *drm_job)
	return fence;
}

/**
 * xe_guc_jobs_ring_rebase - Re-emit ring commands of requests pending
 * on all queues under a guc.
 * @guc: the &xe_guc struct instance
 */
void xe_guc_jobs_ring_rebase(struct xe_guc *guc)
{
	struct xe_exec_queue *q;
	unsigned long index;

	/*
	 * This routine is used within VF migration recovery. This means
	 * using the lock here introduces a restriction: we cannot wait
	 * for any GFX HW response while the lock is taken.
	 */
	mutex_lock(&guc->submission_state.lock);
	xa_for_each(&guc->submission_state.exec_queue_lookup, index, q) {
		if (exec_queue_killed_or_banned_or_wedged(q))
			continue;
		xe_exec_queue_jobs_ring_restore(q);
	}
	mutex_unlock(&guc->submission_state.lock);
}

static void guc_exec_queue_free_job(struct drm_sched_job *drm_job)
{
	struct xe_sched_job *job = to_xe_sched_job(drm_job);
+0 −2
Original line number Diff line number Diff line
@@ -36,8 +36,6 @@ int xe_guc_exec_queue_memory_cat_error_handler(struct xe_guc *guc, u32 *msg,
int xe_guc_exec_queue_reset_failure_handler(struct xe_guc *guc, u32 *msg, u32 len);
int xe_guc_error_capture_handler(struct xe_guc *guc, u32 *msg, u32 len);

void xe_guc_jobs_ring_rebase(struct xe_guc *guc);

struct xe_guc_submit_exec_queue_snapshot *
xe_guc_exec_queue_snapshot_capture(struct xe_exec_queue *q);
void
+0 −1
Original line number Diff line number Diff line
@@ -334,7 +334,6 @@ static int gt_vf_post_migration_fixups(struct xe_gt *gt)
		err = xe_guc_contexts_hwsp_rebase(&gt->uc.guc, buf);
		if (err)
			goto out;
		xe_guc_jobs_ring_rebase(&gt->uc.guc);
		xe_guc_ct_fixup_messages_with_ggtt(&gt->uc.guc.ct, shift);
	}