[PATCH 00/15] timers: Cleanup delay/sleep related mess

Anna-Maria Behnsen
2024-09-04T13:05:33Z

Hi,

a question about which sleeping function should be used in acpi_os_sleep()
started a discussion and examination about the existing documentation and
implementation of functions which insert a sleep/delay.

The result of the discussion was, that the documentation is outdated and
the implemented fsleep() reflects the outdated documentation but doesn't
help to reflect reality which in turns leads to the queue which covers the
following things:

- Minor changes (naming and typo fixes)

- Split out all timeout and sleep related functions from hrtimer.c and timer.c
into a separate file

- Update function descriptions of sleep related functions

- Change fsleep() to reflect reality

- Rework all comments or users which obviously rely on the outdated
documentation as they reference "Documentation/timers/timers-howto.rst"

- Last but not least (as there are no more references): Update the outdated
documentation and move it into a file with a self explaining file name

The queue is available here and applies on top of tip/timers/core:

git://git.kernel.org/pub/scm/linux/kernel/git/anna-maria/linux-devel.git timers/misc

Cc: linux-kernel@vger.kernel.org
Cc: Len Brown <len.brown@intel.com>
Cc: Rafael J. Wysocki <rafael@kernel.org>
To: Frederic Weisbecker <frederic@kernel.org>
To: Thomas Gleixner <tglx@linutronix.de>
To: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Anna-Maria Behnsen <anna-maria@linutronix.de>

Thanks,

Anna-Maria

---
Anna-Maria Behnsen (15):
timers: Rename next_expiry_recalc() to be unique
cpu: Use already existing usleep_range()
Comments: Fix wrong singular form of jiffies
timers: Move *sleep*() and timeout functions into a separate file
timers: Rename sleep_idle_range() to sleep_range_idle()
timers: Update function descriptions of sleep/delay related functions
timers: Adjust flseep() to reflect reality
mm/damon/core: Use generic upper bound recommondation for usleep_range()
timers: Add a warning to usleep_range_state() for wrong order of arguments
checkpatch: Remove broken sleep/delay related checks
regulator: core: Use fsleep() to get best sleep mechanism
iopoll/regmap/phy/snd: Fix comment referencing outdated timer documentation
powerpc/rtas: Use fsleep() to minimize additional sleep duration
media: anysee: Fix link to outdated sleep function documentation
timers/Documentation: Cleanup delay/sleep documentation

Documentation/admin-guide/media/vivid.rst | 2 +-
Documentation/dev-tools/checkpatch.rst | 6 -
Documentation/timers/delay_sleep_functions.rst | 122 +++++++
Documentation/timers/index.rst | 2 +-
Documentation/timers/timers-howto.rst | 115 -------
.../sp_SP/scheduler/sched-design-CFS.rst | 2 +-
MAINTAINERS | 2 +
arch/arm/mach-versatile/spc.c | 2 +-
arch/m68k/q40/q40ints.c | 2 +-
arch/powerpc/kernel/rtas.c | 21 +-
arch/x86/kernel/cpu/mce/dev-mcelog.c | 2 +-
drivers/char/ipmi/ipmi_ssif.c | 2 +-
drivers/dma-buf/st-dma-fence.c | 2 +-
drivers/gpu/drm/i915/gem/i915_gem_wait.c | 2 +-
drivers/gpu/drm/i915/gt/selftest_execlists.c | 4 +-
drivers/gpu/drm/i915/i915_utils.c | 2 +-
drivers/gpu/drm/v3d/v3d_bo.c | 2 +-
drivers/isdn/mISDN/dsp_cmx.c | 2 +-
drivers/media/usb/dvb-usb-v2/anysee.c | 6 +-
drivers/net/ethernet/marvell/mvmdio.c | 2 +-
drivers/regulator/core.c | 33 +-
fs/xfs/xfs_buf.h | 2 +-
include/asm-generic/delay.h | 46 ++-
include/linux/delay.h | 79 ++++-
include/linux/iopoll.h | 24 +-
include/linux/jiffies.h | 2 +-
include/linux/phy.h | 7 +-
include/linux/regmap.h | 18 +-
include/linux/timekeeper_internal.h | 2 +-
kernel/cpu.c | 2 +-
kernel/time/Makefile | 2 +-
kernel/time/alarmtimer.c | 2 +-
kernel/time/clockevents.c | 2 +-
kernel/time/hrtimer.c | 122 +------
kernel/time/posix-timers.c | 4 +-
kernel/time/sleep_timeout.c | 363 +++++++++++++++++++++
kernel/time/timer.c | 210 +-----------
lib/Kconfig.debug | 2 +-
mm/damon/core.c | 5 +-
net/batman-adv/types.h | 2 +-
scripts/checkpatch.pl | 38 ---
sound/soc/sof/ops.h | 6 +-
42 files changed, 668 insertions(+), 607 deletions(-)