From 75c576d4c4763785c665e3211b17868b3ed8e819 Mon Sep 17 00:00:00 2001 From: Sander Vanheule Date: Mon, 31 Oct 2022 10:11:04 +0100 Subject: [PATCH] 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 Cc: Markus Stockhausen Signed-off-by: Sander Vanheule Tested-by: INAGAKI Hiroshi # Panasonic Switch-M48eG PN28480K Tested-by: Jan Hoffmann # HPE 1920-8G, HPE 1920-48G --- .../realtek/files-5.10/drivers/clocksource/timer-rtl-otto.c | 1 + 1 file changed, 1 insertion(+) diff --git a/target/linux/realtek/files-5.10/drivers/clocksource/timer-rtl-otto.c b/target/linux/realtek/files-5.10/drivers/clocksource/timer-rtl-otto.c index 12eed78653d..14e28e50f40 100644 --- a/target/linux/realtek/files-5.10/drivers/clocksource/timer-rtl-otto.c +++ b/target/linux/realtek/files-5.10/drivers/clocksource/timer-rtl-otto.c @@ -227,6 +227,7 @@ struct rttm_cs rttm_cs = { .name = "realtek_otto_timer", .rating = 400, .mask = CLOCKSOURCE_MASK(RTTM_BIT_COUNT), + .flags = CLOCK_SOURCE_IS_CONTINUOUS, .read = rttm_read_clocksource, .enable = rttm_enable_clocksource } -- 2.30.2