From: Chris Wilson Subject: Re: GEM-related desktop sluggishness due to linear-time arch_get_unmapped_area_topdown() Date: Wed, 30 Mar 2011 08:32:33 +0100 Message-ID: <849307$c7qtj5@azsmga001.ch.intel.com> References: <1301310995.5615.92.camel@wangqingchuan> <1301336010.2217.20.camel@workstation> <1301409864.5615.98.camel@wangqingchuan> <1301421664.2151.12.camel@Portable-Work> <20110329202608.GA3454@viiv.ffwll.ch> Return-path: In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org To: Dave Airlie , Jerome Glisse Cc: r6144 , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org On Wed, 30 Mar 2011 07:57:49 +1000, Dave Airlie wrote: > On Wed, Mar 30, 2011 at 7:04 AM, Jerome Glisse wrote: > > What i had in mind was something little bit more advance that pwrite, > > somethings that would take width,height,pitch of userpage and would be > > able to perform proper blit. But yes pwrite in intel is kind of > > limited. > > TTM has support for userpage binding we just don't use it. Yes, and I've been experimenting with the same in GEM to great effect in the DDX. The complication remains in managing the CPU synchronisation, which suggests that it would only be useful for STREAM_DRAW objects (and perhaps the sub-region updates to STATIC_DRAW). (And for readback, if retrieving the data were the actual bottleneck.) And I did play with a new pread/pwrite interface that did as you suggest, binding the user pages and performing a blit. But by the time you make the interface asynchronous, it becomes much easier to let the client code create the mapping and be fully aware of the barriers. And yes I do concur that vma bookkeeping does impose significant overheads and I have been removing as many mappings from our drivers as I can; within the limitations of the pwrite interface. -Chris -- Chris Wilson, Intel Open Source Technology Centre