From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 98144CAC5A8 for ; Wed, 17 Sep 2025 03:46:43 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 541FE10E739; Wed, 17 Sep 2025 03:46:43 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="hkozLkeJ"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.9]) by gabe.freedesktop.org (Postfix) with ESMTPS id B36E510E40E for ; Wed, 17 Sep 2025 03:46:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1758080782; x=1789616782; h=from:to:subject:date:message-id:in-reply-to:references: mime-version:content-transfer-encoding; bh=6Nqq2ABSL48G9omy4eXYbRO1aZQP9i6DkTk2bOHT9qw=; b=hkozLkeJTj/+xF10fdbcUKpMa8yTDzn5T6MSHUVPrhalQ/9XqMp0ARIt 40iVTjM8UezhPd1IMcpU/SXB/nmL0NI+0u4FjHXfvbZ971zi/wtnIAw4j HNhaKYZG5dvHwmXQsTifL9bD8WYBXR25U4odn9/vXkUA9Yf4+n8l/hC9V WlWGALlCMQNUv7YcNoVHuzc7X2z/wQvBpm05P89XsIXRxiim6q9ANJgLk fra+zKo4PEgXLLanWfWkTk8G0F7CcyV8YlYOCVzy/SCz4pG4oVh5WJfcm 5ygTqcVCoylKVKtrtgCieIYJtDN2c/rnywhuKl0tfLfDihRSVWtTKLMCK Q==; X-CSE-ConnectionGUID: mSEk5YQqTPGrbl+9MBhyyg== X-CSE-MsgGUID: ejdgYhzYRr6suuUG2TYUgA== X-IronPort-AV: E=McAfee;i="6800,10657,11555"; a="71060790" X-IronPort-AV: E=Sophos;i="6.18,270,1751266800"; d="scan'208";a="71060790" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by fmvoesa103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Sep 2025 20:46:21 -0700 X-CSE-ConnectionGUID: 9S9ru4tuSzuH83EMMWVc3A== X-CSE-MsgGUID: HXbTZyHYT6mhNIY10CWeDg== X-ExtLoop1: 1 Received: from lstrano-desk.jf.intel.com ([10.54.39.91]) by fmviesa003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Sep 2025 20:46:21 -0700 From: Matthew Brost To: intel-xe@lists.freedesktop.org Subject: [PATCH 08/28] drm/xe: Don't change LRC ring head on job resubmission Date: Tue, 16 Sep 2025 20:45:55 -0700 Message-Id: <20250917034615.3977603-9-matthew.brost@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250917034615.3977603-1-matthew.brost@intel.com> References: <20250917034615.3977603-1-matthew.brost@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: intel-xe@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Xe graphics driver List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-xe-bounces@lists.freedesktop.org Sender: "Intel-xe" Now that we save the job's head during submission, it's no longer necessary to adjust the LRC ring head during resubmission. Instead, a software-based adjustment of the tail will overwrite the old jobs in place. For some odd reason, adjusting the LRC ring head didn't work on parallel queues, which was causing issues in our CI. v6: - Also set LRC tail to head so queue is idle coming out of reset Signed-off-by: Matthew Brost --- drivers/gpu/drm/xe/xe_guc_submit.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c index 774c4bbd4cc4..c7ccdcf22196 100644 --- a/drivers/gpu/drm/xe/xe_guc_submit.c +++ b/drivers/gpu/drm/xe/xe_guc_submit.c @@ -1998,11 +1998,17 @@ static void guc_exec_queue_start(struct xe_exec_queue *q) struct xe_gpu_scheduler *sched = &q->guc->sched; if (!exec_queue_killed_or_banned_or_wedged(q)) { + struct xe_sched_job *job = xe_sched_first_pending_job(sched); int i; trace_xe_exec_queue_resubmit(q); - for (i = 0; i < q->width; ++i) - xe_lrc_set_ring_head(q->lrc[i], q->lrc[i]->ring.tail); + if (job) { + for (i = 0; i < q->width; ++i) { + q->lrc[i]->ring.tail = job->ptrs[i].head; + xe_lrc_set_ring_tail(q->lrc[i], + xe_lrc_ring_head(q->lrc[i])); + } + } xe_sched_resubmit_jobs(sched); } -- 2.34.1