Date: Wed, 6 Sep 2000 23:15:21 +1100 (EST) From: Bruce Evans <bde@zeta.org.au> To: Kenjiro Cho <kjc@csl.sony.co.jp> Cc: freebsd-net@FreeBSD.ORG Subject: Re: rdtsc overhead (was Re: Running ALTQ) Message-ID: <Pine.BSF.4.21.0009062310410.26066-100000@besplex.bde.org> In-Reply-To: <20000906165112Y.kjc@csl.sony.co.jp>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 6 Sep 2000, Kenjiro Cho wrote: > > Bruce Evans wrote: > > main() > > { > > __asm(" > > movl $100000000,%ecx > > .align 4,0x90 > > 1: > > rdtsc > > decl %ecx > > nop > > jne 1b > > "); > > } > > > > and it took 30 cycles on a Celeron and 12 cycles on a P5 (32 and 14 > > cycles, respectively, including 2 cycles of loop overhead). > > Hmmm, I've confirmed the result. If another rdtsc is inserted in the > loop, it almost doubles the execution time, which suggests the loop > overhead is negligible. > > But 30 cycles sound a bit too long. As I understand it, rdtsc is not > a serializing instruction. Is it more than latching the counter plus > reading the 64bit value into 2 32bit registers? I don't know exactly what it does. Apperently the latch operation is slow. 12 cycles was on a P5/133 and 30 cycles was on a Celeron 366 overclocked to 522. Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0009062310410.26066-100000>