while adding the RHEL package one of the checks failed
saying that there's no actual version dependency between
dwarves nad libdwarves1:
Subpackage dwarves on aarch64 x86_64 ppc64le s390x consumes libraries libdwarves.so.1()(64bit) libdwarves_emit.so.1()(64bit) libdwarves_reorganize.so.1()(64bit) from subpackage libdwarves1 but does not have explicit package version requirement.
Please add Requires: libdwarves1 = %{version}-%{release} to dwarves in the specfile to avoid the need to test interoperability between the various combinations of old and new subpackages.
It's also not present in fedora and I think that's what we want,
because it's also present for -devel pacakge.. please consider
patch below for fedora package.
koji: https://koji.fedoraproject.org/koji/taskinfo?taskID=38777298
[jolsa@krava trash]$ rpm -qp --requires dwarves-1.15-4.fc32.x86_64.rpm | grep libdwarves1
libdwarves1 = 1.15-4.fc32
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: Martin Cermak <mcermak@redhat.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
That is used by cus__find_function_by_addr & cu__func_function_by_addr.
First user is pfunct --addr, but this is really for pfunct --annotate, that
will process a perf.data file generated by 'perf report', load the debugging
info and regenerate the functions (pfunct -TVi like) that had hits, using
libdisasm to show the assembly code, etc.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
In reponse to https://bugzilla.redhat.com/show_bug.cgi?id=497285 I
included the header files that are needed by the dwarves*.h files
and moved them to /usr/include/dwarves.h.
The CTF work is not completed yet, but the non-CTF related improvements
(progressive loading of CUs, etc) are worth a release till I can get back to
dedicate solid time for developing these tools again.
Reported-by: Masatake YAMATO <yamato@redhat.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Fixing problems found in the fedora packaging review. There are still problems,
but lets get what works out of the door so that it gets into a distro and we
can see what is more important to work on from now on.
The OLS paper will be included as soon as it is published by the OLS organizers.
Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
1. We now use relayfs
2. ostra-cg is shipped and used in the Makefile
3. README.ctracer has all the details
I followed README.ctracer and the result, in my workstation, was this one:
http://oops.ghostprotocols.net:81/acme/dwarves/callgraphs/acme_eating_his_dog_food/6.html
I've started on the 6th page as it is more interesting, having tcp and netlink
callchains, don't be disappointed by some pages having just one level of
nesting, that is just the lack of containers and aliases (to follow tcp_sock,
skb->sk, etc) from the OSTRA days, but it's getting there! :-)
Ah, it is collecting all the base types in the specified struct by doing a
struct "view", i.e. trimming the struct to have just members that are
"reducible" to basic types (int, long, char, signed and unsigned), then
reorganizing it with the code introduced in pahole --reorganize to get it to
the best layout possible, reducing the size of the entry probe points trace
entries.
Updated rpms are available at the usual place:
http://oops.ghostprotocols.net:81/acme/dwarves/rpm/
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This allows us to save 4 more bytes in struct task_struct, for instance, now we
need to combine whole bitfields with other fields if some bitfield has a size
less than sizeof(void *) and there is a suitable hole.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>