Date: Tue, 26 Feb 2008 14:01:54 -0500 From: Coleman Kane <cokane@FreeBSD.org> To: d@delphij.net Cc: freebsd-x11@freebsd.org Subject: Re: Xorg vs gettimeofday() and clock_gettime() Message-ID: <47C46222.7030607@FreeBSD.org> In-Reply-To: <47C45ABF.7000408@delphij.net> References: <47C320DB.70004@delphij.net> <18371.11144.568407.26227@gromit.timing.com> <20080226100728.GU83599@server.vk2pj.dyndns.org> <18372.13307.731931.284086@gromit.timing.com> <47C45ABF.7000408@delphij.net>
next in thread | previous in thread | raw e-mail | index | archive | help
Xin LI wrote: > John E Hein wrote: > > Peter Jeremy wrote at 21:07 +1100 on Feb 26, 2008: > > > My guess is pointer acceleration and/or 3-button emulation. Out of > > > interest, I just ktrace'd my X server for 5 seconds (doing nothing in > > > particular) and got 318 syscalls, including 106 gettimeofday() calls. > > > By waving the mouse around inside a window, I get 4015 syscalls, > > > including 844 gettimeofday() and 1136 sigprocmask() calls in 5 > > > secinds. In some cases, there are consecutive gettimeofday() calls > > > with no other syscalls intervening. These numbers do seem somewhat > > > excessive. > > > Interesting. > > > I tried a ktrace session for about 10 seconds _without_ moving the > > mouse and got 71332 gettimeofday calls out of 142707 total calls and > > signals (all SIGALRM - 2051). > > > After about 7 minutes with mouse movement (and typing this message), I > > saw 193356 gettimeofdays vs 502875 total. > > > I (obviously) haven't looked at the code. But perhaps this is an area > > that could possibly be improved by more judicious use of select or > > kqueue and more independence of interval timing. > > I think it was some delay call, gettimeofday()s is mostly happen when > there is some animations, in the single Xorg process. > > I will try to make a patch this weekend. Last weekend I tried to modify > only xproto and rebuild dbus and xorg-server, but it seems that it does > not like it - with mixed gettimeofday() and clock_gettime(), the display > will blank from time to time. > > Cheers, You'll want to remember that clock_gettime returns timspec.tv_nsec (nanoseconds), while gettimeofday returns timeval.tv_usec (microseconds). In order to perform the conversion, you'll want to make sure you convert nanoseconds to microseconds (*1000). -- Coleman Kane
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?47C46222.7030607>