Commit Graph

253 Commits

Author SHA1 Message Date
a2f8d00fc2 Work around GTK+ ABI break.
2008-03-29  Soren Sandmann <sandmann@daimi.au.dk>

        Work around GTK+ ABI break.

        * sysprof.c (on_about_activated): Use "program-name" instead of
        "name" when the gtk+ minor version is >= 14.




svn path=/trunk/; revision=407
2008-03-29 22:18:42 +00:00
62ffe734b0 Call back after collecting all traces.
2008-03-24  Soren Sandmann <sandmann@daimi.au.dk>

        * collector.c (collect_traces): Call back after collecting all
        traces. 

        * TODO: update

        * process.c: Simpler code to find vmlinux 



svn path=/trunk/; revision=406
2008-03-29 19:08:01 +00:00
d2a6151f8d Beginning of a dwarf unwinder.
Sat Mar 29 11:14:38 2008  Søren Sandmann  <sandmann@redhat.com>

        * unwind.[ch], testunwind.c: Beginning of a dwarf unwinder.



svn path=/trunk/; revision=405
2008-03-29 16:00:33 +00:00
72ef8ca8c6 x86 merge happened in 2.6.25
Sat Mar 29 08:05:46 2008  Søren Sandmann  <sandmann@redhat.com>

	* module/sysprof-module.c: x86 merge happened in 2.6.25



svn path=/trunk/; revision=404
2008-03-29 12:14:13 +00:00
26822b100c +2008-03-23 Soren Sandmann <sandmann@daimi.au.dk>
+
+       * sysprof.c (queue_show_samples): Update samples immediately when
+       reset and start is clicked.
+


svn path=/trunk/; revision=402
2008-03-24 03:00:49 +00:00
c2de993836 Use kernel builtin tracer instead of copying everything ourselves.
2008-03-20  Soren Sandmann <sandmann@redhat.com>
 
       * module/sysprof-module.c (trace_kernel): Use kernel builtin
       tracer instead of copying everything ourselves.


svn path=/trunk/; revision=401
2008-03-20 09:49:46 +00:00
83fd2bbc31 Support for 2.6.24 and newer
2008-03-20  Soren Sandmann <sandmann@redhat.com>

       * module/sysprof-module.c: Support for 2.6.24 and newer



svn path=/trunk/; revision=400
2008-03-20 07:19:13 +00:00
a585265cee Initialize offset to 1. Don't do kernel lookup for unmapped addresses.
2008-02-23  Soren Sandmann <sandmann@redhat.com>

	* process.c (process_lookup_symbol): Initialize offset to 1. Don't
	do kernel lookup for unmapped addresses. 


svn path=/trunk/; revision=398
2008-02-24 00:53:29 +00:00
b98db05f9b Add commented out code to reject callback.
2008-02-17  Soren Sandmann  <sandmann@redhat.com>

	* collector.c (lookup_symbol): Add commented out code to reject
	callback.

	* elfparser.c (struct ElfParser): Store the filename if any
	(elf_parser_get_sym_address): Subtract the load address, so the
	result will be an offset into the text section.

	* process.[ch] (process_lookup_symbol): Add an offset out-argument
	
	* binfile.[ch] (bin_symbol_get_address): New function

	* TODO: updates



svn path=/trunk/; revision=397
2008-02-17 23:31:19 +00:00
9d2f7a1a9d Add a memcpy() that uses nontemporal writes. (copy_kernel_stack): Add
2008-02-16  Soren Sandmann  <sandmann@redhat.com>

	* module/sysprof-module.c (nt_memcpy): Add a memcpy() that uses
	nontemporal writes.
	(copy_kernel_stack): Add commented-out use of it here.



svn path=/trunk/; revision=396
2008-02-16 15:54:40 +00:00
64d220e346 Use hash table instead of list.
2007-11-20  Soren Sandmann <sandmann@daimi.au.dk>

        * binfile.c (find_separate_debug_file): Use hash table instead of
        list. 



svn path=/trunk/; revision=395
2007-11-20 23:50:21 +00:00
8d73f2d391 Make heuristic stack scanning more accurate
2007-11-18  Soren Sandmann <sandmann@daimi.au.dk>

        * module/sysprof-module.c (heuristic_trace): Make heuristic stack
        scanning more accurate



svn path=/trunk/; revision=393
2007-11-19 03:34:19 +00:00
05c4a202b3 Crude heuristic stack scanning on x86-64.
Sun Nov 18 18:12:09 2007  Søren Sandmann  <sandmann@redhat.com>

       * module/sysprof-module.c (heuristic_trace): Crude heuristic stack
       scanning on x86-64.

       * module/sysprof-module.c (copy_kernel_stack): New function



