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>