Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 17 Nov 2000 10:30:13 -0800 (PST)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Mark Murray <mark@grondar.za>
Cc:        arch@FreeBSD.org
Subject:   RE: new monotime() call for all architectures.
Message-ID:  <XFMail.001117103013.jhb@FreeBSD.org>
In-Reply-To: <200011170655.eAH6tCJ05746@gratis.grondar.za>

next in thread | previous in thread | raw e-mail | index | archive | help

On 17-Nov-00 Mark Murray wrote:
> Hi all
> 
> I need a fast-as-possible "time" inside the kernel to help
> speed up the /dev/random device. I say "time", because although
> it needs to be a function of time (preferably accurate and linear),
> it has no need whatsoever to be "real time", so a simple counter
> is quite OK.
> 
> Pentiums, Alphas and IA64's all have a suitable register on chip,
> while I have to make do with nanotime(9) on i386 and i486.
> 
> I have prepared a monotime(9) call for the i386, alpha and ia64
> architectures (patch enclosed). I have been running this for a
> week or two now with promising results (on a Pentium). With
> the exception of the minimum of "glue" (and nanotime on older
> architectures), these functions reduce to one instruction.
> 
> Comments? Suggestions? Nobel Prize nominations? I'd like to
> commit this soonish if possible.

Please use existing functions like rdtsc() instead of duplicating the inline
assembly.  This will help reduce maintenance down the road.  In fact, you might
want to move this to machine/cpufunc.h instead of machine/clock.h.  Then use
the rdtsc() function for x86, alpha_rpcc() for the alpha, and ia64_get_itc()
for ia64.  Note that for ia64, machine/cpufunc.h needs to be fixed to #include
machine/ia64_cpu.h as it does on the alpha.

-- 

John Baldwin <jhb@FreeBSD.org> -- http://www.FreeBSD.org/~jhb/
PGP Key: http://www.baldwin.cx/~john/pgpkey.asc
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.001117103013.jhb>