[Intel-gfx] [PATCH 00/13 v4] Batch submission via GuC

O'Rourke, Tom Tom.O'Rourke at intel.com
Fri Jul 17 17:45:56 PDT 2015


On Thu, Jul 09, 2015 at 07:29:01PM +0100, Dave Gordon wrote:
> 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: Add i915_gem_object_create_from_data()
>   drm/i915: Add GuC-related module parameters
>   drm/i915: Add GuC-related header files
>   drm/i915: GuC-specific firmware loader
>   drm/i915: Debugfs interface to read GuC load status
> 
> These five patches make up the GuC loader and its prerequisites.  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 two LRC functions for GuC submission mode
>   drm/i915: GuC submission setup, phase 1
>   drm/i915: Enable GuC firmware log
>   drm/i915: Implementation of GuC 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.

[TOR:] I finished reviewing the first 5 patches for GuC
firmware loading.  These patches look ready to go.
Should we wait until the GuC version 3 firmware is
available from 01.org before merging?

I am still working on the second section for GuC submission.

Thanks,
Tom
> 
> Ben Widawsky (0):
> Vinit Azad (0):
> Michael H. Nguyen (0):
>   created the original versions on which some of these patches are based.
> 
> Alex Dai (6):
>   drm/i915: Add GuC-related module parameters
>   drm/i915: GuC-specific firmware loader
>   drm/i915: Debugfs interface to read GuC load status
>   drm/i915: GuC submission setup, phase 1
>   drm/i915: Enable GuC firmware log
>   drm/i915: Integrate GuC-based command submission
> 
> Dave Gordon (7):
>   drm/i915: Add i915_gem_object_create_from_data()
>   drm/i915: Add GuC-related header files
>   drm/i915: Expose two LRC functions for GuC submission mode
>   drm/i915: Implementation of GuC 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        | 110 +++-
>  drivers/gpu/drm/i915/i915_dma.c            |   4 +
>  drivers/gpu/drm/i915/i915_drv.h            |  15 +
>  drivers/gpu/drm/i915/i915_gem.c            |  53 ++
>  drivers/gpu/drm/i915/i915_guc_reg.h        | 102 ++++
>  drivers/gpu/drm/i915/i915_guc_submission.c | 853 +++++++++++++++++++++++++++++
>  drivers/gpu/drm/i915/i915_params.c         |   9 +
>  drivers/gpu/drm/i915/i915_reg.h            |  15 +-
>  drivers/gpu/drm/i915/intel_guc.h           | 118 ++++
>  drivers/gpu/drm/i915/intel_guc_fwif.h      | 245 +++++++++
>  drivers/gpu/drm/i915/intel_guc_loader.c    | 618 +++++++++++++++++++++
>  drivers/gpu/drm/i915/intel_lrc.c           |  72 ++-
>  drivers/gpu/drm/i915/intel_lrc.h           |   9 +
>  15 files changed, 2211 insertions(+), 30 deletions(-)
>  create mode 100644 drivers/gpu/drm/i915/i915_guc_reg.h
>  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_fwif.h
>  create mode 100644 drivers/gpu/drm/i915/intel_guc_loader.c
> 
> -- 
> 1.9.1
> 


More information about the Intel-gfx mailing list