glibc/sysdeps
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
..
aarch64 aarch64: update libm test ulps 2023-02-24 10:55:38 +00:00
alpha alpha: Remove strncmp optimization 2023-03-02 16:41:43 -03:00
arc ARC:fpu: add extra capability check before use of sqrt and fma builtins 2023-02-17 16:17:58 -03:00
arm Update arm libm-tests-ulps 2023-03-30 10:50:50 -03:00
csky C-SKY: Strip hard float abi from hard float feature. 2023-02-07 16:34:24 +08:00
generic elf: Stop including tls.h in ldsodefs.h 2023-04-10 23:26:28 +02:00
gnu Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
hppa hppa: Update struct __pthread_rwlock_arch_t comment. 2023-04-05 18:54:47 +00:00
htl htl: move pthread_self info libc. 2023-04-05 01:26:36 +02:00
hurd Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
i386 math: Remove the error handling wrapper from fmod and fmodf 2023-04-03 16:45:27 -03:00
ia64 ia64: Regenerate ulps 2023-01-24 11:21:38 -05:00
ieee754 math: Improve fmod(f) performance 2023-04-17 13:03:10 +01:00
loongarch LoongArch: Add get_rounding_mode. 2023-03-13 09:20:42 +08:00
m68k math: Remove the error handling wrapper from fmod and fmodf 2023-04-03 16:45:27 -03:00
mach Fix Hurd getcwd build with GCC >= 13 2023-04-27 01:27:28 +02:00
microblaze Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
mips Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
nios2 Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
nptl Created tunable to force small pages on stack allocation. 2023-04-20 13:54:24 -03:00
or1k Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
posix system: Add "--" after "-c" for sh (BZ #28519) 2023-03-28 10:12:30 -03:00
powerpc powerpc: Disable stack protector in early static initialization 2023-04-03 17:42:08 -03:00
pthread Use O_CLOEXEC in more places (BZ #15722) 2023-04-22 13:50:14 +02:00
riscv riscv: Resolve symbols directly for symbols with STO_RISCV_VARIANT_CC. 2023-04-28 07:02:42 -07:00
s390 Remove --enable-tunables configure option 2023-03-29 14:33:06 -03:00
sh sh: Add string-fzb.h 2023-02-06 16:19:35 -03:00
sparc Remove --enable-tunables configure option 2023-03-29 14:33:06 -03:00
unix __check_pf: Add a cancellation cleanup handler [BZ #20975] 2023-04-28 13:38:38 -07:00
wordsize-32 Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
wordsize-64 C2x strtol binary constant handling 2023-02-16 23:02:40 +00:00
x86 <sys/platform/x86.h>: Add PREFETCHI support 2023-04-05 14:46:10 -07:00
x86_64 hurd: Implement prefer_map_32bit_exec tunable 2023-04-24 22:48:35 +02:00