From owner-freebsd-stable@FreeBSD.ORG Thu Feb 28 20:33:23 2008 Return-Path: Delivered-To: freebsd-stable@FreeBSD.org Received: from [127.0.0.1] (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by hub.freebsd.org (Postfix) with ESMTP id 0BE10106566B; Thu, 28 Feb 2008 20:33:23 +0000 (UTC) (envelope-from jkim@FreeBSD.org) From: Jung-uk Kim To: freebsd-stable@FreeBSD.org Date: Thu, 28 Feb 2008 15:33:12 -0500 User-Agent: KMail/1.6.2 References: <47C6FDD0.2040902@mbnet.fi> <200802281443.36892.jkim@FreeBSD.org> <47C71003.1050206@FreeBSD.org> In-Reply-To: <47C71003.1050206@FreeBSD.org> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200802281533.14212.jkim@FreeBSD.org> Cc: Teemu Korhonen , Kris Kennaway , Xin LI Subject: Re: jerky mouse still in 7.0-RELEASE X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Feb 2008 20:33:23 -0000 On Thursday 28 February 2008 02:48 pm, Kris Kennaway wrote: > Jung-uk Kim wrote: > > On Thursday 28 February 2008 01:30 pm, Teemu Korhonen wrote: > >> Did anyone find a solution to the "jerky mouse" -problem? It > >> still exists in 7.0-RELEASE. > >> > >> I have pretty much exact same symptoms as in this post: > > > > http://lists.freebsd.org/pipermail/freebsd-stable/2008-January/03 > >9599.html > > > > No. However, the problem was well analyzed by delphij: > > > > http://docs.freebsd.org/cgi/mid.cgi?47C320DB.70004 > > > > Jung-uk Kim > > Hmm, that is strange. The real question is why X is doing so many > gettimeofday syscalls at all. http://www.x.org/wiki/Development/Documentation/InputEventProcessing 'For a motion event, the driver calls now xf86PostMotionEvent() and we are back on the server's side. For button events it is xf86PostButtonEvent(). Those in turn call GetPointerEvents() (GetKeyboardEvents() for keyboard events) which creates the necessary number of events and returns them to the caller. GetTimeInMillis() is called inside GetPointerEvents() and timestamps the OS time on the event. Inside the same function, miPointerSetPosition() is called to re-paint the mouse on the screen. It calls miPointerMoved(). The miPointerMoved() decides to start the hw or the sw management/rendering of the cursor (see section Cursor rendering). After this choose the events are put - one by one - onto the event queue using mieqEnqueue().' I believe GetTimeInMillis() is unavoidable. It uses gettimeofday(2) or clock_gettime(2) depending on OS since xorg-server-1.2.99.0: http://lists.freedesktop.org/archives/xorg/2006-November/019334.html Somehow it was not used in FreeBSD, though: http://docs.freebsd.org/cgi/mid.cgi?20080227103210.694787ec Jung-uk Kim