From: Matthew Brost <matthew.brost@intel.com> To: <intel-gfx@lists.freedesktop.org>, <dri-devel@lists.freedesktop.org> Cc: john.c.harrison@intel.com, Michal.Wajdeczko@intel.com Subject: [PATCH 1/7] drm/i915/guc: Relax CTB response timeout Date: Tue, 6 Jul 2021 15:20:04 -0700 [thread overview] Message-ID: <20210706222010.101522-2-matthew.brost@intel.com> (raw) In-Reply-To: <20210706222010.101522-1-matthew.brost@intel.com> In upcoming patch we will allow more CTB requests to be sent in parallel to the GuC for processing, so we shouldn't assume any more that GuC will always reply without 10ms. Use bigger value hardcoded value of 1s instead. v2: Add CONFIG_DRM_I915_GUC_CTB_TIMEOUT config option v3: (Daniel Vetter) - Use hardcoded value of 1s rather than config option v4: (Michal) - Use defines for timeout values Signed-off-by: Matthew Brost <matthew.brost@intel.com> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com> Reviewed-by: Michal Wajdeczko <michal.wajdeczko@intel.com> --- drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c index 43409044528e..b86575b99537 100644 --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c @@ -474,14 +474,18 @@ static int wait_for_ct_request_update(struct ct_request *req, u32 *status) /* * Fast commands should complete in less than 10us, so sample quickly * up to that length of time, then switch to a slower sleep-wait loop. - * No GuC command should ever take longer than 10ms. + * No GuC command should ever take longer than 10ms but many GuC + * commands can be inflight at time, so use a 1s timeout on the slower + * sleep-wait loop. */ +#define GUC_CTB_RESPONSE_TIMEOUT_SHORT_MS 10 +#define GUC_CTB_RESPONSE_TIMEOUT_LONG_MS 1000 #define done \ (FIELD_GET(GUC_HXG_MSG_0_ORIGIN, READ_ONCE(req->status)) == \ GUC_HXG_ORIGIN_GUC) - err = wait_for_us(done, 10); + err = wait_for_us(done, GUC_CTB_RESPONSE_TIMEOUT_SHORT_MS); if (err) - err = wait_for(done, 10); + err = wait_for(done, GUC_CTB_RESPONSE_TIMEOUT_LONG_MS); #undef done if (unlikely(err)) -- 2.28.0
WARNING: multiple messages have this Message-ID (diff)
From: Matthew Brost <matthew.brost@intel.com> To: <intel-gfx@lists.freedesktop.org>, <dri-devel@lists.freedesktop.org> Subject: [Intel-gfx] [PATCH 1/7] drm/i915/guc: Relax CTB response timeout Date: Tue, 6 Jul 2021 15:20:04 -0700 [thread overview] Message-ID: <20210706222010.101522-2-matthew.brost@intel.com> (raw) In-Reply-To: <20210706222010.101522-1-matthew.brost@intel.com> In upcoming patch we will allow more CTB requests to be sent in parallel to the GuC for processing, so we shouldn't assume any more that GuC will always reply without 10ms. Use bigger value hardcoded value of 1s instead. v2: Add CONFIG_DRM_I915_GUC_CTB_TIMEOUT config option v3: (Daniel Vetter) - Use hardcoded value of 1s rather than config option v4: (Michal) - Use defines for timeout values Signed-off-by: Matthew Brost <matthew.brost@intel.com> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com> Reviewed-by: Michal Wajdeczko <michal.wajdeczko@intel.com> --- drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c index 43409044528e..b86575b99537 100644 --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c @@ -474,14 +474,18 @@ static int wait_for_ct_request_update(struct ct_request *req, u32 *status) /* * Fast commands should complete in less than 10us, so sample quickly * up to that length of time, then switch to a slower sleep-wait loop. - * No GuC command should ever take longer than 10ms. + * No GuC command should ever take longer than 10ms but many GuC + * commands can be inflight at time, so use a 1s timeout on the slower + * sleep-wait loop. */ +#define GUC_CTB_RESPONSE_TIMEOUT_SHORT_MS 10 +#define GUC_CTB_RESPONSE_TIMEOUT_LONG_MS 1000 #define done \ (FIELD_GET(GUC_HXG_MSG_0_ORIGIN, READ_ONCE(req->status)) == \ GUC_HXG_ORIGIN_GUC) - err = wait_for_us(done, 10); + err = wait_for_us(done, GUC_CTB_RESPONSE_TIMEOUT_SHORT_MS); if (err) - err = wait_for(done, 10); + err = wait_for(done, GUC_CTB_RESPONSE_TIMEOUT_LONG_MS); #undef done if (unlikely(err)) -- 2.28.0 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2021-07-06 22:02 UTC|newest] Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-07-06 22:20 [PATCH 0/7] CT changes required for GuC submission Matthew Brost 2021-07-06 22:20 ` [Intel-gfx] " Matthew Brost 2021-07-06 22:10 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for CT changes required for GuC submission (rev3) Patchwork 2021-07-06 22:11 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork 2021-07-06 22:20 ` Matthew Brost [this message] 2021-07-06 22:20 ` [Intel-gfx] [PATCH 1/7] drm/i915/guc: Relax CTB response timeout Matthew Brost 2021-07-06 22:20 ` [PATCH 2/7] drm/i915/guc: Improve error message for unsolicited CT response Matthew Brost 2021-07-06 22:20 ` [Intel-gfx] " Matthew Brost 2021-07-06 22:20 ` [PATCH 3/7] drm/i915/guc: Increase size of CTB buffers Matthew Brost 2021-07-06 22:20 ` [Intel-gfx] " Matthew Brost 2021-07-06 22:20 ` [PATCH 4/7] drm/i915/guc: Add non blocking CTB send function Matthew Brost 2021-07-06 22:20 ` [Intel-gfx] " Matthew Brost 2021-07-06 22:20 ` [PATCH 5/7] drm/i915/guc: Add stall timer to " Matthew Brost 2021-07-06 22:20 ` [Intel-gfx] " Matthew Brost 2021-07-06 22:20 ` [PATCH 6/7] drm/i915/guc: Optimize CTB writes and reads Matthew Brost 2021-07-06 22:20 ` [Intel-gfx] " Matthew Brost 2021-07-06 22:51 ` John Harrison 2021-07-06 22:51 ` [Intel-gfx] " John Harrison 2021-07-07 17:50 ` Matthew Brost 2021-07-07 17:50 ` [Intel-gfx] " Matthew Brost 2021-07-07 18:19 ` John Harrison 2021-07-07 18:19 ` [Intel-gfx] " John Harrison 2021-07-07 18:56 ` Matthew Brost 2021-07-07 18:56 ` [Intel-gfx] " Matthew Brost 2021-07-07 20:21 ` John Harrison 2021-07-07 20:21 ` [Intel-gfx] " John Harrison 2021-07-07 20:23 ` Matthew Brost 2021-07-07 20:23 ` [Intel-gfx] " Matthew Brost 2021-07-06 22:20 ` [PATCH 7/7] drm/i915/guc: Module load failure test for CT buffer creation Matthew Brost 2021-07-06 22:20 ` [Intel-gfx] " Matthew Brost 2021-07-06 22:38 ` [Intel-gfx] ✗ Fi.CI.BAT: failure for CT changes required for GuC submission (rev3) Patchwork 2021-07-07 19:09 ` [PATCH 06/56] drm/i915/guc: Optimize CTB writes and reads Matthew Brost 2021-07-07 19:09 ` [Intel-gfx] " Matthew Brost 2021-07-07 20:30 ` Michal Wajdeczko 2021-07-07 20:30 ` [Intel-gfx] " Michal Wajdeczko 2021-07-07 23:25 ` [PATCH 06/7] " Matthew Brost 2021-07-07 23:25 ` [Intel-gfx] " Matthew Brost 2021-07-08 13:23 ` Michal Wajdeczko 2021-07-08 13:23 ` [Intel-gfx] " Michal Wajdeczko 2021-07-08 0:30 ` [PATCH 0/2] Introduce set_parallel2 extension Matthew Brost 2021-07-08 0:30 ` [Intel-gfx] " Matthew Brost 2021-07-08 0:30 ` [PATCH 1/2] INTEL_DII/NOT_UPSTREAM: drm/i915: " Matthew Brost 2021-07-08 0:30 ` [PATCH 2/2] REVIEW: Full tree diff against internal/internal Matthew Brost 2021-07-08 0:30 ` [Intel-gfx] " Matthew Brost 2021-07-08 2:18 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for CT changes required for GuC submission (rev4) Patchwork -- strict thread matches above, loose matches on Subject: below -- 2021-07-08 16:20 [PATCH 0/7] CT changes required for GuC submission Matthew Brost 2021-07-08 16:20 ` [PATCH 1/7] drm/i915/guc: Relax CTB response timeout Matthew Brost 2021-07-01 17:15 [PATCH 0/7] CT changes required for GuC submission Matthew Brost 2021-07-01 17:15 ` [PATCH 1/7] drm/i915/guc: Relax CTB response timeout Matthew Brost 2021-06-27 23:14 [PATCH 0/7] CT changes required for GuC submission Matthew Brost 2021-06-27 23:14 ` [PATCH 1/7] drm/i915/guc: Relax CTB response timeout Matthew Brost
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210706222010.101522-2-matthew.brost@intel.com \ --to=matthew.brost@intel.com \ --cc=Michal.Wajdeczko@intel.com \ --cc=dri-devel@lists.freedesktop.org \ --cc=intel-gfx@lists.freedesktop.org \ --cc=john.c.harrison@intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.