From: Vinod H. <vin...@gm...> - 2008-04-09 08:15:04
|
Hi, I am trying to get the info about the hardware event counter values, process resource attributes like the memory usage, priority, etc. I am having an application which invokes oprofile in a loop as follows. main() {........ char array[210000]; //for storing info from opreport.. while( number_of_iterations > 0 ) { system("opcontrol --reset"); system("opcontrol --init"); system("opcontrol --no-vmlinux"); system("opcontrol --event=DCACHE_MISS:100000"); system("opcontrol --separate=lib"); system("opcontrol --start"); collect_process_info(); // collect various info abt a given process. log_process_info(); // write the info to an array udelay(100000); system("opcontrol --stop"); system("opreport > /home/user/oprfiles_report"); copy_oprofiles_report( ); // copy oprofiles report to an array } log_arrays_to_files(); // final one time writing onto the files } // end main I tried to observe browser process ( running the youtube). The device both the programs terribly slowly( like though i have given delay of 1 second, it will take 6-7 seconds to complete an iteration) and after few iterations, the program runs the iterations at the rate of 30 seconds...!! The device is N810. I even tried using fread and fwrite instead of using the array but still i find the same problem. what could be the bottlenecks here... is there any other way to use oprofile for profiling hardware counter activity... Thanks for any advice in this regard.... |
From: Maynard J. <may...@us...> - 2008-04-09 13:37:17
|
Vinod Hegde wrote: > Hi, > > I am trying to get the info about the hardware event counter values, process > resource attributes like the memory usage, priority, etc. > > I am having an application which invokes oprofile in a loop as follows. > > main() > {........ > > char array[210000]; //for storing info from opreport.. > while( number_of_iterations > 0 ) > > { > > system("opcontrol --reset"); > system("opcontrol --init"); > system("opcontrol --no-vmlinux"); > system("opcontrol --event=DCACHE_MISS:100000"); > system("opcontrol --separate=lib"); > system("opcontrol --start"); > > > collect_process_info(); // collect various info abt a given process. > log_process_info(); // write the info to an array > udelay(100000); > > system("opcontrol --stop"); > system("opreport > /home/user/oprfiles_report"); > copy_oprofiles_report( ); // copy oprofiles report to an array > > } > > log_arrays_to_files(); // final one time writing onto the files > > } // end main > > I tried to observe browser process ( running the youtube). The device both > the programs terribly slowly( like though i have given delay of 1 second, it > will take 6-7 seconds to complete an iteration) and after few iterations, > the program runs the iterations at the rate of 30 seconds...!! I seriously doubt that profiling cache misses with a sampling rate of once per 100000 would be the cause of this slow down. A couple things you could try to help determine the cause: 1) Instead of 'opcontrol --stop', do 'opcontrol --shutdown'. This will end the oprofile daemon, whereas 'stop' will leave the daemon process active. I doubt you'll see any change in behavior, but if you do, it would point the finger at OProfile. 2) Take OProfile out of the loop. Do everything else as normal (collect_process_info, log_process_info, copy_oprofiles_report), except invoking the OProfile commands. Regards, -Maynard > > The device is N810. > > I even tried using fread and fwrite instead of using the array but still i > find the same problem. what could be the bottlenecks here... is there any > other way to use oprofile for profiling hardware counter activity... > > Thanks for any advice in this regard.... > > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------- > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > Don't miss this year's exciting event. There's still time to save $100. > Use priority code J8TL2D2. > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > > > ------------------------------------------------------------------------ > > _______________________________________________ > oprofile-list mailing list > opr...@li... > https://lists.sourceforge.net/lists/listinfo/oprofile-list |