[Bug libc/26994] New: Performance regression with raise()
su-lifan at linux dot alibaba.com
sourceware-bugzilla@sourceware.org
Tue Dec 1 16:20:30 GMT 2020
https://sourceware.org/bugzilla/show_bug.cgi?id=26994
Bug ID: 26994
Summary: Performance regression with raise()
Product: glibc
Version: 2.24
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: libc
Assignee: unassigned at sourceware dot org
Reporter: su-lifan at linux dot alibaba.com
CC: drepper.fsp at gmail dot com
Target Milestone: ---
With the following commit introduced in glibc-2.24:
```
commit 2ac88eecc57ff00e0b5ff803ebcc3465d2d640dd
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Fri Apr 22 09:25:20 2016 -0300
Refactor Linux raise implementation (BZ#15368)
This patch changes both the nptl and libc Linux raise implementation
to avoid the issues described in BZ#15368. The strategy used is
summarized in bug report first comment:
1. Block all signals (including internal NPTL ones);
2. Get pid and tid directly from syscall (not relying on cached
values);
3. Call tgkill;
4. Restore old signal mask.
Tested on x86_64 and i686.
```
This causes performance regression (around 20%) of will-it-scale/signal1_thread
with 1 worker. I examined the perf and confirmed the extra rt_sigprocmask
syscalls performed by raise().
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the Glibc-bugs
mailing list