glibc/sysdeps/unix
H.J. Lu a443bd3fb2 __check_pf: Add a cancellation cleanup handler [BZ #20975]
There are reports for hang in __check_pf:

https://github.com/JoeDog/siege/issues/4

It is reproducible only under specific configurations:

1. Large number of cores (>= 64) and large number of threads (> 3X of
the number of cores) with long lived socket connection.
2. Low power (frequency) mode.
3. Power management is enabled.

While holding lock, __check_pf calls make_request which calls __sendto
and __recvmsg.  Since __sendto and __recvmsg are cancellation points,
lock held by __check_pf won't be released and can cause deadlock when
thread cancellation happens in __sendto or __recvmsg.  Add a cancellation
cleanup handler for __check_pf to unlock the lock when cancelled by
another thread.  This fixes BZ #20975 and the siege hang issue.
2023-04-28 13:38:38 -07:00
..
alpha Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
arm Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
bsd Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
i386 Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
inet Remove obsolete, never-implemented XSI STREAMS declarations 2019-03-14 15:44:15 +01:00
mips Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
powerpc Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
sh Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
sysv/linux __check_pf: Add a cancellation cleanup handler [BZ #20975] 2023-04-28 13:38:38 -07:00
x86_64 Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
confstr.h
get_child_max.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
getlogin_r.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
getlogin.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
getpagesize.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
grantpt.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
ifreq.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
Implies
make-syscalls.sh Add SYSCALL_ULONG_ARG_[12] to pass long to syscall [BZ #25810] 2020-04-29 05:35:34 -07:00
Makefile Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
setxid.h Update. 2004-11-12 01:27:04 +00:00
sockatmark.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
syscall-template.S Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
syscall.S Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
syscalls.list misc: Add time64 alias for ioctl 2021-07-21 11:58:09 +02:00
sysdep.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00