[PATCH] powerpc: Fix flush_cache() speed regression

Tom Rini trini at konsulko.com
Sat Jul 15 17:03:49 CEST 2023


On Wed, Jul 05, 2023 at 04:51:37PM +0200, Christophe Leroy wrote:

> Flushing kernel image after decompression was taking 113 milliseconds
> with U-boot 2022.10. With U-boot 2023.01 and 2023.04, flushing
> the same amount of memory takes approx 1.5 seconds. With
> U-boot 2023.07-rc6, it takes 6.5 seconds.
> 
> powerpc flush_cache() function used to call WATCHDOG_RESET() after
> flushing every cacheline. At that time WATCHDOG_RESET() was light
> so the operation was almost seamless.
> 
> But commit 29caf9305b6 ("cyclic: Use schedule() instead of
> WATCHDOG_RESET()") replaced WATCHDOG_RESET() by schedule() and that
> started to hurt with U-boot 2022.10.
> 
> And in U-boot 2023.07-rc6 that's even worse after
> commit 26e8ebcd7cb ("watchdog: mpc8xxx: Make it generic").
> 
> In the meantime commit 729c1fe656 ("powerpc: introduce
> CONFIG_CACHE_FLUSH_WATCHDOG_THRESHOLD") gives us the opportinity to
> only call schedule() every given chunk of data instead of every
> cacheline. As explained in that commit there is no point in pinging
> the watchdog after every cacheline flush, so lets define a sensible
> default chunk size of 4k which matches to size of a page on most
> powerpc platforms.
> 
> With that new default threshold, the culprit flushing performed after
> kernel image decompression now takes 85 milliseconds on a powerpc 8xx.
> 
> Fixes: 29caf9305b6 ("cyclic: Use schedule() instead of WATCHDOG_RESET()")
> Signed-off-by: Christophe Leroy <christophe.leroy at csgroup.eu>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20230715/4287bba5/attachment.sig>


More information about the U-Boot mailing list