[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@xxxxxxxxx wrote: > From: Ankitprasad Sharma <ankitprasad.r.sharma@xxxxxxxxx> > > 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 > _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx