[OE-core] [PATCH] systemtap: 3.3 -> 4.0

Randy MacLeod randy.macleod at windriver.com
Mon Oct 15 21:02:15 UTC 2018


On 10/15/2018 02:21 PM, Victor Kamensky wrote:
> Upgrade systemtap from 3.3 to 4.0: Removed backported patch.
> 
> Very short summary of major changes from SystemTap 4.0
> announcement by Frank Ch. Eigler <fche at redhat.com>:
> 
>> prometheus exporter network service; ebpf support extensions including
>> strings and implementation of traditional log(), sprintf() functions;
>> rebuilt rich tapset coverage for 4.17+ syscalls and for
>> tracepoint-based syscalls; script language tweaks for supporting
>> machine-generated scripts
> 
> Fixes [YOCTO #12950]
> 
> Signed-off-by: Victor Kamensky <kamensky at cisco.com>
> ---
> Hi Guys,
> 
> I'll let you to decide whether you want to accept
> it for 2.6 at this point or push it for the next release.
> On one hand after move to 4.18 kernel SystemTap 3.3
> fails to trace any system call on x86_64 - it is major
> functionality breakage. Look at:
> 
> https://bugzilla.redhat.com/show_bug.cgi?id=1596456

Ouch!

> 
> On other hand it is quite late to do major version
> updates.

It is but nothing depends on systemtap so I think we
don't have much choice and we should do it unless there
are autobuilder tests that regress.


A quick read through the YP mega-manual suggests that
we don't have to change any of the text.
Victor,
Could you take a look and confirm that please?

I noticed that the link in section:
    20.3.3. Documentation
for:
    http://sourceware.org/systemtap/langref/
is dead. There is a pdf:
    http://sourceware.org/systemtap/langref.pdf
Perhaps this is temporary due to the recent release.

> 
> I did go through limited set of tests on all
> supported QEMU targets. As far as these tests
> concerned proposed 4.0 matches 3.3 results.
> 
> Thanks,
> Victor

Thanks Victor.

Talk about hot off the presses, 4.0 was released at:
    13-Oct-2018 18:54

$ git log --oneline release-3.3..release-4.0 | wc -l
252

$ git diff release-3.3..release-4.0 | diffstat | tail -1
  1574 files changed, 50756 insertions(+), 23604 deletions(-)

Lots of changes to docs, testsuite but also quite a bit to core code
and tapsets:

$ git diff release-3.3..release-4.0 | diffstat  | cut -d"/" -f-2 | uniq 
-c |grep -v "   [1-5] "
     770  b/doc
      16  b/httpd
       8  b/man
       9  b/po
      18  b/runtime
      15  b/stap-exporter
       6  b/staprun
     440  b/tapset
     223  b/testsuite


../Randy

> 
>   ...entrypc-avoid-usage-of-uninitialized.patch | 46 -------------------
>   .../systemtap/systemtap_git.inc               |  5 +-
>   2 files changed, 2 insertions(+), 49 deletions(-)
>   delete mode 100644 meta/recipes-kernel/systemtap/systemtap/0001-dwflpp-function_entrypc-avoid-usage-of-uninitialized.patch
> 
> diff --git a/meta/recipes-kernel/systemtap/systemtap/0001-dwflpp-function_entrypc-avoid-usage-of-uninitialized.patch b/meta/recipes-kernel/systemtap/systemtap/0001-dwflpp-function_entrypc-avoid-usage-of-uninitialized.patch
> deleted file mode 100644
> index d0082a1094..0000000000
> --- a/meta/recipes-kernel/systemtap/systemtap/0001-dwflpp-function_entrypc-avoid-usage-of-uninitialized.patch
> +++ /dev/null
> @@ -1,46 +0,0 @@
> -From 8466fca2a074323a235ef38d425f994a2ff7e64f Mon Sep 17 00:00:00 2001
> -From: Victor Kamensky <kamensky at cisco.com>
> -Date: Mon, 9 Jul 2018 09:31:19 -0700
> -Subject: [PATCH] dwflpp::function_entrypc avoid usage of uninitialized memory
> -
> -Failure on 3.3 release was observed. Failure was elusive and
> -disappeared after seemingly random configure option change, or when
> -code was compiled with -O1 or -O0 (vs default -O2). Running failing
> -test case under valgrind memcheck pointed to couple places where
> -'Conditional jump or move depends on uninitialised value(s)' occured.
> -
> -After addressing these in two places in dwflpp::function_entrypc,
> -valgrind memcheck run is clean and original issue got fixed.
> -
> -Upstream-Status: Backport
> -Signed-off-by: Victor Kamensky <kamensky at cisco.com>
> ----
> - dwflpp.cxx | 6 +++++-
> - 1 file changed, 5 insertions(+), 1 deletion(-)
> -
> -diff --git a/dwflpp.cxx b/dwflpp.cxx
> -index bfbb6b096..2172e705a 100644
> ---- a/dwflpp.cxx
> -+++ b/dwflpp.cxx
> -@@ -2465,13 +2465,17 @@ bool
> - dwflpp::function_entrypc (Dwarf_Addr * addr)
> - {
> -   assert (function);
> -+
> -+  // assign default value
> -+  *addr = 0;
> -+
> -   // PR10574: reject 0, which tends to be eliminated COMDAT
> -   if (dwarf_entrypc (function, addr) == 0 && *addr != 0)
> -     return true;
> -
> -   /* Assume the entry pc is the base address, or (if zero)
> -      the first address of the ranges covering this DIE.  */
> --  Dwarf_Addr start, end;
> -+  Dwarf_Addr start = 0, end;
> -   if (dwarf_ranges (function, 0, addr, &start, &end) >= 0)
> -     {
> -       if (*addr == 0)
> ---
> -2.17.1
> -
> diff --git a/meta/recipes-kernel/systemtap/systemtap_git.inc b/meta/recipes-kernel/systemtap/systemtap_git.inc
> index 06924fc240..274fcde5c1 100644
> --- a/meta/recipes-kernel/systemtap/systemtap_git.inc
> +++ b/meta/recipes-kernel/systemtap/systemtap_git.inc
> @@ -1,7 +1,7 @@
>   LICENSE = "GPLv2"
>   LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
> -SRCREV = "48867d1cface9445d58e3c6e14497770b7eb77e1"
> -PV = "3.3"
> +SRCREV = "428f84e9e656bce71018e8902e4edb8aacafcc0e"
> +PV = "4.0"
>   
>   SRC_URI = "git://sourceware.org/git/systemtap.git \
>              file://configure-allow-to-disable-libvirt.patch \
> @@ -11,7 +11,6 @@ SRC_URI = "git://sourceware.org/git/systemtap.git \
>              file://0001-Do-not-let-configure-write-a-python-location-into-th.patch \
>              file://0001-Install-python-modules-to-correct-library-dir.patch \
>              file://0001-staprun-stapbpf-don-t-support-installing-a-non-root.patch \
> -           file://0001-dwflpp-function_entrypc-avoid-usage-of-uninitialized.patch \
>              "
>   
>   COMPATIBLE_HOST = '(x86_64|i.86|powerpc|arm|aarch64|microblazeel|mips).*-linux'
> 


-- 
# Randy MacLeod
# Wind River Linux



More information about the Openembedded-core mailing list