On Tue, 11 Jul 2017, Lennart Poettering wrote:
On Tue, 11.07.17 12:55, Uoti Urpala (uoti.urp...@pp1.inet.fi) wrote:
On Tue, 2017-07-11 at 09:35 +0200, Lennart Poettering wrote:
Normally it's dead cheap to check that, it's just reading and
comparing one memory location. It's a pitty that this isn't the case
currently on Debian, but as it appears this is an oversight on their
side, and I am sure it will be eventually fixed there, if it hasn't
already.
Are you sure about those "Debian only" and "will be 'fixed'" parts? The
Debian patch seems to be a cherry pick from upstream glibc. Is there
evidence of some error that would cause effects only visible on Debian
and nowhere else? And/or has the change been reverted or behavior
otherwise modified upstream to limit the range of relevant versions?
See the links Vito provided:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=857909
https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commit;h=0cb313f7cb0e418b3d56f3a2ac69790522ab825d
i.e. Debian undid the PID caching to fix some issue that has been fix
properly now, and hence the PID caching should be turned on again.
On Fedora at least getpid() is not visible in strace, and is fully
cached, as it should be.
I just tested this on F25 and F26 beta, and it's certainly visible for me
on both of them:
# cat /etc/system-release
Fedora release 25 (Twenty Five)
# rpm -q glibc
glibc-2.24-9.fc25.x86_64
# strace -c journalctl --since -1hour 2>&1 >/dev/null | head -10
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
93.93 0.167020 2 83761 getpid
3.93 0.006983 2 3025 write
0.54 0.000953 10 97 mmap
0.39 0.000696 13 52 8 open
0.31 0.000558 14 40 munmap
0.19 0.000332 8 42 mprotect
0.15 0.000264 6 45 fstat
0.14 0.000246 6 44 close
# cat /etc/system-release
Fedora release 26 (Twenty Six)
# rpm -q glibc
glibc-2.25-7.fc26.x86_64
# strace -c journalctl --since -1hour 2>&1 >/dev/null | head -10
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
62.84 0.007874 4 2063 getpid
7.96 0.000998 12 86 mmap
7.85 0.000983 20 48 8 open
3.85 0.000483 9 54 mprotect
2.80 0.000351 5 71 write
2.75 0.000345 11 32 read
2.69 0.000337 8 41 fstat
2.66 0.000333 8 40 close
The second machine had just been started, which is why the numbers are a
lot lower. Nevertheless, getpid is still taking by far the most
amount of time in syscalls.
Both of these are on Fedora's testing branch, but I don't think Fedora's
regular branch has a significantly different version of glibc.
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel