Messages in this thread | | | From | Tvrtko Ursulin <> | Subject | [PATCH 0/4] Compact userptr object backing store allocation | Date | Fri, 11 Nov 2016 08:50:16 +0000 |
| |
From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Userptr backing store with SWIOTBL active is currently allocated in the same inefficient manner, with one sg entry per object page, as what the commit 871dfbd67d4e ("drm/i915: Allow compaction upto SWIOTLB max segment size") fixed for regular GEM objects.
We can fix that by adding new a __sg_alloc_table_from_pages core function which allows us to control the maximum desired coalesced segment size.
Other than that the series starts with two simple fixes to sg_alloc_table_from_pages which deal with incorrect data type usage and a theoretical overflow condition. Fixing the latter enables easy addition of the above mentioned __sg_alloc_table_from_pages.
Tvrtko Ursulin (4): lib/scatterlist: Fix offset type in sg_alloc_table_from_pages lib/scatterlist: Avoid potential scatterlist entry overflow lib/scatterlist: Introduce and export __sg_alloc_table_from_pages drm/i915: Use __sg_alloc_table_from_pages for userptr allocations
drivers/gpu/drm/i915/i915_drv.h | 9 +++ drivers/gpu/drm/i915/i915_gem.c | 15 +---- drivers/gpu/drm/i915/i915_gem_userptr.c | 28 ++------- drivers/media/v4l2-core/videobuf2-dma-contig.c | 4 +- drivers/rapidio/devices/rio_mport_cdev.c | 4 +- include/linux/scatterlist.h | 11 ++-- lib/scatterlist.c | 78 ++++++++++++++++++++------ 7 files changed, 87 insertions(+), 62 deletions(-)
-- 2.7.4
| |