profiling: dynamically enable readprofile at runtime

Way too often, I have a machine that exhibits some kind of crappy
behavior.  The CPU looks wedged in the kernel or it is spending way too
much system time and I wonder what is responsible.

I try to run readprofile.  But, of course, Ubuntu doesn't enable it by
default.  Dang!

The reason we boot-time enable it is that it takes a big bufffer that we
generally can only bootmem alloc.  But, does it hurt to at least try and
runtime-alloc it?

To use:
echo 2 > /sys/kernel/profile

Then run readprofile like normal.

This should fix the compile issue with allmodconfig.  I've compile-tested
on a bunch more configs now including a few more architectures.

Signed-off-by: Dave Hansen <dave@linux.vnet.ibm.com>
Acked-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Dave Hansen 2008-10-15 22:01:46 -07:00 committed by Linus Torvalds
parent 0c2d64fb6c
commit 22b8ce9470
4 changed files with 84 additions and 13 deletions

View file

@ -35,7 +35,9 @@ enum profile_type {
extern int prof_on __read_mostly;
/* init basic kernel profiler */
void __init profile_init(void);
int profile_init(void);
int profile_setup(char *str);
int create_proc_profile(void);
void profile_tick(int type);
/*
@ -84,9 +86,9 @@ struct pt_regs;
#define prof_on 0
static inline void profile_init(void)
static inline int profile_init(void)
{
return;
return 0;
}
static inline void profile_tick(int type)