lp:systemtap

Get this repository:
git clone https://git.launchpad.net/systemtap

Import details

Import Status: Reviewed

This repository is an import of the Git repository at git://sourceware.org/git/systemtap.git.

The next import is scheduled to run .

Last successful import was .

Import started on juju-98ee42-prod-launchpad-codeimport-1 and finished taking 25 seconds — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-5 and finished taking 30 seconds — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-4 and finished taking 40 seconds — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-5 and finished taking 30 seconds — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-5 and finished taking 1 minute — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-1 and finished taking 40 seconds — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-1 and finished taking 50 seconds — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-0 and finished taking 30 seconds — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-5 and finished taking 1 minute — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-4 and finished taking 40 seconds — see the log

Branches

Name Last Modified Last Commit
master 2024-04-29 17:16:04 UTC
systemtap.spec typo fixes

Author: Frank Ch. Eigler
Author Date: 2024-04-29 17:16:04 UTC

systemtap.spec typo fixes

mcermak-pr30321 2024-04-25 21:27:38 UTC
Drop unneeded comment

Author: Martin Cermak
Author Date: 2024-04-25 21:27:38 UTC

Drop unneeded comment

wcohen/nfs202404 2024-04-17 14:08:52 UTC
Make probing NFSD V2 probe points optional in buildok/nfsd-detailed.stp test

Author: William Cohen
Author Date: 2024-04-17 14:08:52 UTC

Make probing NFSD V2 probe points optional in buildok/nfsd-detailed.stp test

Newer kernels have removed NFSD V2 suport (CONFIG_NFSD_V2 is not set).
The nfsd.proc2.* probes need to be made optional as those probe
points are not available.

mcermak-pr3040 2023-10-25 09:34:25 UTC
Add a testcase

Author: Martin Cermak
Author Date: 2023-10-25 09:34:25 UTC

Add a testcase

origin/halamour/PR30803 2023-10-23 00:09:59 UTC
Added test case and documentation to NEWS

Author: Housam Alamour
Author Date: 2023-10-23 00:09:59 UTC

Added test case and documentation to NEWS

fche/pr29108 2023-08-11 15:32:30 UTC
PR29108 / BZ2095359: snapshot 5: read/poll simplification

Author: Frank Ch. Eigler
Author Date: 2023-08-10 22:39:16 UTC

PR29108 / BZ2095359: snapshot 5: read/poll simplification

Simply use reader_timeout_ms in bulk/serialized mode for all ppoll
timeouts, to prevent those threads from sleeping indefinitely, now
that they won't be bothered by signals.

wcohen/coverity2023 2023-07-31 14:31:22 UTC
Add coverity annotation to indicate overflow in bpfinterp.cxx is intentional

Author: William Cohen
Author Date: 2023-07-31 14:31:22 UTC

Add coverity annotation to indicate overflow in bpfinterp.cxx is intentional

wcohen/202304_fixes 2023-04-25 14:56:47 UTC
Test for kernels that backported removal of <linux/genhd.h> include

Author: William Cohen
Author Date: 2023-04-25 14:56:47 UTC

Test for kernels that backported removal of <linux/genhd.h> include

Some kernels (RHEL9) backported patches that removed the
<linux/genhd.h> include. Thus, the ioblock.stp tapset cannot simply
check the kernel version to determine whether the include file is
available. The added autoconf test will determine whether the include
is available.

wcohen/stack_sizes 2023-02-15 14:56:48 UTC
WIP: Add support for handling qemu coroutines and stack switching.

Author: William Cohen
Author Date: 2023-02-15 14:56:48 UTC

WIP: Add support for handling qemu coroutines and stack switching.

This probes the places that the stacks are created and the coroutines
switch via setjmp/longjmp. However, it doesn't provide the correct stack
sizes.

wcohen/preempt_bug 2022-11-04 15:12:05 UTC
Ensure that SystemTap runtime uses smp_processor_id() in proper context

Author: William Cohen
Author Date: 2022-11-04 15:12:05 UTC

Ensure that SystemTap runtime uses smp_processor_id() in proper context

There were cases on Fedora 36 and Rawhide running kernels with
CONFIG_DEBUG_PREEMPT=y where systemtap scripts would trigger kernel
log messages like the following:

[ 257.544406] check_preemption_disabled: 4 callbacks suppressed
[ 257.544409] BUG: using smp_processor_id() in preemptible [00000000] code: staprun/2106
[ 257.544465] caller is _stp_runtime_context_trylock+0x12/0x70 [stap_e36600406768aeefd49daf9fc7a3d23c_2106]
[ 257.544507] CPU: 0 PID: 2106 Comm: staprun Tainted: G OE ------- --- 6.1.0-0.rc2.20221028git23758867219c.24.fc38.x86_64 #1
[ 257.544544] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.0-1.fc36 04/01/2014
[ 257.544571] Call Trace:
[ 257.544583] <TASK>
[ 257.544593] dump_stack_lvl+0x5b/0x77
[ 257.544620] check_preemption_disabled+0xe1/0xf0
[ 257.544641] _stp_runtime_context_trylock+0x12/0x70 [stap_e36600406768aeefd49daf9fc7a3d23c_2106]
[ 257.544673] _stp_runtime_entryfn_get_context+0xb/0x70 [stap_e36600406768aeefd49daf9fc7a3d23c_2106]
[ 257.544705] _stp_ctl_send+0x76/0x1e0 [stap_e36600406768aeefd49daf9fc7a3d23c_2106]
[ 257.544735] _stp_transport_init+0x71a/0x860 [stap_e36600406768aeefd49daf9fc7a3d23c_2106]
[ 257.544771] ? kallsyms_on_each_symbol+0x30/0x30 [stap_e36600406768aeefd49daf9fc7a3d23c_2106]
[ 257.544803] do_one_initcall+0x6b/0x320
[ 257.544827] do_init_module+0x4a/0x200
[ 257.544844] __do_sys_init_module+0x16a/0x1a0
[ 257.544870] do_syscall_64+0x58/0x80
[ 257.544885] ? up_read+0x17/0x20
[ 257.544902] ? lock_is_held_type+0xe8/0x140
[ 257.544921] ? asm_exc_page_fault+0x22/0x30
[ 257.544939] ? lockdep_hardirqs_on+0x7d/0x100
[ 257.544956] entry_SYSCALL_64_after_hwframe+0x63/0xcd
[ 257.544975] RIP: 0033:0x7f3cde12f5de
[ 257.544992] Code: 48 8b 0d 35 68 0c 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 49 89 ca b8 af 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 02 68 0c 00 f7 d8 64 89 01 48
[ 257.545010] RSP: 002b:00007ffc5170c418 EFLAGS: 00000246 ORIG_RAX: 00000000000000af
[ 257.545010] RAX: ffffffffffffffda RBX: 0000563620bd4020 RCX: 00007f3cde12f5de
[ 257.545010] RDX: 0000563620bd4020 RSI: 0000000000040ea0 RDI: 00007f3cde44a010
[ 257.545010] RBP: 0000000000000003 R08: 0000000000000000 R09: 0000000000000000
[ 257.545010] R10: 0000000000000053 R11: 0000000000000246 R12: 00007ffc5170c510
[ 257.545010] R13: 00007f3cde44a010 R14: 00007ffc5170c440 R15: 00007f3cde4631e8
[ 257.545010] </TASK>

This issue was introduced by git commit 1641b6e7ea which added a fast
path check that used smp_processor_id() without first having a
preempt_disable(). The code now ensures that preemption is disabled
before using the smp_processor_id().

wcohen/linu-6.1 2022-11-01 02:48:29 UTC
Adjust runtime/linux/task_finder2.c to work with Linux 6.1 kernels

Author: William Cohen
Author Date: 2022-11-01 02:48:29 UTC

Adjust runtime/linux/task_finder2.c to work with Linux 6.1 kernels

Unlike the earlier kernels the mm_struct does not have mmap field in
the Linux 6.1 kernel. This required some adjustments to the
'__stp_call_mmap_callbacks_for_task function to work with the newer
kernel. Newer kernels use VMA_ITERATOR and for_each_vma macros to
access the equivalent to the vma information accessed from the mmap
field. When reviewing the commit history of the Linux kernel found git
commit 3a4f7ef4be by Liam Howlett that provided backward compatible
VMA_ITERATOR and for_each_vma macros in cases where those macros were
not available. This approach was adapted for task_finder2.c and
allows the code to compile on both the old and new kernels.

rgoldber/pr27410 2022-09-07 13:42:34 UTC
PR27410: Probe processes using debuginfod

Author: Ryan Goldberg
Author Date: 2022-07-21 16:41:17 UTC

PR27410: Probe processes using debuginfod

New tapset which allows for process
probing using executables/debuginfo
stored in debuginfod servers.

wcohen/pr29037 2022-07-08 15:07:12 UTC
Cache and clean up allocated data for created DW_AT_data_member_location

Author: William Cohen
Author Date: 2022-07-08 15:07:12 UTC

Cache and clean up allocated data for created DW_AT_data_member_location

