Hi,
I am investigating a problem where APM resumes on laptops running RedHat 7.3's version of 4.2.0 result in X 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 after 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() (which should still be OK), 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. Maybe the wire_to_event functions for keyboard and mouse events might be the place to look at. Another point to start might be a .../programs/Xserver/hw/xfree86/CHANGELOG message by Brendan 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 source 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
