X pausing until mouse move (collecting commonalities)

Florent Thoumie flz at FreeBSD.org
Fri Mar 28 12:22:41 PDT 2008


On Fri, Mar 28, 2008 at 6:44 PM, Joe Marcus Clarke <marcus at freebsd.org> wrote:
>
> On Fri, 2008-03-28 at 12:55 -0400, Jung-uk Kim wrote:
>  > On Friday 28 March 2008 12:43 pm, Joe Marcus Clarke wrote:
>  > > On Fri, 2008-03-28 at 12:19 -0400, Coleman Kane wrote:
>  > > > Joe Marcus Clarke wrote:
>  > > > > On Fri, 2008-03-28 at 09:02 -0400, Coleman Kane wrote:
>  > > > >> Joe Marcus Clarke wrote:
>  > > > >>> On Thu, 2008-03-27 at 19:08 -0400, Jung-uk Kim wrote:
>  > > > >>>> On Thursday 27 March 2008 12:44 pm, Joe Marcus Clarke wrote:
>  > > > >>>>> Coleman Kane wrote:
>  > > > >>>>>> Coleman Kane wrote:
>  > > > >>>>>>> Joe Marcus Clarke wrote:
>  > > > >>>>>>>> On Wed, 2008-03-26 at 16:54 -0400, Jung-uk Kim wrote:
>  > > > >>>>>>>>> On Wednesday 26 March 2008 12:50 pm, Joe Marcus Clarke
>  > wrote:
>  > > > >>>>>>>>>> I'm trying to get a list of commonalities to better
>  > > > >>>>>>>>>> focus my troubleshooting.  So far, my two machines
>  > > > >>>>>>>>>> that are affected have the following in common:
>  > > > >>>>>>>>>>
>  > > > >>>>>>>>>> GNOME 2.22 (with hald)
>  > > > >>>>>>>>>> nVidia graphics card (though different drivers)
>  > > > >>>>>>>>>> PS/2 mouse
>  > > > >>>>>>>>>> dual core
>  > > > >>>>>>>>>> ULE scheduler
>  > > > >>>>>>>>>>
>  > > > >>>>>>>>>> My one machine that is not affected differs from this
>  > > > >>>>>>>>>> in that it has an Intel graphics card, USB mouse, and
>  > > > >>>>>>>>>> is not dual core (but HTT).
>  > > > >>>>>>>>>>
>  > > > >>>>>>>>>> It looks like Coleman has a PS/2 mouse as well.  It's
>  > > > >>>>>>>>>> starting to look like the mouse technology might have
>  > > > >>>>>>>>>> something to do with this.  Anyone seeing this problem
>  > > > >>>>>>>>>> with a USB mouse?
>  > > > >>>>>>>>>
>  > > > >>>>>>>>> I think I know why.  Build xorg-server without HAL
>  > > > >>>>>>>>> support option and the attached patch.  With HAL
>  > > > >>>>>>>>> support (default) and hald running, xorg-server
>  > > > >>>>>>>>> auto-detects individual ports with input.mouse
>  > > > >>>>>>>>> capability even without configuration lines in
>  > > > >>>>>>>>> xorg.conf.  If moused is enabled and USB mouse is used,
>  > > > >>>>>>>>> /dev/ums0 is directly used because there is a problem
>  > > > >>>>>>>>> in MD code (see attached patch).  If moused is enabled
>  > > > >>>>>>>>> and PS/2 mouse is used, you end up with two input
>  > > > >>>>>>>>> devices via /dev/sysmouse and /dev/psm0.  I couldn't
>  > > > >>>>>>>>> find a cleaner way to fix this problem, though. :-(
>  > > > >>>>>>>>
>  > > > >>>>>>>> Thanks for finding this.  Here is a patch for hal which
>  > > > >>>>>>>> adds a mouse addon.  The mouse addon polls to find
>  > > > >>>>>>>> whether or not moused has a given mouse device open.  If
>  > > > >>>>>>>> it does, it sets the input device to be /dev/sysmouse
>  > > > >>>>>>>> instead of the actual device. Hopefully it will fix the
>  > > > >>>>>>>> problem without needing to disable hal support in X.  I
>  > > > >>>>>>>> have also merged your gettimeofday patches, jkim.
>  > > > >>>>>>>>
>  > > > >>>>>>>> http://www.marcuscom.com/downloads/hal.diff
>  > > > >>>>>>>>
>  > > > >>>>>>>> Joe
>  > > > >>>>>>>
>  > > > >>>>>>> I had to apply the attached change to your patch in order
>  > > > >>>>>>> to get it to work (addon/ should be addons/). Attached is
>  > > > >>>>>>> the diff to your diff that worked for me.
>  > > > >>>>>>>
>  > > > >>>>>>> --
>  > > > >>>>>>> Coleman Kane
>  > > > >>>>>>
>  > > > >>>>>> Unfortunately, I still experience the same mouse-blocked
>  > > > >>>>>> behavior after applying this patch, reinstalling the port,
>  > > > >>>>>> and then restarting my machine (and setting the mouse
>  > > > >>>>>> device back to SysMouse and /dev/sysmouse in xorg.conf,
>  > > > >>>>>> and re-enabling moused).
>  > > > >>>>>
>  > > > >>>>> Yeah.  While the addon is doing its job, X now opens two
>  > > > >>>>> instances of /dev/sysmouse :-(.  I still don't know why it
>  > > > >>>>> does this when it doesn't open two instances of /dev/psm0.
>  > > > >>>>
>  > > > >>>> I found why.  See config/hal.c in xorg-server.  It does not
>  > > > >>>> add Option "Device" although Linux-specific and undocumented
>  > > > >>>> Option "Path" for evdev is added.  Thus default mouse device
>  > > > >>>> /dev/sysmouse is picked up. Fortunately the bug is fixed in
>  > > > >>>> the latest version with the following commit:
>  > > > >>>>
>  > > > >>>> http://cgit.freedesktop.org/xorg/xserver/commit/?id=47eb658e
>  > > > >>>>802775021e3efec109f95431cca188ca
>  > > > >>>>
>  > > > >>>> This chunk:
>  > > > >>>>
>  > > > >>>> ---------
>  > > > >>>> +   /* most drivers use device.. not path. evdev uses both
>  > > > >>>> however, but the +    * path version isn't documented
>  > > > >>>> apparently. support both for now. */ add_option(&options,
>  > > > >>>> "path", path);
>  > > > >>>> +   add_option(&options, "device", path);
>  > > > >>>> ---------
>  > > > >>>>
>  > > > >>>> See the attached patches.
>  > > > >>>
>  > > > >>> Ah, this explains a lot.  I have also updated my hal.diff
>  > > > >>> with your correction, and some code to make sure that the
>  > > > >>> mouse device is correct when moused is running.  Local tests
>  > > > >>> indicate that it should do the job.
>  > > > >>>
>  > > > >>> Joe
>  > > > >>
>  > > > >> So, does this mean we should upgrade the sysutils/hald port
>  > > > >> (and other related ones) again? Is this in a released version?
>  > > > >
>  > > > > Apply http://www.marcuscom.com/downloads/hal.diff and
>  > > > > http://people.freebsd.org/~jkim/xorg-server.diff then rebuild
>  > > > > hal and xorg-server.  Then reboot.  All should be well again
>  > > > > with moused/hal/X.
>  > > > >
>  > > > > Joe
>  > > >
>  > > > Thanks,
>  > > >
>  > > > If we submit a PR on this, to fix the problem, is there a version
>  > > > of hald that's released which already has the fix, or should we
>  > > > just submit a PR with patches to both ports?
>  > >
>  > > I'm trying to get with flz so that he can commit the xorg-server
>  > > part. I will commit the hal patch soon.  I don't think a PR is
>  > > necessary this point.  We're close to having all the players on
>  > > board already.
>  >
>  > Joe,
>  >
>  > I am trying to fix 'everything is sysmouse' problem in bsd_mouse.c.
>  > You (or flz) can go ahead and commit the hal.c patch but I don't want
>  > two revision bumps.  I will post bsd_mouse.c patch when I am done
>  > with testing.
>
>  Okay, I just got permission from flz to commit your xorg-server patch,
>  but I will hold off.  I'm sure flz will give you permission when you're
>  set.  I'm copying him on this.

As said on IRC, as long as it's tested, I'm fine with it.

-- 
Florent Thoumie
flz at FreeBSD.org
FreeBSD Committer


More information about the freebsd-x11 mailing list