#include <asm/msr.h>
/* get this value from the "cpu MHz" line of /proc/cpuinfo */
#define CLOCKSPEED xxxxxxxx
int main()
{
unsigned int lowbegin, lowend, highbegin, highend;
unsigned long long diff;
double elapsed;
rdtsc(lowbegin,highbegin);
//do stuff
rdtsc(lowend,highend);
if (lowend < lowbegin)
highend--;
diff = (((unsigned long long) highend - highbegin) << 32) + (lowend -
lowbegin);
elapsed = (double) diff / CLOCKSPEED;
/* elapsed now has time in microseconds, do whatever you wantwith it */
return 0;
}
-- Chris Friesen | MailStop: 043/33/F10 Nortel Networks | work: (613) 765-0557 3500 Carling Avenue | fax: (613) 765-2986 Nepean, ON K2H 8E9 Canada | email: cfriesen@nortelnetworks.com - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/