[Intel-gfx] [PATCH v3 0/4] Support for creating/using Stolen memory backed objects

Jesse Barnes jbarnes at virtuousgeek.org
Thu May 21 11:53:58 PDT 2015


[Cc'ing Chris, not sure if he saw the updated version to give his r-b]


On 05/06/2015 03:15 AM, ankitprasad.r.sharma at intel.com wrote:
> From: Ankitprasad Sharma <ankitprasad.r.sharma at intel.com>
> 
> This patch series adds support for creating/using Stolen memory backed
> objects.
> 
> Despite being a unified memory architecture (UMA) some bits of memory
> are more equal than others. In particular we have the thorny issue of
> stolen memory, memory stolen from the system by the BIOS and reserved
> for igfx use. Stolen memory is required for some functions of the GPU
> and display engine, but in general it goes wasted. Whilst we cannot
> return it back to the system, we need to find some other method for
> utilising it. As we do not support direct access to the physical address
> in the stolen region, it behaves like a different class of memory,
> closer in kin to local GPU memory. This strongly suggests that we need a
> placement model like TTM if we are to fully utilize these discrete
> chunks of differing memory.
> 
> To add support for creating Stolen memory backed objects, we extend the
> drm_i915_gem_create structure, by adding a new flag through which user
> can specify the preference to allocate the object from stolen memory,
> which if set, an attempt will be made to allocate the object from stolen
> memory subject to the availability of free space in the stolen region.
> 
> This patch series adds support for clearing buffer objects via blitter
> engines. This is particularly useful for clearing out the memory from
> stolen region, but can also be used for other shmem allocated objects.
> Also adding support for stealing purgable stolen pages, if we run out
> of stolen memory when trying to allocate an object.
> 
> v2: Added support for read/write from/to objects not backed by
> shmem using the pread/pwrite interface.
> Also extended the current get_aperture ioctl to retrieve the
> total and available size of the stolen region
> 
> v3: Removed the extended get_aperture ioctl patch 5 (to be submitted as
> part of other patch series), addressed comments by Chris about pread/pwrite
> for non shmem backed objects
> 
> This can be verified using IGT tests: igt/gem_create_stolen
> 
> Ankitprasad Sharma (3):
>   drm/i915: Clearing buffer objects via blitter engine
>   drm/i915: Support for creating Stolen memory backed objects
>   drm/i915: Support for pread/pwrite from/to non shmem backed objects
> 
> Chris Wilson (1):
>   drm/i915: Add support for stealing purgable stolen pages
> 
>  drivers/gpu/drm/i915/Makefile          |   1 +
>  drivers/gpu/drm/i915/i915_dma.c        |   3 +
>  drivers/gpu/drm/i915/i915_drv.h        |   4 +
>  drivers/gpu/drm/i915/i915_gem.c        | 168 ++++++++++++++++++++++++----
>  drivers/gpu/drm/i915/i915_gem_exec.c   | 197 +++++++++++++++++++++++++++++++++
>  drivers/gpu/drm/i915/i915_gem_stolen.c | 121 ++++++++++++++++++--
>  drivers/gpu/drm/i915/intel_lrc.c       |   2 +-
>  drivers/gpu/drm/i915/intel_lrc.h       |   2 +
>  include/uapi/drm/i915_drm.h            |  15 +++
>  9 files changed, 480 insertions(+), 33 deletions(-)
>  create mode 100644 drivers/gpu/drm/i915/i915_gem_exec.c
> 



More information about the Intel-gfx mailing list