wcohen/memory 2022-02-04 19:18:46 UTC
Clear out the Dyninst-related data structures after analysis finishes

Author: William Cohen
Author Date: 2022-02-04 19:18:46 UTC

Clear out the Dyninst-related data structures after analysis finishes

The liveness analysis for SystemTap uses Dyninst to examine the
binaries. For large binaries such as the Linux kernel this can
consume quite a bit of memory. Once the analysis is done, the code
needs to clean up as much of that as possible.

wcohen/liveness_mem_use 2022-01-18 03:02:44 UTC
Graceful continuation when not enough memory available for liveness analysis

Author: William Cohen
Author Date: 2022-01-18 03:02:44 UTC

Graceful continuation when not enough memory available for liveness analysis

The dyninst parsing of binaries can take a significant amount of
memory. On machines without enough memory to parse a large binary we
want the analysis to fail gracefully with a warning that the liveness
analysis was unable to run and continue on rather than immediately
exiting with a std::bad_alloc exception.

wcohen/dyninst_config 2022-01-14 20:05:17 UTC
Add additional directory for dyninst libs and link in boost system library.

Author: William Cohen
Author Date: 2022-01-14 20:05:17 UTC

Add additional directory for dyninst libs and link in boost system library.

wcohen/rhbz2028840 2022-01-10 19:48:27 UTC
Correct typo and include information about location of target being analyzed.

Author: William Cohen
Author Date: 2022-01-10 19:48:27 UTC

Correct typo and include information about location of target being analyzed.

wcohen/align 2021-11-02 15:20:27 UTC
Add -faligned-new to CXXFLAGS when available to compile dyninst 10.1 code

Author: William Cohen
Author Date: 2021-11-02 15:20:27 UTC

Add -faligned-new to CXXFLAGS when available to compile dyninst 10.1 code

Fedora 30 and 31 have Dyninst 10.1. The code added to dyninst
by commit a00056bec6a0265afb592944dde2ff461b525e8d makes some data
structures cache aligned (128 bytes). The c++ compiler ends up flagging that
as an error:

  CXX stap-analysis.o
/notnfs/smakarov/stap-checkout/analysis.cxx: In constructor ‘analysis::analysis(std::string)’:
/notnfs/smakarov/stap-checkout/analysis.cxx:59:37: error: ‘new’ of type ‘Dyninst::ParseAPI::SymtabCodeSource’ with extended alignment 128 [-Werror=aligned-new=]
   59 | sts = new SymtabCodeSource(name_str);
      | ^
/notnfs/smakarov/stap-checkout/analysis.cxx:59:37: note: uses ‘void* operator new(std::size_t)’, which does not have an alignment parameter
/notnfs/smakarov/stap-checkout/analysis.cxx:59:37: note: use ‘-faligned-new’ to enable C++17 over-aligned new support
cc1plus: all warnings being treated as errors
make[2]: *** [Makefile:1724: stap-analysis.o] Error 1

To make the compiler happy adding a -faligned-new option to the
CXXFLAGS when it is available. This issue does not affect later
releases of dyninst as the problem code was removed from dyninst in
git commit d233ae7596cd74201d634c2f0f7d7a0e3d628e79.

wcohen/bpf_syscall_any_v2 2021-10-25 15:37:38 UTC
Update syscall_any number<->name maps to include syscallent-common.h entries.

Author: William Cohen
Author Date: 2021-10-25 15:32:46 UTC

Update syscall_any number<->name maps to include syscallent-common.h entries.

Some syscalls information had been moved to syscallent-common.h in
the strace code. Need to use the #include in the syscallent*.h files
to get those entries.

wcohen/analysis 2021-10-13 19:56:21 UTC
Assert that anything other than 32-bit or 64-bit processors will not be seen

Author: William Cohen
Author Date: 2021-10-13 19:56:21 UTC

Assert that anything other than 32-bit or 64-bit processors will not be seen

One last diagnostic print to remove. In this case the mapping between
dwarf register and Dyninst register name needs to take into account
whether this is 32-bit or 64-bit code. However, there is a default in
the switch case to catch the anything other than 4 or 8 bytes. If the
code see something other than one of those two values, something is
very wrong. Figured best to just have an assert stop things, so the
problem is examined.

serhei/pr23478 2021-08-24 16:44:30 UTC
bpf pr23478 :: test non-unique key/val iteration

Author: Serguei Makarov
Author Date: 2021-08-24 16:44:30 UTC

bpf pr23478 :: test non-unique key/val iteration

