Suggestions on Avoiding syscall Overhead

Robert Watson rwatson at FreeBSD.org
Tue Apr 24 12:25:07 UTC 2007


On Mon, 23 Apr 2007, David G Lawrence wrote:

>   gettimeofday(2) returns microsecond precision, so I don't see how this 
> could be made accelerated via a mapped global page. time(3) [which is 
> currently a wrapper for gettimeofday(2)], on the other had, could be put 
> into such a page since it only updates once a second.

If we do this, we will need to be careful, perhaps just in documentation, as 
it leads to non-monotonicity if multiple time sources are queried 
sequentially.

On systems with reliable hardware characteristics, such as in Mac OS X, 
precision time querying is supported by providing a kernel-exported estimate 
of the TSC->realtime rate and offset.  This allows zero-system call querying 
of quite accurate time information.  I believe in Mac OS X, this information 
is exported using a shared memory page so that the cost of getting that 
information is also low.

Robert N M Watson
Computer Laboratory
University of Cambridge


More information about the freebsd-current mailing list