* [PATCH v3 00/16] timers: Cleanup delay/sleep related mess
@ 2024-10-14 8:22 Anna-Maria Behnsen
2024-10-14 8:22 ` [PATCH v3 04/16] timers: Rename usleep_idle_range() to usleep_range_idle() Anna-Maria Behnsen
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Anna-Maria Behnsen @ 2024-10-14 8:22 UTC (permalink / raw)
To: Frederic Weisbecker, Thomas Gleixner, Jonathan Corbet
Cc: linux-kernel, Len Brown, Rafael J. Wysocki, rust-for-linux,
Alice Ryhl, FUJITA Tomonori, Andrew Lunn, Anna-Maria Behnsen,
Miguel Ojeda, Andrew Morton, damon, linux-mm, SeongJae Park,
Arnd Bergmann, linux-arch, Heiner Kallweit, David S. Miller,
Andy Whitcroft, Joe Perches, Dwaipayan Ray, Liam Girdwood,
Mark Brown, Jaroslav Kysela, Takashi Iwai, netdev, linux-sound,
Michael Ellerman, Nathan Lynch, linuxppc-dev,
Mauro Carvalho Chehab, linux-media, Sebastian Andrzej Siewior
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:
- 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"
- Update the outdated documentation and move it into a file with a self
explaining file name (as there are no more references)
- Remove checkpatch checks which also rely on the outdated documentation
The queue is available here:
git://git.kernel.org/pub/scm/linux/kernel/git/anna-maria/linux-devel.git timers/misc
Signed-off-by: Anna-Maria Behnsen <anna-maria@linutronix.de>
---
Changes in v3:
- Add review remarks
- Split checkpatch patch: 1. Remove links to outdated documentation,
2. Remove checks in checkpatch which rely on outdated documentation
- Link to v2: https://lore.kernel.org/r/20240911-devel-anna-maria-b4-timers-flseep-v2-0-b0d3f33ccfe0@linutronix.de
Changes in v2:
- change udelay() and ndelay() as suggested by Thomas
- Update some formatting in the new sleep_timeout.c file
- minor typo changes and other small review remarks
Thanks,
Anna-Maria
---
Anna-Maria Behnsen (16):
MAINTAINERS: Add missing file include/linux/delay.h
timers: Move *sleep*() and timeout functions into a separate file
timers: Update schedule_[hr]timeout*() related function descriptions
timers: Rename usleep_idle_range() to usleep_range_idle()
timers: Update function descriptions of sleep/delay related functions
delay: Rework udelay and ndelay
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 links to outdated documentation
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 and remove outdated comment
timers/Documentation: Cleanup delay/sleep documentation
checkpatch: Remove broken sleep/delay related checks
Documentation/dev-tools/checkpatch.rst | 6 -
Documentation/timers/delay_sleep_functions.rst | 121 ++++++++
Documentation/timers/index.rst | 2 +-
Documentation/timers/timers-howto.rst | 115 --------
MAINTAINERS | 2 +
arch/powerpc/kernel/rtas.c | 21 +-
drivers/media/usb/dvb-usb-v2/anysee.c | 17 +-
drivers/regulator/core.c | 47 +--
include/asm-generic/delay.h | 96 +++++--
include/linux/delay.h | 79 ++++--
include/linux/iopoll.h | 52 ++--
include/linux/phy.h | 9 +-
include/linux/regmap.h | 38 +--
kernel/time/Makefile | 2 +-
kernel/time/hrtimer.c | 120 --------
kernel/time/sleep_timeout.c | 377 +++++++++++++++++++++++++
kernel/time/timer.c | 192 -------------
mm/damon/core.c | 5 +-
scripts/checkpatch.pl | 38 ---
sound/soc/sof/ops.h | 8 +-
20 files changed, 704 insertions(+), 643 deletions(-)
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v3 04/16] timers: Rename usleep_idle_range() to usleep_range_idle()
2024-10-14 8:22 [PATCH v3 00/16] timers: Cleanup delay/sleep related mess Anna-Maria Behnsen
@ 2024-10-14 8:22 ` Anna-Maria Behnsen
2024-10-14 8:22 ` [PATCH v3 08/16] mm/damon/core: Use generic upper bound recommondation for usleep_range() Anna-Maria Behnsen
2024-10-14 16:22 ` (subset) [PATCH v3 00/16] timers: Cleanup delay/sleep related mess Mark Brown
2 siblings, 0 replies; 7+ messages in thread
From: Anna-Maria Behnsen @ 2024-10-14 8:22 UTC (permalink / raw)
To: Frederic Weisbecker, Thomas Gleixner, Jonathan Corbet
Cc: linux-kernel, Len Brown, Rafael J. Wysocki, rust-for-linux,
Alice Ryhl, FUJITA Tomonori, Andrew Lunn, Anna-Maria Behnsen,
Miguel Ojeda, Andrew Morton, damon, linux-mm, SeongJae Park
usleep_idle_range() is a variant of usleep_range(). Both are using
usleep_range_state() as a base. To be able to find all the related
functions in one go, rename it usleep_idle_range() to usleep_range_idle().
No functional change.
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: damon@lists.linux.dev
Cc: linux-mm@kvack.org
Signed-off-by: Anna-Maria Behnsen <anna-maria@linutronix.de>
Reviewed-by: Frederic Weisbecker <frederic@kernel.org>
Reviewed-by: SeongJae Park <sj@kernel.org>
---
v2: Fix typos in commit message
---
include/linux/delay.h | 2 +-
mm/damon/core.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/linux/delay.h b/include/linux/delay.h
index ff9cda975e30..2bc586aa2068 100644
--- a/include/linux/delay.h
+++ b/include/linux/delay.h
@@ -68,7 +68,7 @@ static inline void usleep_range(unsigned long min, unsigned long max)
usleep_range_state(min, max, TASK_UNINTERRUPTIBLE);
}
-static inline void usleep_idle_range(unsigned long min, unsigned long max)
+static inline void usleep_range_idle(unsigned long min, unsigned long max)
{
usleep_range_state(min, max, TASK_IDLE);
}
diff --git a/mm/damon/core.c b/mm/damon/core.c
index a83f3b736d51..c725c78b43f0 100644
--- a/mm/damon/core.c
+++ b/mm/damon/core.c
@@ -1896,7 +1896,7 @@ static void kdamond_usleep(unsigned long usecs)
if (usecs > 20 * USEC_PER_MSEC)
schedule_timeout_idle(usecs_to_jiffies(usecs));
else
- usleep_idle_range(usecs, usecs + 1);
+ usleep_range_idle(usecs, usecs + 1);
}
/* Returns negative error code if it's not activated but should return */
--
2.39.5
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v3 08/16] mm/damon/core: Use generic upper bound recommondation for usleep_range()
2024-10-14 8:22 [PATCH v3 00/16] timers: Cleanup delay/sleep related mess Anna-Maria Behnsen
2024-10-14 8:22 ` [PATCH v3 04/16] timers: Rename usleep_idle_range() to usleep_range_idle() Anna-Maria Behnsen
@ 2024-10-14 8:22 ` Anna-Maria Behnsen
2024-10-14 16:22 ` (subset) [PATCH v3 00/16] timers: Cleanup delay/sleep related mess Mark Brown
2 siblings, 0 replies; 7+ messages in thread
From: Anna-Maria Behnsen @ 2024-10-14 8:22 UTC (permalink / raw)
To: Frederic Weisbecker, Thomas Gleixner, Jonathan Corbet
Cc: linux-kernel, Len Brown, Rafael J. Wysocki, rust-for-linux,
Alice Ryhl, FUJITA Tomonori, Andrew Lunn, Anna-Maria Behnsen,
Miguel Ojeda, SeongJae Park, Andrew Morton, damon, linux-mm
The upper bound for usleep_range_idle() was taken from the outdated
documentation. As a recommondation for the upper bound of usleep_range()
depends on HZ configuration it is not possible to hard code it.
Use the define "USLEEP_RANGE_UPPER_BOUND" instead.
Cc: SeongJae Park <sj@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: damon@lists.linux.dev
Cc: linux-mm@kvack.org
Signed-off-by: Anna-Maria Behnsen <anna-maria@linutronix.de>
Reviewed-by: SeongJae Park <sj@kernel.org>
Reviewed-by: Frederic Weisbecker <frederic@kernel.org>
---
mm/damon/core.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/mm/damon/core.c b/mm/damon/core.c
index c725c78b43f0..79efd8089d6c 100644
--- a/mm/damon/core.c
+++ b/mm/damon/core.c
@@ -1892,8 +1892,7 @@ static unsigned long damos_wmark_wait_us(struct damos *scheme)
static void kdamond_usleep(unsigned long usecs)
{
- /* See Documentation/timers/timers-howto.rst for the thresholds */
- if (usecs > 20 * USEC_PER_MSEC)
+ if (usecs >= USLEEP_RANGE_UPPER_BOUND)
schedule_timeout_idle(usecs_to_jiffies(usecs));
else
usleep_range_idle(usecs, usecs + 1);
--
2.39.5
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: (subset) [PATCH v3 00/16] timers: Cleanup delay/sleep related mess
2024-10-14 8:22 [PATCH v3 00/16] timers: Cleanup delay/sleep related mess Anna-Maria Behnsen
2024-10-14 8:22 ` [PATCH v3 04/16] timers: Rename usleep_idle_range() to usleep_range_idle() Anna-Maria Behnsen
2024-10-14 8:22 ` [PATCH v3 08/16] mm/damon/core: Use generic upper bound recommondation for usleep_range() Anna-Maria Behnsen
@ 2024-10-14 16:22 ` Mark Brown
2024-10-18 8:06 ` Anna-Maria Behnsen
2 siblings, 1 reply; 7+ messages in thread
From: Mark Brown @ 2024-10-14 16:22 UTC (permalink / raw)
To: Frederic Weisbecker, Thomas Gleixner, Jonathan Corbet,
Anna-Maria Behnsen
Cc: linux-kernel, Len Brown, Rafael J. Wysocki, rust-for-linux,
Alice Ryhl, FUJITA Tomonori, Andrew Lunn, Miguel Ojeda,
Andrew Morton, damon, linux-mm, SeongJae Park, Arnd Bergmann,
linux-arch, Heiner Kallweit, David S. Miller, Andy Whitcroft,
Joe Perches, Dwaipayan Ray, Liam Girdwood, Jaroslav Kysela,
Takashi Iwai, netdev, linux-sound, Michael Ellerman,
Nathan Lynch, linuxppc-dev, Mauro Carvalho Chehab, linux-media,
Sebastian Andrzej Siewior
On Mon, 14 Oct 2024 10:22:17 +0200, Anna-Maria Behnsen wrote:
> 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:
>
> [...]
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git for-next
Thanks!
[11/16] regulator: core: Use fsleep() to get best sleep mechanism
commit: f20669fbcf99d0e15e94fb50929bb1c41618e197
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: (subset) [PATCH v3 00/16] timers: Cleanup delay/sleep related mess
2024-10-14 16:22 ` (subset) [PATCH v3 00/16] timers: Cleanup delay/sleep related mess Mark Brown
@ 2024-10-18 8:06 ` Anna-Maria Behnsen
2024-10-18 18:57 ` Mark Brown
2024-10-18 18:58 ` Mark Brown
0 siblings, 2 replies; 7+ messages in thread
From: Anna-Maria Behnsen @ 2024-10-18 8:06 UTC (permalink / raw)
To: Mark Brown, Frederic Weisbecker, Thomas Gleixner, Jonathan Corbet
Cc: linux-kernel, Len Brown, Rafael J. Wysocki, rust-for-linux,
Alice Ryhl, FUJITA Tomonori, Andrew Lunn, Miguel Ojeda,
Andrew Morton, damon, linux-mm, SeongJae Park, Arnd Bergmann,
linux-arch, Heiner Kallweit, David S. Miller, Andy Whitcroft,
Joe Perches, Dwaipayan Ray, Liam Girdwood, Jaroslav Kysela,
Takashi Iwai, netdev, linux-sound, Michael Ellerman,
Nathan Lynch, linuxppc-dev, Mauro Carvalho Chehab, linux-media,
Sebastian Andrzej Siewior
Hi Mark,
Mark Brown <broonie@kernel.org> writes:
> On Mon, 14 Oct 2024 10:22:17 +0200, Anna-Maria Behnsen wrote:
>> 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:
>>
>> [...]
>
> Applied to
>
> https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git for-next
>
Would it be ok for you, if the patch is routed through tip tree? kernel
test robot triggers a warning for htmldoc that there is a reference to
the no longer existing file 'timer-howto.rst':
https://lore.kernel.org/r/202410161059.a0f6IBwj-lkp@intel.com
Thanks,
Anna-Maria
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: (subset) [PATCH v3 00/16] timers: Cleanup delay/sleep related mess
2024-10-18 8:06 ` Anna-Maria Behnsen
@ 2024-10-18 18:57 ` Mark Brown
2024-10-18 18:58 ` Mark Brown
1 sibling, 0 replies; 7+ messages in thread
From: Mark Brown @ 2024-10-18 18:57 UTC (permalink / raw)
To: Anna-Maria Behnsen
Cc: Frederic Weisbecker, Thomas Gleixner, Jonathan Corbet,
linux-kernel, Len Brown, Rafael J. Wysocki, rust-for-linux,
Alice Ryhl, FUJITA Tomonori, Andrew Lunn, Miguel Ojeda,
Andrew Morton, damon, linux-mm, SeongJae Park, Arnd Bergmann,
linux-arch, Heiner Kallweit, David S. Miller, Andy Whitcroft,
Joe Perches, Dwaipayan Ray, Liam Girdwood, Jaroslav Kysela,
Takashi Iwai, netdev, linux-sound, Michael Ellerman,
Nathan Lynch, linuxppc-dev, Mauro Carvalho Chehab, linux-media,
Sebastian Andrzej Siewior
[-- Attachment #1: Type: text/plain, Size: 421 bytes --]
On Fri, Oct 18, 2024 at 10:06:33AM +0200, Anna-Maria Behnsen wrote:
> Would it be ok for you, if the patch is routed through tip tree? kernel
> test robot triggers a warning for htmldoc that there is a reference to
> the no longer existing file 'timer-howto.rst':
> https://lore.kernel.org/r/202410161059.a0f6IBwj-lkp@intel.com
It should be fine, worst case we just get a duplicate patch which
doesn't super matter.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: (subset) [PATCH v3 00/16] timers: Cleanup delay/sleep related mess
2024-10-18 8:06 ` Anna-Maria Behnsen
2024-10-18 18:57 ` Mark Brown
@ 2024-10-18 18:58 ` Mark Brown
1 sibling, 0 replies; 7+ messages in thread
From: Mark Brown @ 2024-10-18 18:58 UTC (permalink / raw)
To: Anna-Maria Behnsen
Cc: Frederic Weisbecker, Thomas Gleixner, Jonathan Corbet,
linux-kernel, Len Brown, Rafael J. Wysocki, rust-for-linux,
Alice Ryhl, FUJITA Tomonori, Andrew Lunn, Miguel Ojeda,
Andrew Morton, damon, linux-mm, SeongJae Park, Arnd Bergmann,
linux-arch, Heiner Kallweit, David S. Miller, Andy Whitcroft,
Joe Perches, Dwaipayan Ray, Liam Girdwood, Jaroslav Kysela,
Takashi Iwai, netdev, linux-sound, Michael Ellerman,
Nathan Lynch, linuxppc-dev, Mauro Carvalho Chehab, linux-media,
Sebastian Andrzej Siewior
[-- Attachment #1: Type: text/plain, Size: 397 bytes --]
On Fri, Oct 18, 2024 at 10:06:33AM +0200, Anna-Maria Behnsen wrote:
> Would it be ok for you, if the patch is routed through tip tree? kernel
> test robot triggers a warning for htmldoc that there is a reference to
> the no longer existing file 'timer-howto.rst':
> https://lore.kernel.org/r/202410161059.a0f6IBwj-lkp@intel.com
Oh, and for that:
Reviewed-by: Mark Brown <broonie@kernel.org>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2024-10-18 18:58 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-10-14 8:22 [PATCH v3 00/16] timers: Cleanup delay/sleep related mess Anna-Maria Behnsen
2024-10-14 8:22 ` [PATCH v3 04/16] timers: Rename usleep_idle_range() to usleep_range_idle() Anna-Maria Behnsen
2024-10-14 8:22 ` [PATCH v3 08/16] mm/damon/core: Use generic upper bound recommondation for usleep_range() Anna-Maria Behnsen
2024-10-14 16:22 ` (subset) [PATCH v3 00/16] timers: Cleanup delay/sleep related mess Mark Brown
2024-10-18 8:06 ` Anna-Maria Behnsen
2024-10-18 18:57 ` Mark Brown
2024-10-18 18:58 ` Mark Brown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox