On 08/03/11 10:12, Super Bisquit wrote: > > > On Wed, Aug 3, 2011 at 4:13 AM, Matthieu Herrb <matthieu.he...@laas.fr > <mailto:matthieu.he...@laas.fr>> 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 > <matthieu.he...@laas.fr <mailto:matthieu.he...@laas.fr>>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