From: "Alexei A. Frounze" Newsgroups: comp.os.msdos.djgpp Subject: Re: Reading MSR (Athlon multiplier) Date: Thu, 18 Jan 2001 08:37:05 -0500 Lines: 66 Message-ID: <946rg8$c61d6$1@ID-57378.news.dfncis.de> References: <3a66161d DOT 226362160 AT news DOT sci DOT fi> <945a90$ckgq1$1 AT ID-57378 DOT news DOT dfncis DOT de> <945itn$3ai$1 AT nnrp1 DOT deja DOT com> <945mn8$cjroo$1 AT ID-57378 DOT news DOT dfncis DOT de> <946ofe$vlp$1 AT nnrp1 DOT deja DOT com> NNTP-Posting-Host: pppa70-resalerochester5-5r7108.dialinx.net (4.4.218.3) X-Trace: fu-berlin.de 979824970 12780966 4.4.218.3 (16 [57378]) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.50.4133.2400 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com it does not really matter. you know why? because the only thing we want is having that value from RDTSC after a certain period of time. it doesn't matter what CPU does meanwhile (messes with kernel code or user task or with the stack you meantion). and even if you talk about the overhead, this overhead simply shifts everything in time (e.g. adds the same constant value to the value from RDTSC). and when we compute the difference this "overhead" disappears. do you care about value of (say) (5-2) more than about value of (7-4)??? btw, if there was something like that overhead, it would have less contribution to the measured frequency rather than contribution of timer accuracy and BIOS code which increments the counter at 40h:6ch. -- Alexei A. Frounze alexfru [AT] chat [DOT] ru frounze [AT] ece [DOT] rochester [DOT] edu http://alexfru.chat.ru http://members.xoom.com/alexfru/ http://welcome.to/pmode/ "Tom St Denis" wrote in message news:946ofe$vlp$1 AT nnrp1 DOT deja DOT com... > In article <945mn8$cjroo$1 AT ID-57378 DOT news DOT dfncis DOT de>, > "Alexei A. Frounze" wrote: > > "Tom St Denis" wrote in message > > news:945itn$3ai$1 AT nnrp1 DOT deja DOT com... > > > In article <945a90$ckgq1$1 AT ID-57378 DOT news DOT dfncis DOT de>, > > > "Alexei A. Frounze" wrote: > > > > right, you can use RDTSC for getting CPU speed. But RDTSC can be > > disabled in > > > > user mode (e.g. Privilege Level 3) by an OS. > > > > for instance, the following code works fine on my Celeron566 imder winME > > and > > > > gives 564-566MHz: > > > > > > Works somewhat cool, I got 807Mhz on my 800Mhz TBird Athlon. > > > > Glad to hear that a program I made in around 15 mins, works for you too. :) > > You should calc for the stack overhead. I.e do something like > > mov ebp,128 > l1: > rdtsc > push eax > push edx > rdtsc > pop eax > pop edx > add ebx,eax > adc ecx,edx > dec ebp > jnz l1: > shrd ebx,ecx,7 > > (overhead in ecx::ebx) > > Tom > > > Sent via Deja.com > http://www.deja.com/