Frederic Weisbecker <frede...@kernel.org> writes: > Le Wed, Sep 11, 2024 at 07:13:39AM +0200, Anna-Maria Behnsen a écrit : >> When commit 38f7b7067dae ("powerpc/rtas: rtas_busy_delay() improvements") >> was introduced, documentation about proper usage of sleep realted functions > > related* > >> was outdated. >> >> The commit message references the usage of a HZ=100 system. When using a >> 20ms sleep duration on such a system and therefore using msleep(), the >> possible additional slack will be +10ms. >> >> When the system is configured with HZ=100 the granularity of a jiffy and of >> a bucket of the lowest timer wheel level is 10ms. To make sure a timer will >> not expire early (when queueing of the timer races with an concurrent >> update of jiffies), timers are always queued into the next bucket. This is >> the reason for the maximal possible slack of 10ms. >> >> fsleep() limits the maximal possible slack to 25% by making threshold >> between usleep_range() and msleep() HZ dependent. As soon as the accuracy >> of msleep() is sufficient, the less expensive timer list timer based >> sleeping function is used instead of the more expensive hrtimer based >> usleep_range() function. The udelay() will not be used in this specific >> usecase as the lowest sleep length is larger than 1 microsecond. > > Isn't udelay() for everything below 10us ?
It's larger than 1 millisecond... > >> >> Use fsleep() directly instead of using an own heuristic for the best >> sleeping mechanism to use.. >> >> Cc: Michael Ellerman <m...@ellerman.id.au> >> Cc: Nathan Lynch <nath...@linux.ibm.com> >> Cc: linuxppc-dev@lists.ozlabs.org >> Signed-off-by: Anna-Maria Behnsen <anna-ma...@linutronix.de> >> Acked-by: Michael Ellerman <m...@ellerman.id.au> (powerpc) > > Reviewed-by: Frederic Weisbecker <frede...@kernel.org>