sultan/bulkmode2 2020-12-09 00:22:56 UTC
Revert "REVERTME: tapset-timers: work around on-the-fly deadlocks caused by m...

Author: Sultan Alsawaf
Author Date: 2020-12-09 00:22:56 UTC

Revert "REVERTME: tapset-timers: work around on-the-fly deadlocks caused by mutex_trylock"

This reverts commit 6a27888b118b7a94650a68aae028957cdd5fb5f5.

No longer needed. As promised, we're reverting this.

sultan/bulkmode 2020-12-05 02:33:21 UTC
dyninst transport: add _stp_print_*lock_irq* stubs

Author: Frank Ch. Eigler
Author Date: 2020-12-05 02:33:21 UTC

dyninst transport: add _stp_print_*lock_irq* stubs

Recent code on the transport/linux side needs a few new (stub)
functions and type decls.

wcohen/tapset_cast 2020-06-22 15:28:32 UTC
Use explicit @cast() operators pointing to kernel for tapsets

Author: William Cohen
Author Date: 2020-06-22 15:28:32 UTC

Use explicit @cast() operators pointing to kernel for tapsets

Commit 00ee19ff030f665df7e087a579f39105256a0253 changed how @cast()
operations work and they no longer default to using the kernel
debuginfo for type information. Need to include kernel as location for
this information for the @cast() rather than just assuming a default.

stapbpf/pr23476 2020-02-18 22:00:21 UTC
stapbpf PR23476 :: a better test for the variance calculation

Author: Serhei Makarov
Author Date: 2019-08-19 15:16:53 UTC

stapbpf PR23476 :: a better test for the variance calculation

A testcase that compares the result of @variance calculation
on the BPF and LKM backends, assuming LKM result to be ground truth
and aggregating increasing numbers of datapoints.

XXX Reveals some problems in the BPF variance calculation for N > 1.

sapatel/pr13371 2019-09-09 18:33:05 UTC
character escaping changed

Author: Sagar Patel
Author Date: 2019-09-09 18:33:05 UTC

character escaping changed

wcohen/bpf_target 2019-06-07 19:44:46 UTC
Add mmfilepage.stp to the list of examples that work with the bpf backend.

Author: William Cohen
Author Date: 2019-06-07 19:44:46 UTC

Add mmfilepage.stp to the list of examples that work with the bpf backend.

wcohen/bpf_syscall_any 2019-06-03 15:47:09 UTC
Add an incomplete bpf syscall_any tapset.

Author: William Cohen
Author Date: 2019-06-03 15:47:09 UTC

Add an incomplete bpf syscall_any tapset.

The syscall_any.return doesn't set syscall_nr or name variables.

serhei/rt-fixes-2 2019-05-29 16:43:54 UTC
rt-fixes (0) experimental :: add stp_rwlock_t which can be raw_spinlock on RT

Author: Serhei Makarov
Author Date: 2019-05-29 16:43:54 UTC

rt-fixes (0) experimental :: add stp_rwlock_t which can be raw_spinlock on RT

There is no raw_rwlock_t type on most kernels, so use a regular spinlock instead.
(Using rwlock_t in the wrong context can prevent probes from locking data entirely,
and causes kernel freeze in the conversions_profile.stp stress test.)

changes made throughout translator and runtime
- add stp_rwlock_t either rwlock_t or raw_spinlock_t
- ensure DEFINE_RWLOCK -> DEFINE_STP_RWLOCK
- ensure {read,write}_{,un,try}lock -> stp_{read,write}_{,un,try}lock

wcohen/backtrace 2019-03-07 14:37:53 UTC
Do the search save_stack_trace_regs() in the stap module's initialization

Author: William Cohen
Author Date: 2019-03-07 14:37:53 UTC

Do the search save_stack_trace_regs() in the stap module's initialization

Previously, the search for save_stack_trace_regs() was done the first
time the _stp_stack_print_fallback was called. However, want to avoid
calling kallsyms_lookup_name() in some arbitrary probe handler as it
may take a signficant amount of time to search for
save_stack_trace_regs(). Moving this search to where other
initialization operations are done and there are fewer contraints on
runninging it.

serhei/rhbz1643997 2018-11-13 19:02:51 UTC
PR23875 bpf_unparser::visit_foreach_loop(): temporarily disable string key it...

Author: Serhei Makarov
Author Date: 2018-11-13 18:13:14 UTC

PR23875 bpf_unparser::visit_foreach_loop(): temporarily disable string key iteration

serhei/bpf_asm 2018-10-24 17:30:29 UTC
stapbpf assembler WIP #8 :: bpf-asm.exp driver and more testcases

