Robert Watson wrote: > On Fri, 28 Oct 2005, David Xu wrote: >> Poul-Henning Kamp wrote: >>>> On the other hand, a lower risk change might be to simply add a new >>>> CLOCK_ type for lower resolution, and have a timer synchronize a >>>> variable to the system clock once every 1/10 of a second. This >>>> avoids having to muck with VM layout, etc. >>> >>> Is the CLOCK_* namespace ours to muck about with in the first place? >>> >> I prefer this way, can you implement it? The global page idea is a >> complex, someone can slowly work on it, there are many things can be >> done, for example, fast syscall using sysenter/sysexit. > > I'm happy to take a stab at this. > > We still need someone to grab the context switch time keeping by the > horns and Do Something, though. If I understand what was said earlier, the getmicrotime() kernel function ought to maintain the time at "(~ 1 msec)" precision. Could getmicrotime() be exported as a syscall, so that we could do something like this: --- lib/libc/gen/time.c~ Fri Jul 18 22:53:46 2003 +++ lib/libc/gen/time.c Fri Oct 28 13:04:26 2005 _at__at_ -47,7 +47,8 _at__at_ struct timeval tt; time_t retval; - if (gettimeofday(&tt, (struct timezone *)0) < 0) + getmicrotime(&tt); + if (tt.tv_sec == 0) retval = -1; else retval = tt.tv_sec; Note that this might even cause time(2) to return an error if the system is using dummyclock, which could be considered a feature. :-) -- -ChuckReceived on Fri Oct 28 2005 - 15:24:46 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:46 UTC