Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965461AbcKKIuo (ORCPT ); Fri, 11 Nov 2016 03:50:44 -0500 Received: from mail-wm0-f68.google.com ([74.125.82.68]:35887 "EHLO mail-wm0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935064AbcKKIul (ORCPT ); Fri, 11 Nov 2016 03:50:41 -0500 From: Tvrtko Ursulin X-Google-Original-From: Tvrtko Ursulin To: Intel-gfx@lists.freedesktop.org Cc: linux-kernel@vger.kernel.org, Tvrtko Ursulin Subject: [PATCH 0/4] Compact userptr object backing store allocation Date: Fri, 11 Nov 2016 08:50:16 +0000 Message-Id: <1478854220-3255-1-git-send-email-tvrtko.ursulin@linux.intel.com> X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1485 Lines: 32 From: Tvrtko Ursulin 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