Hi,

I am investigating a problem where APM resumes on laptops running RedHat
7.3's version of 4.2.0 have event problems. It boils down to XFree's
internal timer (in usecs, as reported e.g. by xev for each event) being
frozen after resume. The problem is initiated by the timer's jump during
resume when hw and sw clock are being synched. As a workaround, if you
omit this sync, the timer does not freeze, but then you've got a wrong
system time. The problem can only be cured by restarting the X server.

A detailed description can be found at 
http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=63509

I've tried to locate the problem by digging through 4.2.0's code. Here's
what I found: The internal timer's value is usually being defined by
GetTimeInMillis(), which is based on gettimeofday(). After a problematic
resume, calls to gettimeofday() are still fine, so the problem is within
the X server. For some reason at event creation, a stale time value is
used instead of a current value from GetTimeInMillis(), resulting in all
subsequent X events having the same time value. As I'm not familiar with
the internals of XFree86's event system, I couldn't easily find the
reason for this. I've come as far as to presume that the wire_to_event
functions for keyboard and mouse events might be the place to look at.

Another point to start might be a pre-4.2.0
.../programs/Xserver/hw/xfree86/CHANGELOG 
message by Egbert Eich as of Oct 01,2001:

 338. Modified GetTimeInMillis() to handle non monotonous system clocks
      (Egbert Eich).

Can someone please tell me where to look specifically for a possible
reason of this problem? Any help is appreciated! I'll provide more info
if requested.

Cheers,
Nils

_______________________________________________
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert

Reply via email to