* bechmarking kernel code
@ 2007-05-03 11:02 kernel coder
2007-05-03 16:57 ` Pekka Enberg
0 siblings, 1 reply; 2+ messages in thread
From: kernel coder @ 2007-05-03 11:02 UTC (permalink / raw)
To: linux-kernel
hi,
I'm profiling some part of kernel code.Mine profiling mechanism
is based on rdtsc instruction.
Please tell me if i'm profiling correctly.I'm teting linux kernel
2.6.15 and mine system is P4.
function(){
unsigned long long c1,c2,c3,c4,c5;
before=readtsc();
before=readtsc();
before=readtsc();
overhead=readtsc()-before;
c1=testfunc();
c2=testfunc();
c3=testfunc();
c4=testfunc();
c5=testfunc();
printk(" \n *c1 = %llu c2= %llu c3 = %llu c4 = %llu c5 = %llu overhead
=%llu",cycles1,cycles2,cycles3,cycles4,cycles5,overhead);
}
/***************************************/
unsigned long long readtsc(){
unsigned long res[2]={0,0};
__asm__ __volatile__ (
"rdtsc\n"
: "=a" (res[0]), "=d" (res[1]) );
return *((unsigned long long *)res);
}
/*******************************************/
unsigned long long testfunc(){
unsigned long start_cycles[2]={0,0};
unsigned long end_cycles[2]={0,0};
unsigned long long total_cycles=0;
int i;
__asm__ __volatile__ ( // read TSC, store edx:eax in res
"rdtsc\n"
: "=a" (start_cycles[0]), "=d" (start_cycles[1]) );
/* CODE TO BE PROFILED */
__asm__ __volatile__ ( // read TSC, store edx:eax in res
"rdtsc\n"
: "=a" (end_cycles[0]), "=d" (end_cycles[1]) );
total_cycles=*((unsigned long long *)end_cycles) - *((unsigned long
long *)start_cycles);
return total_cycles;
}
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: bechmarking kernel code
2007-05-03 11:02 bechmarking kernel code kernel coder
@ 2007-05-03 16:57 ` Pekka Enberg
0 siblings, 0 replies; 2+ messages in thread
From: Pekka Enberg @ 2007-05-03 16:57 UTC (permalink / raw)
To: kernel coder; +Cc: linux-kernel
On 5/3/07, kernel coder <lhrkernelcoder@gmail.com> wrote:
> I'm profiling some part of kernel code.Mine profiling mechanism
> is based on rdtsc instruction.
Why dont you use oprofile?
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2007-05-03 16:57 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-05-03 11:02 bechmarking kernel code kernel coder
2007-05-03 16:57 ` Pekka Enberg
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®