From: Dave Gordon <david.s.gordon@intel.com>
To: intel-gfx@lists.freedesktop.org
Subject: [PATCH 00/10 v5] Batch submission via GuC
Date: Wed, 29 Jul 2015 18:48:28 +0100 [thread overview]
Message-ID: <1438192118-5807-1-git-send-email-david.s.gordon@intel.com> (raw)
This patch series enables command submission via the GuC. In this mode,
instead of the host CPU driving the execlist port directly, it hands
over work items to the GuC, using a doorbell mechanism to tell the GuC
that new items have been added to its work queue. The GuC then dispatches
contexts to the various GPU engines, and manages the resulting context-
switch interrupts. Completion of a batch is however still signalled to
the CPU; the GuC is not involved in handling user interrupts.
There are two subsequences within the patch series:
drm/i915: GuC-specific firmware loader
drm/i915: Debugfs interface to read GuC load status
These two patches provide the GuC loader and a debugfs interface to
verify the resulting state. At this point in the sequence we can load
and activate the GuC firmware, but not submit any batches through it.
(This is nonetheless a potentially useful state, as the GuC could do
other useful work even when not handling batch submissions).
drm/i915: Expose one LRC function for GuC submission mode
drm/i915: Prepare for GuC-based command submission
drm/i915: Enable GuC firmware log
drm/i915: Implementation of GuC submission client
drm/i915: Interrupt routing for GuC submission
drm/i915: Integrate GuC-based command submission
drm/i915: Debugfs interface for GuC submission statistics
drm/i915: Enable GuC submission, where supported
In this second section, we implement the GuC submission mechanism, link
it into the (execlist-based) submission path, and finally enable it
(on supported platforms).
On platforms where there is no GuC, or if GuC submission is explicitly
disabled, batch submission will revert to using the execlist mechanism
directly. On the other hand, if the GuC firmware cannot be found or is
invalid, the GPU will be unusable.
The GuC firmware itself is not included in this patchset; it is or will
be available for download from https://01.org/linuxgraphics/downloads/
This driver works with and requires GuC firmware revision 3.x. It will
not work with any firmware version 1.x, as the GuC protocol in those
revisions was incompatible and is no longer supported.
Ben Widawsky (0):
Vinit Azad (0):
Michael H. Nguyen (0):
created the original versions on which some of these patches are based.
Alex Dai (5):
drm/i915: GuC-specific firmware loader
drm/i915: Debugfs interface to read GuC load status
drm/i915: Prepare for GuC-based command submission
drm/i915: Enable GuC firmware log
drm/i915: Integrate GuC-based command submission
Dave Gordon (5):
drm/i915: Expose one LRC function for GuC submission mode
drm/i915: Implementation of GuC submission client
drm/i915: Interrupt routing for GuC submission
drm/i915: Debugfs interface for GuC submission statistics
drm/i915: Enable GuC submission, where supported
Documentation/DocBook/drm.tmpl | 14 +
drivers/gpu/drm/i915/Makefile | 4 +
drivers/gpu/drm/i915/i915_debugfs.c | 122 +++-
drivers/gpu/drm/i915/i915_dma.c | 9 +
drivers/gpu/drm/i915/i915_drv.h | 11 +
drivers/gpu/drm/i915/i915_gem.c | 16 +
drivers/gpu/drm/i915/i915_gpu_error.c | 13 +-
drivers/gpu/drm/i915/i915_guc_reg.h | 17 +-
drivers/gpu/drm/i915/i915_guc_submission.c | 887 +++++++++++++++++++++++++++++
drivers/gpu/drm/i915/i915_params.c | 4 +-
drivers/gpu/drm/i915/i915_reg.h | 15 +-
drivers/gpu/drm/i915/intel_guc.h | 122 ++++
drivers/gpu/drm/i915/intel_guc_fwif.h | 3 +-
drivers/gpu/drm/i915/intel_guc_loader.c | 613 ++++++++++++++++++++
drivers/gpu/drm/i915/intel_lrc.c | 65 ++-
drivers/gpu/drm/i915/intel_lrc.h | 8 +
16 files changed, 1881 insertions(+), 42 deletions(-)
create mode 100644 drivers/gpu/drm/i915/i915_guc_submission.c
create mode 100644 drivers/gpu/drm/i915/intel_guc.h
create mode 100644 drivers/gpu/drm/i915/intel_guc_loader.c
--
1.9.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next reply other threads:[~2015-07-29 17:48 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-29 17:48 Dave Gordon [this message]
2015-07-29 17:48 ` [PATCH 01/10 v5] drm/i915: GuC-specific firmware loader Dave Gordon
2015-08-06 21:35 ` O'Rourke, Tom
2015-07-29 17:48 ` [PATCH 02/10 v5] drm/i915: Debugfs interface to read GuC load status Dave Gordon
2015-07-29 17:48 ` [PATCH 03/10 v5] drm/i915: Expose one LRC function for GuC submission mode Dave Gordon
2015-07-29 17:48 ` [PATCH 04/10 v5] drm/i915: Prepare for GuC-based command submission Dave Gordon
2015-07-29 17:48 ` [PATCH 05/10 v5] drm/i915: Enable GuC firmware log Dave Gordon
2015-07-29 17:48 ` [PATCH 06/10 v5] drm/i915: Implementation of GuC submission client Dave Gordon
2015-07-29 17:48 ` [PATCH 07/10 v5] drm/i915: Interrupt routing for GuC submission Dave Gordon
2015-07-29 17:48 ` [PATCH 08/10 v5] drm/i915: Integrate GuC-based command submission Dave Gordon
2015-07-29 17:48 ` [PATCH 09/10 v5] drm/i915: Debugfs interface for GuC submission statistics Dave Gordon
2015-07-29 17:48 ` [PATCH 10/10 v5] drm/i915: Enable GuC submission, where supported Dave Gordon
2015-08-06 21:55 ` [PATCH 00/10 v5] Batch submission via GuC O'Rourke, Tom
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=1438192118-5807-1-git-send-email-david.s.gordon@intel.com \
--to=david.s.gordon@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox