Hi all, So here we go with the scary patches ;-) I've been beating in this up and down and we also now have a fairly nice set of i-g-t tests to check corner-cases of the clflushing and similar. The mm prefault helper patch is included here for context, I've submitted that for inclusion through -mm. Review, comments, flames highly welcome. Cheers, Daniel Daniel Vetter (14): drm/i915: merge shmem_pwrite slow&fast-path drm/i915: merge shmem_pread slow&fast-path drm: add helper to clflush a virtual address range drm/i915: move clflushing into shmem_pread drm/i915: kill ranged cpu read domain support drm/i915: don't use gtt_pwrite on LLC cached objects drm/i915: don't call shmem_read_mapping unnecessarily mm: extend prefault helpers to fault in more than PAGE_SIZE drm/i915: drop gtt slowpath drm/i915: don't clobber userspace memory before commiting to the pread drm/i915: implement inline clflush for pwrite drm/i915: fall back to shmem pwrite when the buffer is not accessible drm/i915: use uncached writes in pwrite drm/i915: extract copy helpers from shmem_pread|pwrite drivers/gpu/drm/drm_cache.c | 23 ++ drivers/gpu/drm/i915/i915_drv.h | 7 - drivers/gpu/drm/i915/i915_gem.c | 731 ++++++++++++++------------------------- include/drm/drmP.h | 1 + include/linux/pagemap.h | 28 +- 5 files changed, 304 insertions(+), 486 deletions(-) -- 1.7.7.5