[patch] Allow for profile_buf size = kernel text size

From: Ravikiran G Thirumalai (kiran@in.ibm.com)
Date: Fri Oct 18 2002 - 04:24:56 EST


Hi
The following patch enables the kernel profiler to set up profiling
buffer equal to the kernel text size. It is particularly useful
while doing insn level profiling on archs with variable sized instructions.
There is a better possiblity of ticks being attributed to the right
instructions if the profiling granularity is better. Patch applies neatly on
2.5.43 and 2.5.43-mm2. Tested well on PIII 4way. Please apply.

-Kiran

diff -X dontdiff -ruN linux-2.5.43/fs/proc/proc_misc.c readprofile-2.5.43/fs/proc/proc_misc.c
--- linux-2.5.43/fs/proc/proc_misc.c Wed Oct 16 08:57:18 2002
+++ readprofile-2.5.43/fs/proc/proc_misc.c Fri Oct 18 10:13:44 2002
@@ -648,7 +648,7 @@
                 proc_root_kcore->size =
                                 (size_t)high_memory - PAGE_OFFSET + PAGE_SIZE;
         }
- if (prof_shift) {
+ if (prof_on) {
                 entry = create_proc_entry("profile", S_IWUSR | S_IRUGO, NULL);
                 if (entry) {
                         entry->proc_fops = &proc_profile_operations;
diff -X dontdiff -ruN linux-2.5.43/include/linux/profile.h readprofile-2.5.43/include/linux/profile.h
--- linux-2.5.43/include/linux/profile.h Wed Oct 16 08:58:20 2002
+++ readprofile-2.5.43/include/linux/profile.h Thu Oct 17 16:58:56 2002
@@ -17,6 +17,7 @@
 extern unsigned int * prof_buffer;
 extern unsigned long prof_len;
 extern unsigned long prof_shift;
+extern int prof_on;
 
 
 enum profile_type {
diff -X dontdiff -ruN linux-2.5.43/kernel/profile.c readprofile-2.5.43/kernel/profile.c
--- linux-2.5.43/kernel/profile.c Wed Oct 16 08:59:04 2002
+++ readprofile-2.5.43/kernel/profile.c Thu Oct 17 17:00:27 2002
@@ -14,12 +14,15 @@
 unsigned int * prof_buffer;
 unsigned long prof_len;
 unsigned long prof_shift;
+int prof_on;
 
 int __init profile_setup(char * str)
 {
         int par;
- if (get_option(&str,&par))
+ if (get_option(&str,&par)) {
                 prof_shift = par;
+ prof_on = 1;
+ }
         return 1;
 }
 
@@ -28,7 +31,7 @@
 {
         unsigned int size;
  
- if (!prof_shift)
+ if (!prof_on)
                 return;
  
         /* only text is profiled */
-
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/



This archive was generated by hypermail 2b29 : Wed Oct 23 2002 - 22:00:40 EST