diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | announce-1.0.8 | 61 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | module/sysprof-module.c | 10 |
4 files changed, 76 insertions, 4 deletions
@@ -1,3 +1,10 @@ +2006-12-09 Soren Sandmann <sandmann@daimi.au.dk> + + * =-=-=-= Release sysprof 1.0.8 =-=-=-= + + * module/sysprof-module.c (timer_notify): Add forgotten + put_cpu_var(). + 2006-11-16 Soren Sandmann <sandmann@daimi.au.dk> * =-=-=-= Release 1.0.7 =-=-=-= diff --git a/announce-1.0.8 b/announce-1.0.8 new file mode 100644 index 0000000..e88475b --- /dev/null +++ b/announce-1.0.8 @@ -0,0 +1,61 @@ +Sysprof Linux Profiler v. 1.0.8 + + +* What is it? +-------------------------- + +Sysprof is a sampling system-wide CPU profiler for Linux. + +Sysprof uses a Linux kernel module to profile the entire system, not +just an individual application. Sysprof handles threads and shared +libraries, and applications do not have to be recompiled or +instrumented. In fact they don't even have to be restarted. + + +* Features: +---------------------- + + - Profiles all running processes, not just a single application + + - Call graph support showing time spent in each branch of the call tree + + - Has a simple graphical interface + + - Profiles can be loaded and saved + + - Easy to use: Just insert the kernel module and start sysprof + + - Supports Fedora debuginfo packages + + +* Sysprof 1.0.8 +-------------------------- + + - Fix panic with preemptive kernels + + +Please report bugs as well as success or failure stories to + + sandmann@daimi au dk + + + +* Where can I get it? +-------------------------------------------- + +Home page: + + http://www.daimi.au.dk/~sandmann/sysprof/ + +Source code: + + http://www.daimi.au.dk/~sandmann/sysprof/sysprof-1.0.8.tar.gz + +Sysprof requires + + - Linux 2.6.11 or later, compiled with profiling support + - GTK+ 2.6 + - libglade 2.5 + + +Søren diff --git a/configure.ac b/configure.ac index 225105d..96ba18b 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ AC_PREREQ(2.54) -AC_INIT([sysprof], [1.0.7]) +AC_INIT([sysprof], [1.0.8]) AC_CONFIG_SRCDIR(sysprof.glade) AM_INIT_AUTOMAKE(no-define) diff --git a/module/sysprof-module.c b/module/sysprof-module.c index 698a8c0..cc4473e 100644 --- a/module/sysprof-module.c +++ b/module/sysprof-module.c @@ -111,8 +111,8 @@ read_frame (void *frame_pointer, StackFrame *frame) if (__copy_from_user_inatomic ( frame, frame_pointer, sizeof (StackFrame))) - return 2; - + return 1; + return 0; } @@ -125,8 +125,12 @@ timer_notify (struct pt_regs *regs) int i; int is_user; static atomic_t in_timer_notify = ATOMIC_INIT(1); + int n; + + n = ++get_cpu_var(n_samples); + put_cpu_var(n_samples); - if ((++get_cpu_var(n_samples) % INTERVAL) != 0) + if (n % INTERVAL != 0) return 0; /* 0: locked, 1: unlocked */ |