Søren Sandmann Pedersen [Thu, 6 May 2010 10:11:22 +0000 (13:11 +0300)]
Pre-release bump to 1.1.6
Søren Sandmann Pedersen [Thu, 6 May 2010 10:09:06 +0000 (13:09 +0300)]
Makefile.am: barrier.h is now called util.h
Søren Sandmann Pedersen [Sat, 24 Apr 2010 16:27:32 +0000 (12:27 -0400)]
Fix use of uninitialized variable
Søren Sandmann Pedersen [Sat, 24 Apr 2010 14:49:18 +0000 (10:49 -0400)]
Use the SET_OUTPUT ioctl to direct all output to the same buffer
This ensures that we don't get events out of order, which will make
the profiles look a lot less bogus on multi-core systems.
Søren Sandmann Pedersen [Sat, 24 Apr 2010 14:27:27 +0000 (10:27 -0400)]
Make comm events reuse any existing process.
A comm event doesn't necessarily mean a new process was created. It
may just mean that an existing process changed its command line.
Søren Sandmann Pedersen [Fri, 23 Apr 2010 15:53:46 +0000 (11:53 -0400)]
Eliminate some compiler warnings
Søren Sandmann Pedersen [Fri, 23 Apr 2010 15:34:07 +0000 (11:34 -0400)]
Use d_print() instead of g_print() for debug spam
Søren Sandmann Pedersen [Fri, 23 Apr 2010 15:26:17 +0000 (11:26 -0400)]
Add FIXME about performance issue in stack_stash_add_trace()
Søren Sandmann Pedersen [Fri, 23 Apr 2010 15:22:06 +0000 (11:22 -0400)]
sysprof-cli: Print out number of samples when saving
Pascal Terjan [Tue, 23 Mar 2010 17:09:14 +0000 (18:09 +0100)]
Fix encoding of error message
Use g_strerror instead of strerror to get UTF-8
Pascal Terjan [Tue, 23 Mar 2010 16:21:37 +0000 (17:21 +0100)]
Fix build with -Werror=format-security
Don't use dynamic string as format, one of the args could be a string
containing %.
Søren Sandmann Pedersen [Sun, 21 Mar 2010 16:12:42 +0000 (12:12 -0400)]
Really disable hardware counters.
Søren Sandmann Pedersen [Wed, 10 Mar 2010 11:58:22 +0000 (06:58 -0500)]
Ignore fork events that are just new threads being spawned.
These would cause mysterious new processes to show up.
Søren Sandmann [Tue, 9 Mar 2010 17:06:36 +0000 (12:06 -0500)]
Disable use of hardware perf counters.
They don't seem to actually work on a lot of hardware.
Søren Sandmann [Tue, 9 Mar 2010 16:59:00 +0000 (11:59 -0500)]
Stop using double mmap trick.
It has issues on various architectures, such as ARM, and there was
never any guarantee that it would actually work. So since we'd need
fallback code anyway, and the main point of it was simplifying the
code, just get rid of it and handle the overflow conditions manually.
Søren Sandmann Pedersen [Sat, 20 Feb 2010 20:04:35 +0000 (15:04 -0500)]
Update list of kernel symbols to take counter->event rename into account.
Søren Sandmann Pedersen [Mon, 8 Feb 2010 18:20:58 +0000 (13:20 -0500)]
Coding style fix
Nix [Mon, 8 Feb 2010 18:16:00 +0000 (13:16 -0500)]
Wire up __NR_perf_counter_open syscall for almost all arches as of
Currently, sysprof hardwires the syscall number of
__NR_perf_counter_open. That's all very well, except... like other
syscall numbers, it varies per-arch. With a few exceptions
(e.g. sparc64), it even varies between 32-bit and 64-bit x86 arches.
This patch provides the defines for every number I could see assigned
in git trunk right now, with the exception of some of the ARM ones, where
I couldn't see how to differentiate between the various sorts of ARM to
figure out what the syscall base was. For those, let's wait for libc to
catch up.
The only arch I've been unable even to guess at is the very new S-Core,
which is the only user so far of the generic syscall table in
<include/asm-generic>. This specifies a value of 241, but I can't hook
it up because I can't find an S-Core toolchain anywhere so I don't know
what #define to check for, and googling gives no clues.
Only tested on x86-64 (where it now works) so there may be all sorts of
bugs in the rest of it (well, in the #defines anyway, though most were
checked against GCC trunk).
Søren Sandmann Pedersen [Mon, 1 Feb 2010 19:02:41 +0000 (14:02 -0500)]
Unconditionally fall back to software if opening hardware counters fails
If hardware counters are not available, fall back to SW regardless of
why the hardware counters aren't available. The error code can be
either ENOTSUPP or ENODEV depending on CPU type, so it's simpler to
just retry in all cases, and only fail if the software fallback
failed.
Javier Jardón [Mon, 2 Nov 2009 22:18:05 +0000 (23:18 +0100)]
Remove deprecated Glib symbols
Javier Jardón [Mon, 2 Nov 2009 22:13:04 +0000 (23:13 +0100)]
Use GTK+ single includes
Javier Jardón [Mon, 2 Nov 2009 22:23:40 +0000 (23:23 +0100)]
Support silent build rules with automake 1.11
Support silent build rules, requires at least automake-1.11.
Disable by either passing --disable-silent-rules to configure or
passing V=1 to make.
Søren Sandmann Pedersen [Mon, 2 Nov 2009 19:16:26 +0000 (14:16 -0500)]
Post release version bump
Søren Sandmann Pedersen [Mon, 2 Nov 2009 19:15:23 +0000 (14:15 -0500)]
Release 1.1.4
Søren Sandmann Pedersen [Mon, 2 Nov 2009 18:52:11 +0000 (13:52 -0500)]
More error handling.
Søren Sandmann Pedersen [Mon, 2 Nov 2009 18:30:04 +0000 (13:30 -0500)]
Return error when the counter can't be opened.
Søren Sandmann Pedersen [Thu, 29 Oct 2009 11:40:51 +0000 (07:40 -0400)]
Also filter out NMI stack
Søren Sandmann Pedersen [Thu, 29 Oct 2009 11:31:31 +0000 (07:31 -0400)]
Skip symbols from IRQ stack.
There is a bug in the kernel where it includes the stack of the IRQ
that generated the event, so that the stack ends up looking like this:
[ip] [irq stack] [real stack].
As a temporary workaround, this patch filters out the irq stack
symbols.
Søren Sandmann Pedersen [Fri, 23 Oct 2009 17:42:11 +0000 (13:42 -0400)]
Exclude idle events and set sample_period to 200000
Søren Sandmann Pedersen [Wed, 21 Oct 2009 16:31:43 +0000 (12:31 -0400)]
Set wakeup_events to 149, not 150
Søren Sandmann Pedersen [Wed, 21 Oct 2009 16:30:32 +0000 (12:30 -0400)]
TODO
Søren Sandmann Pedersen [Wed, 21 Oct 2009 16:28:43 +0000 (12:28 -0400)]
Show the "-- kernel --" marker in kernel threads
The innermost context is normally user mode, so we don't show. For
kernel threads, the innermost context is the kernel, so don't filter
it out.
Søren Sandmann Pedersen [Wed, 21 Oct 2009 16:27:19 +0000 (12:27 -0400)]
Disable accessibility
Accessibility prevents sysprof from working reliably, so disable
it. Specifically, it
- causes large amounts of time to be spent in sysprof itself
whenever the label is updated.
- sometimes hangs at shutdown
- does long-running roundtrip requests that prevents
reading the event buffers, resulting in lost events.
Søren Sandmann Pedersen [Wed, 21 Oct 2009 12:57:08 +0000 (08:57 -0400)]
Make the events more compact by packing type and pid into one uint32_t.
Søren Sandmann Pedersen [Wed, 21 Oct 2009 10:58:20 +0000 (06:58 -0400)]
Add support for software fallback counters
Søren Sandmann Pedersen [Wed, 21 Oct 2009 10:52:18 +0000 (06:52 -0400)]
TODO
Søren Sandmann Pedersen [Thu, 8 Oct 2009 23:25:54 +0000 (19:25 -0400)]
Remove final bits of binparser
Søren Sandmann Pedersen [Thu, 8 Oct 2009 23:17:24 +0000 (19:17 -0400)]
Eliminate more BinParser stuff
Søren Sandmann Pedersen [Thu, 8 Oct 2009 21:40:20 +0000 (17:40 -0400)]
Beginning of the end for BinParser.
Instead of the clunky BinParser, we are moving to a scheme where the
ELF accessors are defined by macros. This is the first step towards
getting rid of it.
Søren Sandmann Pedersen [Sat, 26 Sep 2009 13:56:33 +0000 (09:56 -0400)]
Pre-release version bump
Søren Sandmann Pedersen [Fri, 25 Sep 2009 16:47:55 +0000 (12:47 -0400)]
Remove GSEAL macros
Søren Sandmann Pedersen [Fri, 25 Sep 2009 15:50:08 +0000 (11:50 -0400)]
Really make it compile on older kernels
Søren Sandmann Pedersen [Fri, 25 Sep 2009 15:37:26 +0000 (11:37 -0400)]
Make it distcheck
Also add a warning about compiling against a too old kernel.
Søren Sandmann Pedersen [Fri, 25 Sep 2009 15:24:40 +0000 (11:24 -0400)]
Comment out some debugging spam; update copyright
Søren Sandmann Pedersen [Thu, 24 Sep 2009 14:46:59 +0000 (10:46 -0400)]
Eliminate 'partial' string
M Joonas Pihlaja [Wed, 16 Sep 2009 12:21:49 +0000 (08:21 -0400)]
In sysprof-cli.c, stop the collector before trying to create a profile
Søren Sandmann Pedersen [Mon, 14 Sep 2009 08:59:28 +0000 (04:59 -0400)]
Update TODO
Søren Sandmann Pedersen [Thu, 10 Sep 2009 07:41:32 +0000 (03:41 -0400)]
Read data before stopping collector.
Stop debug spew.
Søren Sandmann Pedersen [Thu, 10 Sep 2009 07:08:16 +0000 (03:08 -0400)]
TODO
Søren Sandmann Pedersen [Tue, 8 Sep 2009 23:35:03 +0000 (19:35 -0400)]
TODO, plus a number of other fixes
Søren Sandmann Pedersen [Tue, 8 Sep 2009 07:24:46 +0000 (03:24 -0400)]
Avoid mallocs in process_sample()
Søren Sandmann Pedersen [Tue, 8 Sep 2009 06:59:04 +0000 (02:59 -0400)]
Better handling of events without stacktraces
Søren Sandmann Pedersen [Tue, 8 Sep 2009 06:30:16 +0000 (02:30 -0400)]
Remove stash from collector
Søren Sandmann Pedersen [Tue, 8 Sep 2009 06:26:04 +0000 (02:26 -0400)]
Initial support for fork/exit events
Søren Sandmann Pedersen [Tue, 8 Sep 2009 05:26:29 +0000 (01:26 -0400)]
Make sure parser->symbols is non-NULL after read_table()
Otherwise, we would read the file over and over.
Also get the process name from /proc/pid/cmdline, falling back to
/proc/pid/status if there is nothing there.
Søren Sandmann Pedersen [Tue, 8 Sep 2009 04:45:43 +0000 (00:45 -0400)]
TODO
Søren Sandmann Pedersen [Tue, 8 Sep 2009 04:15:19 +0000 (00:15 -0400)]
Destroy state object after use, don't keep bin files in map objects
Søren Sandmann Pedersen [Tue, 8 Sep 2009 04:06:12 +0000 (00:06 -0400)]
Move bin file cache to state object
Søren Sandmann Pedersen [Tue, 8 Sep 2009 04:00:06 +0000 (00:00 -0400)]
Simplify vdso reading in binfile.c
Søren Sandmann Pedersen [Tue, 8 Sep 2009 03:35:30 +0000 (23:35 -0400)]
Remove last bits of process.[ch]
Søren Sandmann Pedersen [Tue, 8 Sep 2009 03:33:48 +0000 (23:33 -0400)]
Don't compile process.[ch] anymore
Søren Sandmann Pedersen [Tue, 8 Sep 2009 02:50:30 +0000 (22:50 -0400)]
Update TODO
Søren Sandmann Pedersen [Tue, 8 Sep 2009 02:20:13 +0000 (22:20 -0400)]
Simpler message formatting
Søren Sandmann Pedersen [Tue, 8 Sep 2009 01:57:20 +0000 (21:57 -0400)]
More informative errors when symbols can't be found
Søren Sandmann Pedersen [Tue, 8 Sep 2009 01:22:48 +0000 (21:22 -0400)]
Various debug spew
Søren Sandmann Pedersen [Tue, 8 Sep 2009 00:43:22 +0000 (20:43 -0400)]
Add symbol resolution to tracker
Søren Sandmann Pedersen [Mon, 7 Sep 2009 23:16:52 +0000 (19:16 -0400)]
Add process and map tracking to tracker
Søren Sandmann Pedersen [Mon, 7 Sep 2009 22:43:34 +0000 (18:43 -0400)]
Add events to tracker instead of stash
Søren Sandmann Pedersen [Mon, 7 Sep 2009 22:18:26 +0000 (18:18 -0400)]
Fake new_process and new_map events when a tracker is created
Søren Sandmann Pedersen [Mon, 7 Sep 2009 20:27:50 +0000 (16:27 -0400)]
Hook up dead period, and only call back after a complete batch of samples
Søren Sandmann Pedersen [Mon, 7 Sep 2009 19:57:34 +0000 (15:57 -0400)]
Implement tracker_add_sample()
Søren Sandmann Pedersen [Mon, 7 Sep 2009 19:55:45 +0000 (15:55 -0400)]
Make stack_stash_add_trace() return a pointer to the trace
Søren Sandmann Pedersen [Mon, 7 Sep 2009 19:13:14 +0000 (15:13 -0400)]
Make StackStash store uint64_ts instead of pointers
Søren Sandmann Pedersen [Mon, 7 Sep 2009 14:14:01 +0000 (10:14 -0400)]
Add code to append map and process events
Søren Sandmann Pedersen [Mon, 7 Sep 2009 14:02:58 +0000 (10:02 -0400)]
Add array resizing code
Søren Sandmann Pedersen [Mon, 7 Sep 2009 13:51:20 +0000 (09:51 -0400)]
Create data types
Søren Sandmann Pedersen [Mon, 7 Sep 2009 13:46:40 +0000 (09:46 -0400)]
Add tracker.[ch]
Søren Sandmann Pedersen [Mon, 7 Sep 2009 01:26:41 +0000 (21:26 -0400)]
Use a buffer of 32 pages.
Also remove a debug print statement.
Søren Sandmann Pedersen [Mon, 17 Aug 2009 11:38:15 +0000 (07:38 -0400)]
Add a cache for TreeDataList allocation
Søren Sandmann Pedersen [Mon, 17 Aug 2009 09:45:46 +0000 (05:45 -0400)]
Eliminate as many signal emissions as we can from footreestore.c
Søren Sandmann Pedersen [Mon, 17 Aug 2009 08:31:38 +0000 (04:31 -0400)]
Some more renamings
Søren Sandmann Pedersen [Mon, 7 Sep 2009 00:56:01 +0000 (20:56 -0400)]
Lots of gtk->foo renames
Søren Sandmann Pedersen [Mon, 17 Aug 2009 08:15:29 +0000 (04:15 -0400)]
Add forked copies of gtktreestore.[ch] and gtktreedatalist.[ch]
Søren Sandmann Pedersen [Mon, 7 Sep 2009 00:43:57 +0000 (20:43 -0400)]
Use two consecutive mappings of the ring buffer.
This allows us to not ignore wrapping and just process events instead
of having to copy the data to temporary storage.
Søren Sandmann Pedersen [Sat, 5 Sep 2009 21:15:19 +0000 (17:15 -0400)]
Initial port to perf counters
Søren Sandmann Pedersen [Sat, 22 Aug 2009 08:08:57 +0000 (04:08 -0400)]
Remove unused profile_from_file variable
Søren Sandmann Pedersen [Sat, 15 Aug 2009 07:24:52 +0000 (03:24 -0400)]
Rename sysprof-text to sysprof-cli
Søren Sandmann Pedersen [Mon, 17 Aug 2009 13:40:08 +0000 (09:40 -0400)]
Delete trailing whitespace
Søren Sandmann Pedersen [Mon, 17 Aug 2009 13:34:10 +0000 (09:34 -0400)]
Reserve space in the samples label for large numbers.
This way, we don't need to reallocate the label every time it changes.
Søren Sandmann Pedersen [Mon, 17 Aug 2009 12:19:38 +0000 (08:19 -0400)]
Free the sfile formats after freeing the input/output files.
The instruction arrays in the files have a references to types that
are owned by the formats, so if the formats are freed first, valgrind
complains about invalid accesses during the freeing of the instruction
array.
Søren Sandmann Pedersen [Fri, 14 Aug 2009 01:51:13 +0000 (21:51 -0400)]
TODO
Søren Sandmann Pedersen [Sun, 22 Feb 2009 16:13:26 +0000 (11:13 -0500)]
Merge branch 'master' of git+ssh://git.gnome.org/git/sysprof
Søren Sandmann Pedersen [Sun, 22 Feb 2009 16:11:18 +0000 (11:11 -0500)]
Tweak percent sign format
Søren Sandmann Pedersen [Sun, 22 Feb 2009 09:29:09 +0000 (04:29 -0500)]
Add percent signs in screenshot window
Søren Sandmann Pedersen [Sun, 22 Feb 2009 06:04:30 +0000 (01:04 -0500)]
TODO
Søren Sandmann Pedersen [Sun, 22 Feb 2009 03:41:21 +0000 (22:41 -0500)]
TODO
Søren Sandmann Pedersen [Sun, 22 Feb 2009 03:48:04 +0000 (22:48 -0500)]
Get rid of hack to not fold recursions for "In file" symbols
Søren Sandmann Pedersen [Sun, 22 Feb 2009 03:37:16 +0000 (22:37 -0500)]
Give the samples label a minium width of "Samples: 888888"
We do this by putting the samples label and a sizer label into a
notebook where show_tabs is false. The benefits of this is that w
avoid the hack of connecting to the size request signal, and that the
samples label will be right adjusted.
Søren Sandmann Pedersen [Sat, 21 Feb 2009 09:14:55 +0000 (04:14 -0500)]
Add empty ChangeLog to appease automake
Søren Sandmann Pedersen [Sat, 21 Feb 2009 09:13:41 +0000 (04:13 -0500)]
Delete ChangeLog