Allow for profile_buf size = kernel text size

Allow for profile_buf size = kernel text size

Post by Ravikiran G Thirumala » Sat, 19 Oct 2002 11:30:10



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

                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

 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

 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;
 }

 {
        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

More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/