On Tue, Aug 24, 2010 at 03:55:41PM +0800, ykzhao wrote: > On Tue, 2010-08-24 at 09:59 +0800, Daniel Stone wrote: > > That doesn't change anything - if a system is using ID 6 for something > > else, then using 6 is wholly incorrect, no matter whether you use the > > constant directly, define some other symbol for it, or whatever. > > Maybe the system is using the ID 6 for something else. But in theory it > should not affect the system-call of posix timer.
What do you mean, it shouldn't affect anything? What if timer ID 6 is being used for 'number of seconds since last email to xorg-devel'? > If the CLOCK_MONOTONIC_COARSE posix timer is already supported in the > linux kernel(clockid is 6), the system-call of "clock_getres/gettime(6, > &tp)" will return the valid value. It will return a valid value _for that clock_. That clock may be exactly what you don't want, if clock ID 6 is actually something else. > If the CLOCK_MONOTONIC_COARSE is not supported in the linux kernel, the > system-call of "clock_getres/gettime(6, &tp)" will return the invalid > value, which indicates that we will fallback to the next posix > timer(CLOCK_MONOTONIC). Hopefully, yes. > Of course there exists another scenario. The CLOCK_MONOTONIC_COARSE > posix timer is not supported. In course of compiling the Xorg we add the > macro definition of "CLOCK_MONOTONIC_COARSE=3". 3?!? > In such case we will use > the incorrect posix timer after calling the function of > clock_getres(CLOCK_MONOTONIC_COARSE, &tp). But if we compile it again > under the latest glibc, we will get the warning message of "macro > redefinition". > > Based on the above consideration, not sure whether it is meaningful to > use the constant value(6) for the system-call of clock_getres? Otherwise > we will have to consider the following two cases: > a. CLOCK_MONOTONIC_COARSE is not defined > in /usr/include/linux/time.h > b. CLOCK_MONOTONIC_COARSE is already defined. But the corresponding > id is not 6. > > If wrong, please correct me. 6 is not meaningful in any way. Only CLOCK_MONOTONIC_COARSE, _as defined by the system headers_, means a coarse/non-HPET monotonic clock. Nothing else - not 6, not 3. So, if it's not in the system headers, I don't think we should be using it. I'm not really sure if I can be more clear ...
signature.asc
Description: Digital signature
_______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel