Messages in this thread | | | Date | Fri, 28 Feb 2003 22:49:37 +0100 | From | Andries Brouwer <> | Subject | Re: [PATCH] documentation for basic guide to profiling |
| |
On Fri, Feb 28, 2003 at 12:12:42AM -0800, Martin J. Bligh wrote:
> +Readprofile > +----------- > +get readprofile binary fixed for 2.5 / akpm's 2.5 patch from > +ftp://ftp.kernel.org/pub/linux/people/mbligh/tools/readprofile/ > +add "profile=2" to the kernel command line. > + > +clear echo 2 > /proc/profile
As far as I can see, the 2 is meaningless here. This should just be
echo > /proc/profile
(On SMP when writing sizeof(int) bytes, the value written is significant. But 1 or 2 is not sizeof(int).)
Andries
----- Fragment of some notes:
<sect1>Profiling the kernel<p> There are several facilities to see where the kernel spends its resources. A simple one is the profiling function, that stores the current EIP (instruction pointer) at each clock tick. <p> Boot the kernel with command line option <tt>profile=2</tt> (or some other number instead of 2). This will cause a file <tt>/proc/profile</tt> to be created. The number given after <tt>profile=</tt> is the number of positions EIP is shifted right when profiling. So a large number gives a coarse profile. The counters are reset by writing to <tt>/proc/profile</tt>. The utility <tt>readprofile</tt> will output statistics for you. It does not sort - you have to invoke <tt>sort</tt> explicitly. But given a memory map it will translate addresses to kernel symbols. <p> See <tt>kernel/profile.c</tt> and <tt>fs/proc/proc_misc.c</tt> and <tt>readprofile(1)</tt>. <p> For example: <verb> # echo > /proc/profile ... # readprofile -m System.map-2.5.59 | sort -nr | head -2 510502 total 0.1534 508548 default_idle 10594.7500 </verb> - 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/
| |