[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1238201922.4039.403.camel@laptop>
Date: Sat, 28 Mar 2009 01:58:42 +0100
From: Peter Zijlstra <peterz@...radead.org>
To: Eric Anholt <eric@...olt.net>
Cc: Andi Kleen <andi@...stfloor.org>, linux-kernel@...r.kernel.org,
dri-devel@...ts.sourceforge.net,
Nick Piggin <nickpiggin@...oo.com.au>
Subject: Re: DRM lock ordering fix series
On Fri, 2009-03-27 at 13:10 -0700, Eric Anholt wrote:
> On Fri, 2009-03-27 at 19:10 +0100, Andi Kleen wrote:
> > On Fri, Mar 27, 2009 at 09:36:45AM -0700, Eric Anholt wrote:
> > > > > You are aware that there is a fast path now (get_user_pages_fast) which
> > > > > is significantly faster? (but has some limitations)
> > > >
> > > > In the code I have, get_user_pages_fast is just a wrapper that calls the
> > > > get_user_pages in the way that I'm calling it from the DRM.
> > >
> > > Ah, I see: that's a weak stub, and there is a real implementation. I
> > > didn't know we could do weak stubs.
> >
> > The main limitation is that it only works for your current process,
> > not another one. For more details you can check the git changelog
> > that added it (8174c430e445a93016ef18f717fe570214fa38bf)
> >
> > And yes it's only faster for architectures that support it, that's
> > currently x86 and ppc.
>
> OK. I'm not too excited here -- 10% of 2% of the CPU time doesn't get
> me to the 10% loss that the slow path added up to. Most of the cost is
> in k{un,}map_atomic of the returned pages.
Also note that doing large gup() with gup_fast() will be undesirable due
to it disabling IRQs. So iterating say several MB worth of pages will
hurt like crazy. Currently all gup_fast() users do a single page lookup.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists