/proc/profile

Hi Buddies, I tried to profile kernel, by using readprofile I got following data.I dont know how to analyze data, document says the third column is normalized load of the procedure..calculated as ratio between number of clock ticks and length of procedure...

but I dont know what is length of procedure is taken...if some one who has done similar ...could you please suggest me how the third column values are interpretated.

thanks a lot...

root@ml310:/# readprofile 4 _stext 0.1000 4722 _nmask_and_or_msr 147.5625 1 copy_page 0.0069 1 do_page_fault 0.0009 1 memset 0.0109 1 __copy_tofrom_user 0.0018 1 do_no_page 0.0020 1 iput 0.0014 1 ext3_get_inode_loc 0.0023 1 ext3_do_update_inode 0.0007 1 ext3_dirty_inode 0.0038 1 journal_get_write_access 0.0057 1 tty_read 0.0040 9 serial_in 0.0804 2 serial_out 0.0200 3 serial_console_write 0.0056 2 XSysAce_Lock 0.0049 55 XSysAce_RegRead32 0.6548 16 XSysAce_RegWrite32 0.3077 1 XSysAce_WriteDataBuffer 0.0038 4825 total 0.0029 root@ml310:/#

regards Jaggu

Reply to
Jaggu
Loading thread data ...

Think of the third column this way:

1) A counter is incremented on every clock tick. The counter is chosen based on which kernel subroutine is being executed. (This is not really how it is implemented, but it gets the idea across.) 2) Now, we expect that a large subroutine takes longer to execute than a smaller subroutine. If the small subroutine gets lots and lots of counts, then that subroutine is contributing more than its share to the system performance load. 3) So if you sort the output in descending order, you can see which kernel routines are contributing most to the overall system load. Concentrate on optimizing those routines and you can make the most improvement on the system.

How do we tell how big subroutines are? Hints from ld(1).

Cheers

Reply to
Tommy Reynolds

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.