[Bug runtime/31014] New: Uprobes registered in task finder would block the target processes for long time
agentzh at gmail dot com
sourceware-bugzilla@sourceware.org
Mon Oct 30 22:16:36 GMT 2023
https://sourceware.org/bugzilla/show_bug.cgi?id=31014
Bug ID: 31014
Summary: Uprobes registered in task finder would block the
target processes for long time
Product: systemtap
Version: unspecified
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: runtime
Assignee: systemtap at sourceware dot org
Reporter: agentzh at gmail dot com
Target Milestone: ---
Currently, the stap runtime tries to call uprobe_register() to register new
uprobes inside the context of the target processes via the task finder. This
makes little sense for inode-based uprobes implemented in modern kernels and
also introduces significant (8ms+) delay in all the target processes via the
task work mechanism. Such delays may manifest themselves in syscalls like
epoll_wait inside the target processes.
All the target processes are affected even though only one task finder callback
gets to call uprobe_register(). Other concurrent target processes would just
wait on the lock `c->consumer_lock`.
After talking with fche, I'd propose that we should register uprobes early
before starting the task finder callbacks. This still may block a CPU core for
8ms+ or so, but it no longer blocks all the target processes in their own
process contexts.
Will prepare a patch shortly.
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the Systemtap
mailing list