From owner-freebsd-x11@FreeBSD.ORG Tue Feb 26 20:02:37 2008 Return-Path: Delivered-To: freebsd-x11@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D41FA1065670; Tue, 26 Feb 2008 20:02:37 +0000 (UTC) (envelope-from delphij@delphij.net) Received: from tarsier.delphij.net (delphij-pt.tunnel.tserv2.fmt.ipv6.he.net [IPv6:2001:470:1f03:2c9::2]) by mx1.freebsd.org (Postfix) with ESMTP id 5E20F13C4F9; Tue, 26 Feb 2008 20:02:37 +0000 (UTC) (envelope-from delphij@delphij.net) Received: from tarsier.geekcn.org (tarsier.geekcn.org [202.108.54.204]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by tarsier.delphij.net (Postfix) with ESMTP id 6FEE628452; Wed, 27 Feb 2008 04:02:36 +0800 (CST) Received: from localhost (tarsier.geekcn.org [202.108.54.204]) by tarsier.geekcn.org (Postfix) with ESMTP id B7560EB14E8; Wed, 27 Feb 2008 04:02:35 +0800 (CST) X-Virus-Scanned: amavisd-new at geekcn.org Received: from tarsier.geekcn.org ([202.108.54.204]) by localhost (mail.geekcn.org [202.108.54.204]) (amavisd-new, port 10024) with ESMTP id hpXc0WHGE0M0; Wed, 27 Feb 2008 04:02:31 +0800 (CST) Received: from charlie.delphij.net (71.5.7.139.ptr.us.xo.net [71.5.7.139]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by tarsier.geekcn.org (Postfix) with ESMTP id BF643EB11DB; Wed, 27 Feb 2008 04:02:29 +0800 (CST) DomainKey-Signature: a=rsa-sha1; s=default; d=delphij.net; c=nofws; q=dns; h=message-id:date:from:reply-to:organization:user-agent: mime-version:to:cc:subject:references:in-reply-to: x-enigmail-version:openpgp:content-type:content-transfer-encoding; b=XiuwDgaIL+hsCiKiPwTtSJLZuUsW1dojedjaqbhRSkyEk14LCqouJdIFi+8pDQeuH 2rWgi+mS4edlWwM8+pnUw== Message-ID: <47C47052.2000205@delphij.net> Date: Tue, 26 Feb 2008 12:02:26 -0800 From: Xin LI Organization: The FreeBSD Project User-Agent: Thunderbird 2.0.0.9 (X11/20080122) MIME-Version: 1.0 To: cokane@FreeBSD.org 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> <47C46222.7030607@FreeBSD.org> In-Reply-To: <47C46222.7030607@FreeBSD.org> X-Enigmail-Version: 0.95.5 OpenPGP: id=18EDEBA0; url=http://www.delphij.net/delphij.asc Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: freebsd-x11@freebsd.org, d@delphij.net Subject: Re: Xorg vs gettimeofday() and clock_gettime() X-BeenThere: freebsd-x11@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: d@delphij.net List-Id: X11 on FreeBSD -- maintaining and support List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Feb 2008 20:02:38 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Coleman Kane wrote: > 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). Yes, you're absolutely right, we need to do the conversation, otherwise the precision of the time would be truncated to second as observed by the application, which is not good. Cheers, - -- Xin LI http://www.delphij.net/ FreeBSD - The Power to Serve! -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.4 (FreeBSD) iD8DBQFHxHBSi+vbBBjt66ARAhaCAKCVzFI6KIs1xSKzJJjd88doVbXgWgCfZUI0 cNzqOiKQpc/1iHkZ05Q6qzs= =BSmw -----END PGP SIGNATURE-----