public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
* [PATCH 0/9 v6] Batch submission via GuC
@ 2015-08-12 14:43 Dave Gordon
  2015-08-12 14:43 ` [PATCH 1/9 v6] drm/i915: GuC-specific firmware loader Dave Gordon
                   ` (9 more replies)
  0 siblings, 10 replies; 14+ messages in thread
From: Dave Gordon @ 2015-08-12 14:43 UTC (permalink / raw)
  To: intel-gfx

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

In this second section, we implement the GuC submission mechanism, and
link it into the (execlist-based) submission path. At this stage, it is
not yet enabled by default; it is activated only if the kernel command
line explicitly switches it on.

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.

On platforms where there is no GuC, or where GuC submission is not
specifically enabled, batch submission will continue to use the execlist
(or ringbuffer) mechanisms.  On the other hand, if GuC submission is
requested but the GuC firmware cannot be found or is invalid, the GPU
will be unusable.

It is expected that a subsequent patch will enable GuC submission by
default once the signed firmware is published on 01.org.

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 (4):
  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

 Documentation/DocBook/drm.tmpl             |  14 +
 drivers/gpu/drm/i915/Makefile              |   4 +
 drivers/gpu/drm/i915/i915_debugfs.c        | 146 ++++-
 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      |  14 +-
 drivers/gpu/drm/i915/i915_guc_reg.h        |  17 +-
 drivers/gpu/drm/i915/i915_guc_submission.c | 901 +++++++++++++++++++++++++++++
 drivers/gpu/drm/i915/i915_reg.h            |  15 +-
 drivers/gpu/drm/i915/intel_guc.h           | 122 ++++
 drivers/gpu/drm/i915/intel_guc_fwif.h      |   9 +-
 drivers/gpu/drm/i915/intel_guc_loader.c    | 611 +++++++++++++++++++
 drivers/gpu/drm/i915/intel_lrc.c           |  65 ++-
 drivers/gpu/drm/i915/intel_lrc.h           |   8 +
 15 files changed, 1918 insertions(+), 44 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

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2015-08-14  9:09 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-12 14:43 [PATCH 0/9 v6] Batch submission via GuC Dave Gordon
2015-08-12 14:43 ` [PATCH 1/9 v6] drm/i915: GuC-specific firmware loader Dave Gordon
2015-08-14  9:05   ` Daniel Vetter
2015-08-12 14:43 ` [PATCH 2/9 v6] drm/i915: Debugfs interface to read GuC load status Dave Gordon
2015-08-12 14:43 ` [PATCH 3/9 v6] drm/i915: Expose one LRC function for GuC submission mode Dave Gordon
2015-08-12 14:43 ` [PATCH 4/9 v6] drm/i915: Prepare for GuC-based command submission Dave Gordon
2015-08-12 14:43 ` [PATCH 5/9 v6] drm/i915: Enable GuC firmware log Dave Gordon
2015-08-12 14:43 ` [PATCH 6/9 v6] drm/i915: Implementation of GuC submission client Dave Gordon
2015-08-12 14:43 ` [PATCH 7/9 v6] drm/i915: Interrupt routing for GuC submission Dave Gordon
2015-08-12 14:43 ` [PATCH 8/9 v6] drm/i915: Integrate GuC-based command submission Dave Gordon
2015-08-12 14:43 ` [PATCH 9/9 v6] drm/i915: Debugfs interface for GuC submission statistics Dave Gordon
2015-08-12 14:57 ` [PATCH 0/9 v6] Batch submission via GuC Dave Gordon
2015-08-13  2:35   ` O'Rourke, Tom
2015-08-14  9:09     ` Daniel Vetter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox