[PATCH] configure: introduce --{enable, disable}-syscall-clock

Adam Jackson ajax at redhat.com
Mon Apr 5 07:20:04 PDT 2010


On Fri, 2010-04-02 at 11:13 -1000, Eric Anholt wrote:
> On Mon, 29 Mar 2010 14:59:35 -0400, Adam Jackson <ajax at redhat.com> wrote:
> > Yeah, it's not really something I want Linux to default to using either.
> > I mean, we're going to want input threads, so slicing off librt just
> > because it pulls in libpthread is a bit temporary.  And Mesa's GLX
> > support pulls in pthreads already, so the class of device where this
> > applies is pretty thin.
> 
> At the moment, clock_gettime() is the only reason I can't get Mesa off
> of libpthread.  Before a bunch of ugly hacking in libdrm, the overhead
> From pthreads presence was around 10% CPU time on CPU-bound apps on
> i965.  These days it's down to a few percent.

I'm not sure you're blaming the right piece of the world there.  If
you're referring to:

commit 0d7ad7e43ca212b1e9f16cd18f36493cab455e61
Author: Eric Anholt <eric at anholt.net>
Date:   Tue Oct 20 14:19:38 2009 -0700

    intel: Only call clock_gettime once per unreference_final.

then I'm pretty sure the overhead there was calling clock_gettime at
all.  The implementation doesn't have any interaction with thread
support.  Compare runtimes from:

http://people.freedesktop.org/~ajax/syscall/

Pretty sure you'll find them to be just about identical.

> It seems to me like the real problem is that clock_gettime() isn't in
> glibc without the pthreads cost.  Perhaps someone could look into that
> instead of hacking around it in its consumers?

The clock_gettime() implementation is in librt because that's where all
the POSIX realtime stuff lives.  Moving it into glibc wouldn't be
especially difficult, though you'd need to get the symbol versioning
right.

- ajax
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://lists.x.org/archives/xorg-devel/attachments/20100405/9e9224e5/attachment-0001.pgp>


More information about the xorg-devel mailing list