From owner-freebsd-ppc@FreeBSD.ORG Thu Aug 4 13:45:47 2011 Return-Path: Delivered-To: freebsd-ppc@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 14DD9106566B for ; Thu, 4 Aug 2011 13:45:47 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from adsum.doit.wisc.edu (adsum.doit.wisc.edu [144.92.197.210]) by mx1.freebsd.org (Postfix) with ESMTP id D98DA8FC12 for ; Thu, 4 Aug 2011 13:45:46 +0000 (UTC) MIME-version: 1.0 Received: from avs-daemon.smtpauth1.wiscmail.wisc.edu by smtpauth1.wiscmail.wisc.edu (Sun Java(tm) System Messaging Server 7u2-7.05 32bit (built Jul 30 2009)) id <0LPE00802OWAPX00@smtpauth1.wiscmail.wisc.edu> for freebsd-ppc@freebsd.org; Thu, 04 Aug 2011 08:45:46 -0500 (CDT) Received: from comporellon.tachypleus.net ([unknown] [76.210.68.180]) by smtpauth1.wiscmail.wisc.edu (Sun Java(tm) System Messaging Server 7u2-7.05 32bit (built Jul 30 2009)) with ESMTPSA id <0LPE00MFIOW7UG20@smtpauth1.wiscmail.wisc.edu>; Thu, 04 Aug 2011 08:45:43 -0500 (CDT) Date: Thu, 04 Aug 2011 08:45:42 -0500 From: Nathan Whitehorn In-reply-to: To: Super Bisquit Message-id: <4E3AA286.1050300@freebsd.org> X-Spam-Report: AuthenticatedSender=yes, SenderIP=76.210.68.180 X-Spam-PmxInfo: Server=avs-9, Version=5.6.1.2065439, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2011.8.4.133015, SenderIP=76.210.68.180 References: <20110803054930.GA9201@bluenote.herrb.net> <20110803081338.GB4477@blues.laas.fr> User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:5.0) Gecko/20110704 Thunderbird/5.0 Content-Type: text/plain; CHARSET=US-ASCII; format=flowed Content-Transfer-Encoding: 7BIT X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: ppc@openbsd.org, Matthieu Herrb , FreeBSD PowerPC ML Subject: Re: Question about mouse grabbing and X on Apple hardware. X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Aug 2011 13:45:47 -0000 On 08/03/11 10:12, Super Bisquit wrote: > > > On Wed, Aug 3, 2011 at 4:13 AM, Matthieu Herrb > wrote: > > On Wed, Aug 03, 2011 at 03:18:22AM -0400, Super Bisquit wrote: > > On Wed, Aug 3, 2011 at 1:49 AM, Matthieu Herrb > >wrote: > > > > > On Tue, Aug 02, 2011 at 07:00:12PM -0400, Super Bisquit wrote: > > > > My apologies before hand. > > > > I'm wondering how the OpenBSD PPC port dealt with the mouse > > > > grabbing. > > > > > > Sorry, I don't understand the question. What kind of grabbing > are you > > > talking about? At the X server level, there is nothing MI in this > > > area. > > > > > > > The mouse pointer will get caught on the left edge of the screen > and then > > only a restart of X allows the pointer to be free again. > > And thanks for the reply. > > On OpenBSD/macppc, I don't remember having seen that problem, but I > may be wrong, and I don't use it on a daily basis anymore. We had it > on other architectures though. > > The main reason for this bug is the SIGIO handler in the > Xserver. By default X processes all the data from the mouse driver in > the signal handler attached to SIGIO. With the new pointer > acceleration code this includes a good amount of floating point > computations, and may even trigger some MMX/SSE2 operations in > libpixman to repaint the pointer on the screen. > > If your signal handling code doesn't preserve the FPU (and the > altivec) registers, this is likely to trigger the bug. > > The easiest solution is to disable the code that uses SIGIO to > asynchronously update the pointer. pass --disable-use-sigio-by-default > to configure for this, or set the option in xorg.conf. > > > > > > > > > > > > I would like- if possible and with permission- to use the > same method > > > with > > > > FreeBSD PowerPC to solve/prevent the grabbing. > > > > Again, my apologies beforehand if this post to the mailing > list seems or > > > is > > > > out of place. > > > -- > Matthieu Herrb > > > Thank you for the help and tell DeRaadt thanks also. I'm forwarding > this mail to the FreeBSD PowerPC list for the others to see it. > That's a really fascinating problem. Our signal handling code explicitly preserves FP and Altivec registers. Our setjmp()/longjmp() code does not, for various reasons, but that shouldn't be related to this problem. Are you sure this actually solves the problem permanently? -Nathan