Commit 5b643660 authored by Matthew Brost's avatar Matthew Brost Committed by Rodrigo Vivi
Browse files

drm/xe: Don't process TLB invalidation done in CT fast-path



We can't currently do this due to TLB invalidation done handler
expecting the seqno being received in-order, with the fast-path a TLB
invalidation done could pass one being processed in the slow-path in an
extreme corner case. Remove TLB invalidation done from the fast-path for
now and in a follow up reenable this once the TLB invalidation done
handler can deal with out of order seqno.

Signed-off-by: default avatarMatthew Brost <matthew.brost@intel.com>
Reviewed-by: default avatarNiranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
parent e89b384c
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -966,7 +966,14 @@ static int g2h_read(struct xe_guc_ct *ct, u32 *msg, bool fast_path)
			return 0;

		switch (FIELD_GET(GUC_HXG_EVENT_MSG_0_ACTION, msg[1])) {
		case XE_GUC_ACTION_TLB_INVALIDATION_DONE:
		/*
		 * FIXME: We really should process
		 * XE_GUC_ACTION_TLB_INVALIDATION_DONE here in the fast-path as
		 * these critical for page fault performance. We currently can't
		 * due to TLB invalidation done algorithm expecting the seqno
		 * returned in-order. With some small changes to the algorithm
		 * and locking we should be able to support out-of-order seqno.
		 */
		case XE_GUC_ACTION_REPORT_PAGE_FAULT_REQ_DESC:
			break;	/* Process these in fast-path */
		default: