Commit Graph

496 Commits

Author SHA1 Message Date
555a10ef65 battery: only submit event if battery value changed 2019-06-13 19:04:11 -07:00
a95287b2d2 libsysprof: show a combined cpu counter by default
We need a way to show the individual counters, but this is a good first
start. To do the combined counters, we need to come up with something that
allows expanding of rows and what not.
2019-06-13 10:53:59 -07:00
416d0383f2 battery: fix typo 2019-06-12 16:30:17 -07:00
5dbb486512 tracefd: give memfd a descriptive name
This makes it easier to track down from /proc/$pid/fd/.
2019-06-12 11:14:21 -07:00
4a31b934be tracefd: use g_strdup_printf()
I don't like maintaining stack based string allocations unless it's really
a performance savings.
2019-06-12 11:13:44 -07:00
688984d431 whitespace 2019-06-11 18:48:32 -07:00
e97490be16 libsysprof: abstract subprocess usage
For embedding cases, we need a bit more control here so that the
application can be in control of how the process is spawned.
2019-06-11 18:48:28 -07:00
19c2791198 build: fix build on Debian 9 2019-06-11 09:48:41 -07:00
1d0a269b80 libsysprof: start on battery charge capture 2019-06-10 21:32:12 -07:00
0fbe44f06c libsysprof: use properties for D-Bus attributes 2019-06-06 17:33:16 -07:00
e8b9d19f92 libsysprof: watch bus name changes for target bus peer 2019-06-04 18:51:12 -07:00
807bff9152 build: fix build on macOS 2019-06-04 14:35:48 -07:00
af2a17daa5 polkit: try harder to make polkit optional on non-Linux
We want the viewer to be usable on Mac/Windows/FreeBSD, even if our
profiler tooling isn't (yet).

Another option could be to do a simplified viewer window for those
platforms, but I think that is more work to maintain than abstracting
some of the stuff better in libsysprof.
2019-06-04 14:28:06 -07:00
dcd1a9fbcf libsysprof: allow changing envvar from init and after 2019-06-03 19:09:30 -07:00
b7d2ef35be libsysprof: ensure type exists for gjs 2019-06-03 19:02:50 -07:00
af32235541 gjs: add gjs source back
This sets various environment variables we need.
2019-06-03 18:01:53 -07:00
c3915a72f2 build: always install capture headers 2019-06-03 12:52:35 -07:00
5630e1680f build: add -Dlibsysprof option
This gets us closer to being able to only build the capture static library
2019-06-03 12:26:25 -07:00
a74e6daa3b libsysprof: use a{sv} for future profiler specific options
We may need this in the future to send backend-specific options to the
profiler peer.
2019-05-29 15:13:01 -07:00
82f8872c1d libsysprof: add libc/libstdc++ 2019-05-29 15:13:01 -07:00
1ee1a7cc3a libsysprof: ignore kernel symbols if embedded resolver is found
This ensures that we don't mix symbols from kernels if we can reasonably
expect that the necessary symbols were decoded by the peer.
2019-05-29 15:13:01 -07:00
716b913347 libsysprof: check for enough symbols to dereference 2019-05-29 15:13:01 -07:00
7f92889076 libsysprof: be NULL safe 2019-05-29 15:13:01 -07:00
1583ec3f79 libsysprof: fix tag lookups for 0 tags 2019-05-29 15:13:01 -07:00
c8c1b53352 libsysprof: be more defensive 2019-05-29 15:13:01 -07:00
1a11480010 libsysprof: add missing externs 2019-05-29 15:13:01 -07:00
d55e36219c libsysprof: fix various seek usage 2019-05-29 15:13:01 -07:00
b1f58d6104 libsysprof: lseek before deserializing 2019-05-29 15:13:01 -07:00
54f5f6be49 libsysprof: decode symbols from embedded maps in callgraphs 2019-05-29 15:13:01 -07:00
854f0bea52 libsysprof: add symbol resolver that can resolve from capture file
If the capture file has an embedded __symbols__ file within it, we can
try to resolve the function names from the data embedded within that
virtual file.
2019-05-29 15:13:01 -07:00
8f607ed123 libsysprof: use SysprofSymbolMap to write symbol maps 2019-05-29 15:13:01 -07:00
7ffd3e41cf libsysprof: add utility to build symbol maps
These are useful to allow us to append symbol informatio to a capture file
using the existing symbol resolvers.

It can read/write a small format embedded within capture files so that
we can append them from the target machine rather than decoding from the
machine we run Sysprof UI on.
2019-05-29 15:13:01 -07:00
3b3011544b libsysprof: decode and supplement kernel symbols 2019-05-29 15:13:01 -07:00
1f91bc77ed libsysprof: avoid kallsyms in capture file
The kallsyms is huge (like 12Mb) and we want to avoid adding anything we
don't need. Instead, we can rely on the symbols source to decode the
symbols immediately and add them to supplemental.
2019-05-29 15:13:01 -07:00
649dcf3aac libsysprof: add trailing empty kernel node
This can be used so that we always know a symbol will be after the returned
symbol (so we can look for peer address).
2019-05-29 15:13:01 -07:00
b2b3b48b52 libsysprof: add __symbols__ file with supplemental symbol data
This can be used by a future symbol resolver to resolve symbols from the
target host rather than on the capture view host.
2019-05-29 15:13:01 -07:00
b9c52f4573 libsysprof: whitespace 2019-05-29 15:13:01 -07:00
b17ff843d7 libsysprof: add helper to decode symbols with address range 2019-05-29 15:13:01 -07:00
e39feeeeb0 utils: add symbol range support for binfile and elfparser 2019-05-29 15:13:01 -07:00
f18a7171cf whitespace 2019-05-29 15:13:01 -07:00
57255a1d29 libsysprof: remove lookaside from public API 2019-05-29 15:13:01 -07:00
90c165aa08 libsysprof: stub out source for appending symbols 2019-05-29 15:13:01 -07:00
8a246d4453 libsysprof: create hook for supplemental writer data 2019-05-29 15:13:01 -07:00
4da55f4267 libsysprof: add cpuinfo to capture file when possible 2019-05-29 15:13:01 -07:00
874fb01c25 libsysprof: use embedded kallsyms when possible
This uses the kallysms that has been embedded in the capture file when
that is possible (such as when proc-source appends it).
2019-05-29 15:13:01 -07:00
b8c30e3285 libsysprof: add kallsyms to capture file
This can be used by the kernel symbol resolver to resolve symbols on a
different machine than where the capture is performed.
2019-05-29 15:13:01 -07:00
c7b4465e27 libsysprof: add missing new func 2019-05-29 15:13:01 -07:00
17a835570e build: remove dead code 2019-05-29 15:13:01 -07:00
3706869e06 libsysprof: clear trace fd after reading 2019-05-29 15:13:01 -07:00
552ccb4f60 libsysprof: move tracefd to separate source 2019-05-29 15:13:01 -07:00