Author: Serhei Makarov
Author Date: 2018-10-24 17:30:29 UTC

stapbpf assembler WIP #8 :: bpf-asm.exp driver and more testcases

wcohen/syscall_any 2018-09-21 14:02:12 UTC
Convert the various systemtap examples to use the syscall any tapset

Author: William Cohen
Author Date: 2018-09-21 02:50:16 UTC

Convert the various systemtap examples to use the syscall any tapset

To make the examples cleaner use the new syscall any tapset. This avoids
exposing the systemtap internal function _stp_syscall_nr() and makes the
instrumentation look a bit more like the traditional syscall.* probe points.

wcohen/examples 2018-06-27 14:56:44 UTC
Simplify the initialization logic for cpu_throttle.stp

Author: William Cohen
Author Date: 2018-06-27 14:56:44 UTC

Simplify the initialization logic for cpu_throttle.stp

Rather than ensuring there is an instance for each of the cpus on the
machine just make sure there is an instance for cpu0 to avoid having
an empty array. As processors are throttled the other instances will
be added.

wcohen/cpu_throttle 2018-06-27 03:16:20 UTC
Add the cpu_throttle.stp example to stap-exporter scripts

Author: William Cohen
Author Date: 2018-06-27 03:16:20 UTC

Add the cpu_throttle.stp example to stap-exporter scripts

The cpu_throttle.stp script monitors Intel x86 cpu throttling due to
power and thermal constraints. The output is formatted to be
consumable by prometheus.

scox/https 2018-06-22 14:55:32 UTC
Merge branch 'master' into scox/https

Author: Stan Cox
Author Date: 2018-06-22 14:55:32 UTC

Merge branch 'master' into scox/https

serhei/rt-fixes-clean 2018-05-22 20:09:43 UTC
kernel-rt fix: avoid use-after-free of pt_regs struct passed to task_work fun...

Author: Serhei Makarov
Author Date: 2018-05-22 20:06:59 UTC

kernel-rt fix: avoid use-after-free of pt_regs struct passed to task_work function.

* stp_utrace.c (utrace_exec_work): move __stp_utrace_free_task_work() to avoid use-after-free.
(utrace_syscall_entry_work): ditto.

csanting/PR20883 2017-08-31 19:01:52 UTC
Update man pages

Author: Cody Santing
Author Date: 2017-08-31 19:01:52 UTC

Update man pages

* man/stap.1.in: mention requirements and usage of k8s support

dsmith/pr21173 2017-03-01 18:58:55 UTC
PR21173: Improve type resolution.

Author: David Smith
Author Date: 2017-03-01 18:58:55 UTC

PR21173: Improve type resolution.

* elaborate.cxx (const_folder::visit_binary): Replace the initial type
  resolution pass with setting types (and remembering the new types so
  that they will get resolved later).
  (setup_semantic_pass_types): New function.
  (semantic_pass_types_resolved): Ditto.
  (semantic_pass_types): Use a global type resolution info, so that we can
  remember const_folder::visit_binary type setting.

dsmith/mmv 2014-08-15 18:18:08 UTC
Fix adding instances to mmv values.

Author: David Smith
Author Date: 2014-08-15 18:18:08 UTC

Fix adding instances to mmv values.

jistone/forking 2014-04-02 20:00:34 UTC
Experiment with forking the compilation passes

Author: Josh Stone
Author Date: 2014-03-26 01:50:53 UTC

Experiment with forking the compilation passes

This moves the passes_0_4() compilation into a forked subprocess. This
guarantees that any resources used (heap, files, etc.) are not held
throughout pass-5 while we actually run the script. Even just for the
heap, this is the difference of 10s or 100s of MB RSS while we run,
depending on the complexity of the script, to just around 3MB RSS.

systemtap-1.6-cisco-patches 2012-10-23 22:11:03 UTC
systemtap-enable_vma_tracker.patch

Author: Victor Kamensky
Author Date: 2012-08-24 06:49:18 UTC

systemtap-enable_vma_tracker.patch

Cover corner cases where _stp_umodule_relocate is used but vma_tracker
is not enabled, while it should be, because it uses
stap_find_vma_map_info_user function.

timoore/grapher 2009-06-04 13:49:16 UTC
grapher fixups

Author: Tim Moore
Author Date: 2009-06-04 13:49:16 UTC

grapher fixups

 * grapher/grapher.cxx (main): Fix problems with call to execlp.
 * grapher/GraphWidget.cxx (on_expose_event): Use valarray to hold
 dash values, for compatibility with older versions of gtkmm.

143 of 43 results
This repository contains Public information 
Everyone can see this information.