On Mon, 2 Jun 2008, Gary Stanley wrote:

At 12:54 AM 6/2/2008, Sean Chittenden wrote:
PS  Is there a reason that time(3) can't be implemented in terms of
clock_gettime(CLOCK_SECOND)?  10ms seems precise enough compared to
time_t's whole second resolution.

Another interesting idea is to map gettimeofday() to userland, sort of like darwin (commpage) and linux (vsyscall) via read only page.

time() can reasonably be implemented like that, but not gettimeofday().
gettimeofday() should have an accuracy of 1 usec and it returns a large
data structure that cannot be locked by simple atomic accesses.  The
read-only page would have to be updated millions of times per second
or take a pagefault to access to give the same functionality as FreeBSD
gettimeofday().  The updates would cost about 100% of 1 CPU.  Other
CPUs could then read the time using locking like that in binuptime()
but more complicated (needs an atomic update for at least the generation
count, and probably more).  The pagefaults would give a smaller
pessimization (I guess slightly longer to reach microtime() than via
the current syscall, and identical time in microtime() to do the update
on demand).

Bruce
_______________________________________________
freebsd-performance@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-performance
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to