svn path=/trunk/; revision=392
2007-11-18 23:11:52 +00:00
a68837a3ad Return ssize_t instead of int.
Sun Nov 18 13:23:39 2007  Søren Sandmann  <sandmann@redhat.com>

        * module/sysprof-module.c (sysprof_read): Return ssize_t instead
        of int.

        * module/sysprof-module.c (heuristic_trace): Beginning of
        heuristic user stack scanning.



svn path=/trunk/; revision=391
2007-11-18 18:29:34 +00:00
f7a138fa15 +2007-11-17 Soren Sandmann <sandmann@daimi.au.dk>
+
+       * collector.c (collector_create_profile): Don't collect traces here.
+


svn path=/trunk/; revision=390
2007-11-17 06:23:39 +00:00
41efdc9c7e Formatting
2007-11-16  Soren Sandmann <sandmann@daimi.au.dk>

	* module/sysprof-module.c (n_traces_available): Formatting
	
	* module/sysprof-module.c (sysprof_poll): Require 16 traces rather
	than 8. 
	

svn path=/trunk/; revision=389
2007-11-17 03:48:31 +00:00
c00ccd69c7 updates
2007-11-16  Soren Sandmann <sandmann@daimi.au.dk>

	* TODO: updates
	
	* module/sysprof-module.c (sysprof_poll): Only select readable
	when there is at least eight traces available

	* collector.c (collect_traces): New function, old on_read()
	
	* collector.c (collector_create_profile): Collect traces here as
	well.


svn path=/trunk/; revision=388
2007-11-17 02:53:22 +00:00
d82fe2e474 Updates
2007-11-16  Soren Sandmann <sandmann@daimi.au.dk>

	* TODO: Updates
	
	* process.c (process_locate_map): Move map to front

	* profile.c (profile_load): Ignore the toplevel field in the file
	since we can compute it ourselves.

	* stackstash.c (stack_stash_decorate): New function
	
	* stackstash.c (stack_stash_add_trace): Decorate the tree lazily
	instead of on each sample.



svn path=/trunk/; revision=387
2007-11-16 07:47:22 +00:00
1867b97a8d Use an array instead of a list. Look for vmlinux in the source directory.
2007-10-22  Soren Sandmann <sandmann@daimi.au.dk>

        * process.c (look_for_vmlinux): Use an array instead of a
        list. Look for vmlinux in the source directory.

        * elfparser.c (elf_parser_get_crc32): Only use MADV_DONTNEED if
        the data is file-backed.

        * TODO: updates.

        Various formatting fixes


svn path=/trunk/; revision=385
2007-10-25 02:45:54 +00:00
97076b7d0f Make this a two-pass algorithm, one pass to add the trace, and one to do
2007-10-22  Soren Sandmann <sandmann@daimi.au.dk>

	* profile.c (add_trace_to_tree): Make this a two-pass
	algorithm, one pass to add the trace, and one to do the
	accounting.


svn path=/trunk/; revision=384
2007-10-22 14:11:01 +00:00
002f00a950 Fix some spelling errors
2007-10-22  Soren Sandmann <sandmann@daimi.au.dk>

	* sfile.c: Fix some spelling errors

	* profile.[ch], sysprof.[ch]: Change "non_recursive" to
	"cumulative" to match the UI

	* profile.c (add_trace_to_tree): Add a couple of asserts.

	* TODO: updates


svn path=/trunk/; revision=383
2007-10-22 13:48:30 +00:00
686baf3304 Add ChangeLog
svn path=/trunk/; revision=382
2007-10-22 04:41:58 +00:00
6af2993c72 Remove CFLAGS reminiscence of 2.4 support.
2007-10-21  Soren Sandmann <sandmann@daimi.au.dk>

        * module/Makefile: Remove CFLAGS reminiscence of 2.4 support.


svn path=/trunk/; revision=375
2007-10-21 21:35:39 +00:00
476e6f0c1b Call callback with an extra boolean indicating whether the sample read was
2007-10-20  Soren Sandmann <sandmann@daimi.au.dk>

       * collector.c (on_read): Call callback with an extra boolean
       indicating whether the sample read was the first one

       * collector.c (add_trace_to_stash): Allocate addresses on the
       stack if possible.

       * sysprof.c (on_new_sample): Only call update_sensitivity() on the
       first sample.

       * stackstash.c (stack_stash_add_trace): Move match to front


svn path=/trunk/; revision=373
2007-10-20 23:51:35 +00:00
f1cbdbf27c Add support for looking up kernel symbols from /proc/kallsyms
2007-09-16  Soren Sandmann <sandmann@daimi.au.dk>

	* process.c (process_lookup_kernel_symbol): Add support for
	looking up kernel symbols from /proc/kallsyms

	* sysprof-text.c (dump_data): Print note that the file is being
	saved.

	* module/sysprof-module.[ch] (timer_notify): Send a copy of the
	kernel stack to userspace.

	* collector.c: Do kernel symbol lookups.
	

