From: Alan Previn <alan.previn.teres.alexis@intel.com>
To: intel-gfx@lists.freedesktop.org
Subject: [Intel-gfx] [PATCH v3 0/1] Delay disabling GuC scheduling of an idle context
Date: Thu, 22 Sep 2022 22:30:43 -0700 [thread overview]
Message-ID: <20220923053044.360293-1-alan.previn.teres.alexis@intel.com> (raw)
This series adds a delay before disabling scheduling of the guc-context
when a context has become idle to avoid costly re-registration that may
occur immediately after. The 2nd patch should explain it quite well.
The origin of this series was posted by Matthew Brost back in Oct 2021
(https://patchwork.freedesktop.org/series/96167/). However no real
world workload performance impact was available until recently proving
it's intended results.
This series is a redo of a prior patch that was reverted:
2ccddb758079d0c62ce03e69ee8929bb212f7799 drm/i915/guc: Add delay to
disable scheduling after pin count goes to zero
The cause for the reversion is now fixed here (was not caught due to
issues with CI reporting at that time). Two additional changes included
in this redo and restarting as new series / revs:
- Resolve race between guc_request_alloc and guc_context_close in
completing the delayed disable-guc-scheduling worker.
- GT Reset flow properly cancelling delayed disable-sched worker and
closing contexts that were were still awaiting that delayed task.
Changes from prior revs:
v2: - Removed unused function prototype.
v1: - Changed the added guc's sched_disable_foo debugfs tunable knobs
to unsigned int type (Tvrtko Ursulin)
- Added more comments in the race-resolution code change
between guc_request_alloc and context-close (Tvrtko Ursulin)
- Increased the timeout on the race-resolution code change
between guc_request_alloc and context-close (Daniele Ceraolo Spurio)
- As part of guc reset preparation flow, instead of creating a new
function (taking a whole round of locks) to deal with the contexts
that are in the midst of awaiting the delayed-disable-sched worker
move that code inside scrub_guc_desc_for_outstanding_g2h before
we check for 'pending_disable' contexts.
Matthew Brost (1):
drm/i915/guc: Delay disabling guc_id scheduling for better hysteresis
drivers/gpu/drm/i915/gem/i915_gem_context.c | 2 +-
drivers/gpu/drm/i915/gt/intel_context.h | 8 +
drivers/gpu/drm/i915/gt/intel_context_types.h | 7 +
drivers/gpu/drm/i915/gt/uc/intel_guc.h | 16 ++
.../gpu/drm/i915/gt/uc/intel_guc_debugfs.c | 61 ++++++
.../gpu/drm/i915/gt/uc/intel_guc_submission.c | 205 +++++++++++++++---
drivers/gpu/drm/i915/i915_selftest.h | 2 +
7 files changed, 274 insertions(+), 27 deletions(-)
base-commit: 5cc2b4b9ebd4fd8631290bba321ecddbc07a822b
--
2.25.1
next reply other threads:[~2022-09-23 5:29 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-23 5:30 Alan Previn [this message]
2022-09-23 5:30 ` [Intel-gfx] [PATCH v3 1/1] drm/i915/guc: Delay disabling guc_id scheduling for better hysteresis Alan Previn
2022-09-23 7:18 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for Delay disabling GuC scheduling of an idle context Patchwork
2022-09-23 7:38 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2022-09-23 18:28 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
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=20220923053044.360293-1-alan.previn.teres.alexis@intel.com \
--to=alan.previn.teres.alexis@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
/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: link
Be 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.