From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jesse Barnes Subject: Re: [PATCH 18/18] drm/i915: Introduce mapping of user pages into video memory (userptr) ioctl Date: Mon, 22 Oct 2012 15:21:10 -0700 Message-ID: <20121022152110.6c983c10@jbarnes-desktop> References: <1350666204-8101-1-git-send-email-chris@chris-wilson.co.uk> <1350666204-8101-18-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from oproxy7-pub.bluehost.com (oproxy7-pub.bluehost.com [67.222.55.9]) by gabe.freedesktop.org (Postfix) with SMTP id 6C10B9E87A for ; Mon, 22 Oct 2012 15:20:10 -0700 (PDT) In-Reply-To: <1350666204-8101-18-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: Chris Wilson Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Fri, 19 Oct 2012 18:03:24 +0100 Chris Wilson wrote: > By exporting the ability to map user address and inserting PTEs > representing their backing pages into the GTT, we can exploit UMA in order > to utilize normal application data as a texture source or even as a > render target (depending upon the capabilities of the chipset). This has > a number of uses, with zero-copy downloads to the GPU and efficient > readback making the intermixed streaming of CPU and GPU operations > fairly efficient. This ability has many widespread implications from > faster rendering of client-side software rasterisers (chromium), > mitigation of stalls due to read back (firefox) and to faster pipelining > of texture data (such as pixel buffer objects in GL). > > v2: Compile with CONFIG_MMU_NOTIFIER I want to understand the root-only nature of this better. Is locking complexity the only reason we can't treat these pages like normal BOs which can be swapped out from under us as long as they're not pinned into the GTT? Or are there other complications in managing the refcount for these pages? Reminds me: do we also check our bo allocations against the current task's address space, data, file size, locked memory, file count, and rss limits? I dug into the shmem code at one point and seem to remember that we didn't. If not, it might be a good thing to add under a new config option at some point. -- Jesse Barnes, Intel Open Source Technology Center