svn path=/trunk/; revision=372
2007-09-17 01:43:07 +00:00
39cb26654a Compute the size by simply summing the size of the siblings. They are
2007-08-26  Soren Sandmann <sandmann@daimi.au.dk>

        * profile.c (profile_get_size): Compute the size by simply summing
        the size of the siblings. They are toplevel by definition, and
        this works if the siblings for some reason has the same address.


svn path=/trunk/; revision=371
2007-08-26 05:41:59 +00:00
4194371d52 Reformat and fix various minor issues.
2007-08-26  Soren Sandmann <sandmann@daimi.au.dk>

	* treeviewutils.c (process_iter): Reformat and fix various minor
	issues.



svn path=/trunk/; revision=370
2007-08-26 04:27:08 +00:00
474636c189 Work around GTK+ bug 405625.
2007-08-25  Soren Sandmann <sandmann@daimi.au.dk>

        * treeviewutils.c (tree_view_set_model_with_default_sort): Work
        around GTK+ bug 405625.


svn path=/trunk/; revision=369
2007-08-26 04:06:44 +00:00
bf65f08594 Update to use new tree view API.
2007-08-04  Soren Sandmann <sandmann@daimi.au.dk>

        * sysprof.c: Update to use new tree view API.

        * treeviewutils.c: Do customized sorting to get default sort
        orders on columns. Workaround GTK+ bug 333791.



svn path=/trunk/; revision=364
2007-08-04 19:54:17 +00:00
6d96c33032 + * elfparser.c (elf_parser_get_crc32): madvise()
2007-03-24  Soren Sandmann <sandmann@daimi.au.dk>
 
+       * elfparser.c (elf_parser_get_crc32): madvise()



svn path=/trunk/; revision=363
2007-03-24 17:56:20 +00:00
0cc4c86195 Update screenshot window in an idle handler to deal with the case where
2007-03-24  Soren Sandmann <sandmann@daimi.au.dk>

        * sysprof.c (update_screenshot_window): Update screenshot window
        in an idle handler to deal with the case where someone presses
        "Shift Right Arrow" 



svn path=/trunk/; revision=362
2007-03-24 17:53:43 +00:00
7b821752f9 New function. Only warn once about bad CRC's.
Mon Mar  5 16:55:39 2007  Søren Sandmann  <sandmann@redhat.com>

        * binfile.c (already_warned): New function. Only warn once about
        bad CRC's.


svn path=/trunk/; revision=361
2007-03-05 21:53:57 +00:00
7800fcd870 Make this function static
2007-03-02  Soren Sandmann <sandmann@daimi.au.dk>
 
       * sysprof-text.c (dump_data): Make this function static



svn path=/trunk/; revision=360
2007-03-02 06:36:34 +00:00
bbed8de81e Remove FIXME.
2007-03-02  Soren Sandmann <sandmann@daimi.au.dk>

        * collector.c (collector_create_profile): Remove FIXME.



svn path=/trunk/; revision=359
2007-03-02 06:30:42 +00:00
ca78960214 Free the undefined symbol
2007-03-02  Soren Sandman <sandmann@daimi.au.dk>

	* process.c (free_process): Free the undefined symbol



svn path=/trunk/; revision=358
2007-03-02 06:27:05 +00:00
aaa145ea9b Make a copy of the vdso bytes to make valgrind a little quieter.
2007-03-02  Soren Sandmann <sandmann@daimi.au.dk>

	* process.c (process_get_vdso_bytes): Make a copy of the vdso
	bytes to make valgrind a little quieter.

	* binparser.c: Note to self: Save the file, *then* commit.
	

svn path=/trunk/; revision=357
2007-03-02 06:21:37 +00:00
5ee13adc34 Fix two leaks, both pointed out by Kjartan Maraas
2007-03-02  Soren Sandmann <sandmann@daimi.au.dk>

        Fix two leaks, both pointed out by Kjartan Maraas

        * binparser.c (bin_parser_free): Free the record list 

        * elfparser.c (elf_parser_free): Free the symbol table. 



svn path=/trunk/; revision=356
2007-03-02 05:23:30 +00:00
cf70d3a7ed Updates
2007-02-24  Soren Sandmann <sandmann@daimi.au.dk>

        * TODO: Updates

        * binparser.[ch]: Get rid of BIN_UINTn types; replace with single
        BIN_UINT, where the user must provide the width

        * elfparser.c: Update to new binparser API



