1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-12-24 17:51:17 +03:00
Files
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
..
2023-02-24 10:55:38 +00:00
2023-03-02 16:41:43 -03:00
2023-03-30 10:50:50 -03:00
2023-04-05 01:26:36 +02:00
2023-01-24 11:21:38 -05:00
2023-04-17 13:03:10 +01:00
2023-04-27 01:27:28 +02:00
2023-02-06 16:19:35 -03:00