realtek: mark clock source as continuous
authorSander Vanheule <sander@svanheule.net>
Mon, 31 Oct 2022 09:11:04 +0000 (10:11 +0100)
committerSander Vanheule <sander@svanheule.net>
Tue, 1 Nov 2022 08:13:11 +0000 (09:13 +0100)
commit75c576d4c4763785c665e3211b17868b3ed8e819
tree7b765acad5cb156abeb3f7dbed8dbdfe6cdd7583
parent3b936510720b04ec02b4e4a395aa39cdcfbc47d5
realtek: mark clock source as continuous

After replacing the R4K event timer and clock source with the new
Realtek Otto timer, performance for RTL839x devices was severely
impacted, as reported by Hiroshi.

Research by Markus showed that after commit 4657a5301eb5 ("realtek:
avoid busy waiting for RTL839x PHY read/write"), the ethernet driver
could only update a phy once per timer interval, which also heavily
impacted boot time. On e.g. a Zyxel GS1900-48, this added around a
minute to the time to fully initialise the switch.

By marking the otto clocksource as continuous, the kernel enables it to
be used for high resolution timers. This allows readx_poll_timeout() to
sleep for less than one system timer interval, reducing system dead
time.

Link: https://github.com/openwrt/openwrt/issues/11117
Reported-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Cc: Markus Stockhausen <markus.stockhausen@gmx.de>
Signed-off-by: Sander Vanheule <sander@svanheule.net>
Tested-by: INAGAKI Hiroshi <musashino.open@gmail.com> # Panasonic Switch-M48eG PN28480K
Tested-by: Jan Hoffmann <jan@3e8.eu> # HPE 1920-8G, HPE 1920-48G
target/linux/realtek/files-5.10/drivers/clocksource/timer-rtl-otto.c