svn path=/trunk/; revision=354
2007-02-24 08:49:51 +00:00
494e40a912 Switch to a simpler conceptual model. Update to binparser API changes.
2007-02-24  Soren Sandman <sandmann@daimi.au.dk>

        * binparser.[ch]: Switch to a simpler conceptual model.
        * elfparser.c: Update to binparser API changes.
        * TODO: updates



svn path=/trunk/; revision=352
2007-02-24 07:15:24 +00:00
c541052c19 Update copyright notices
Fri Feb  9 16:53:29 2007  Søren Sandmann  <sandmann@redhat.com>

	* Update copyright notices



svn path=/trunk/; revision=350
2007-02-09 21:59:15 +00:00
c1025c6b44 Don't store the size of the symbol. (elf_parser_lookup_symbol): Look it up
Fri Feb  9 16:16:34 2007  Søren Sandmann  <sandmann@redhat.com>

       * elfparser.c (struct ElfSym): Don't store the size of the symbol.
       (elf_parser_lookup_symbol): Look it up here instaed.

       * binfile.c (bin_file_free): Use pre-decrement instead of
       post-decrement.
       (bin_file_check_inode): Clarify the warning a little


svn path=/trunk/; revision=349
2007-02-09 21:30:01 +00:00
e8c2a59906 sysprof-icon-32.png Add a 32x32 version (also from Diana) of the icon.
Mon Jan 22 17:42:29 2007  Søren Sandmann  <sandmann@redhat.com>

	* sysprof-icon-32.png
	* sysprof.c: Add a 32x32 version (also from Diana) of the icon.

Mon Jan 22 16:37:12 2007  Søren Sandmann  <sandmann@redhat.com>

	* sysprof-icon-16/24/48.png:
	* sysprof.c: Add new icons from Diana.



svn path=/trunk/; revision=348
2007-01-22 22:48:33 +00:00
f33e3b06f4 Add new icons
svn path=/trunk/; revision=347
2007-01-22 21:43:36 +00:00
53fa2757b5 Correct $PWD usage, so make install works from inside module/.
2007-01-05  Behdad Esfahbod  <behdad@gnome.org>

        * module/Makefile: Correct $PWD usage, so make install works from
        inside module/.


svn path=/trunk/; revision=346
2007-01-05 21:39:25 +00:00
bd1f064ad3 Add forgotten put_cpu_var(). Parse in chunks of 65536 to improve locality.
2006-12-09  Soren Sandmann <sandmann@daimi.au.dk>

        * module/sysprof-module.c: Add forgotten put_cpu_var().
        * sfile.c (build_instructions): Parse in chunks of 65536 to
        improve locality.
2006-12-09 06:29:43 +00:00
4ba672ee9f Set inode for vdso to 0.
2006-11-23  Soren Sandmann <sandmann@daimi.au.dk>

        * process.c (read_maps): Set inode for vdso to 0.

        * binfile.c (read_inode): Return -1 on error, 0 on vdso
        (bin_file_new): Only read the inode if the file actually exists
        and is an elf file.
        (bin_file_check_inode): Return FALSE if there is no file.
2006-11-23 08:03:02 +00:00
973d92eb4d Use GMappedFile instead g_file_get_contents(). (build_instructions): Pass
2006-11-22  Soren Sandmann <sandmann@daimi.au.dk>

        * sfile.c (sfile_load): Use GMappedFile instead
        g_file_get_contents().
        (build_instructions): Pass length instead of -1.
        (sfile_output_save): Use g_file_set_contents() instead of
        cut-and-pasted copy.
2006-11-23 03:32:04 +00:00
d3c0e7be5c Move match to front (add_trace_to_tree): Break as soon as a recursive call
2006-11-22  Soren Sandmann <sandmann@daimi.au.dk>

        * profile.c (add_trace_to_tree): Move match to front
        (add_trace_to_tree): Break as soon as a recursive call is found.

        * stackstash.c (do_callback): Manual tail call optimization.
2006-11-22 07:06:04 +00:00
d1a082ffec reset the collector after generating the profile.
2006-11-20  Soren Sandmann <sandmann@daimi.au.dk>

        * sysprof.c (ensure_profile): reset the collector after generating
        the profile.

        * stackstash.c (struct StackStash): Add cached_nodes and blocks.
        (stack_node_new): Allocate stack nodes in blocks.
2006-11-20 07:25:02 +00:00
cce917856b Use stack allocated variables to avoid taking addresses of bitfields.
2006-11-19  Soren Sandmann <sandmann@redhat.com>

        * profile.c (profile_load): Use stack allocated variables to avoid
        taking addresses of bitfields.

        * stackstash.h (struct StackNode): Store toplevel as bitfield
2006-11-20 04:11:21 +00:00