[GIT PULL] posix-timers updates

From: Frederic Weisbecker
Date: Mon Jul 29 2024 - 18:04:00 EST


Thomas,

Please pull the latest tags/posix-timers-2024-07-29 tag from:

git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git tags/posix-timers-2024-07-29

up to 7f8af7bac5380f2d95a63a6f19964e22437166e1:

signal: Replace BUG_ON()s (2024-07-29 21:57:35 +0200)

----------------------------------------------------------------
Updates for posix timers and related signal code:

* Prepare posix timers selftests for upcoming changes:

- Check signal behaviour sanity against SIG_IGN

- Check signal behaviour sanity against timer
reprogramm/deletion

- Check SIGEV_NONE pending expiry read

- Check interval timer read on a pending SIGNAL

- Check correct overrun count after signal block/unblock

* Various consolidations:

- timer get/set

- signal queue

* Fixes:
- Correctly read SIGEV_NONE timers

- Forward expiry while reading expired interval timers
with pending signal

- Don't arm SIGEV_NONE timers

* Various cleanups all over the place

----------------------------------------------------------------
Thomas Gleixner (24):
selftests/timers/posix_timers: Simplify error handling
selftests/timers/posix_timers: Add SIG_IGN test
selftests/timers/posix_timers: Validate signal rules
selftests/timers/posix-timers: Validate SIGEV_NONE
selftests/timers/posix-timers: Validate timer_gettime()
selftests/timers/posix-timers: Validate overrun after unblock
posix-cpu-timers: Split up posix_cpu_timer_get()
posix-cpu-timers: Save interval only for armed timers
posix-cpu-timers: Handle interval timers correctly in timer_get()
posix-cpu-timers: Handle SIGEV_NONE timers correctly in timer_get()
posix-cpu-timers: Handle SIGEV_NONE timers correctly in timer_set()
posix-cpu-timers: Replace old expiry retrieval in posix_cpu_timer_set()
posix-cpu-timers: Do not arm SIGEV_NONE timers
posix-cpu-timers: Use @now instead of @val for clarity
posix-cpu-timers: Remove incorrect comment in posix_cpu_timer_set()
posix-cpu-timers: Simplify posix_cpu_timer_set()
posix-timers: Retrieve interval in common timer_settime() code
posix-timers: Clear overrun in common_timer_set()
posix-timers: Convert timer list to hlist
posix-timers: Consolidate timer setup
posix-cpu-timers: Make k_itimer::it_active consistent
posix-timers: Consolidate signal queueing
signal: Remove task argument from dequeue_signal()
signal: Replace BUG_ON()s

fs/proc/base.c | 6 +-
fs/signalfd.c | 4 +-
include/linux/posix-timers.h | 2 +-
include/linux/sched/signal.h | 7 +-
init/init_task.c | 2 +-
kernel/fork.c | 2 +-
kernel/signal.c | 34 +-
kernel/time/alarmtimer.c | 7 +-
kernel/time/posix-cpu-timers.c | 207 ++++------
kernel/time/posix-timers.c | 69 ++--
kernel/time/posix-timers.h | 3 +-
tools/testing/selftests/timers/posix_timers.c | 550 +++++++++++++++++++++-----
12 files changed, 607 insertions(+), 286 deletions(-)