clocksource: arch_timer: Only use the virtual counter (CNTVCT) on arm64
Subsystems (2)
PATCH 1/1 clocksource: arch_timer: Only use the virtual counter (CNTVCT) on arm64
Commit 0b46b8a718c6 (clocksource: arch_timer: Fix code to use physical timers when requested) introduces the use of physical counters in the ARM architected timer driver. However, he arm64 kernel uses CNTVCT in VDSO. When booting in EL2, the kernel switches to the physical timers to make things easier for KVM but it continues to use the virtual counter both in user and kernel. While in such scenario CNTVCT == CNTPCT (since CNTVOFF is initialised by the kernel to 0), we want to spot firmware bugs corrupting CNTVOFF early (which would affect CNTVCT).
---
Daniel,
Do you plan to take this patch and push into mainline (ideally before -rc1)? Otherwise we can push it via the arm64 tree.
Thanks,
Catalin
drivers/clocksource/arm_arch_timer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/clocksource/arm_arch_timer.c +1 -1
@@ -462,7 +462,7 @@ static void __init arch_counter_register(unsigned type)/* Register the CP15 based counter if we have one */ if (type &ARCH_CP15_TIMER ) { -if (arch_timer_use_virtual) +if (IS_ENABLED (CONFIG_ARM64 ) || arch_timer_use_virtual) arch_timer_read_counter = arch_counter_get_cntvct;else arch_timer_read_counter = arch_counter_get_cntpct;
PATCH 1/1 clocksource: arch_timer: Only use the virtual counter (CNTVCT) on arm64
Quoted 12 lines · Catalin Marinas
Commit
0b46b8a718c6(clocksource:arch_timer: Fix code to use physical timers when requested) introduces the use of physical counters in the ARM architected timer driver. However, he arm64 kernel uses CNTVCT in VDSO. When booting in EL2, the kernel switches to the physical timers to make things easier for KVM but it continues to use the virtual counter both in user and kernel. While in such scenario CNTVCT == CNTPCT (since CNTVOFF is initialised by the kernel to 0), we want to spot firmware bugs corrupting CNTVOFF early (which would affect CNTVCT).Signed-off-by Catalin Marinas <[email protected]>Tested-by Yingjoe Chen <[email protected]>Cc Daniel Lezcano <[email protected]>
Quoted 6 lines
---
Daniel,
Do you plan to take this patch and push into mainline (ideally before -rc1)? Otherwise we can push it via the arm64 tree.
I will take care of it.
Thanks !
-- Daniel
Quoted 23 lines
Thanks,
Catalin
drivers/clocksource/arm_arch_timer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/clocksource/arm_arch_timer.c +1
-1@@ -462,7 +462,7 @@ static void __init arch_counter_register(unsigned type)/* Register the CP15 based counter if we have one */ if (type &ARCH_CP15_TIMER ) { -if (arch_timer_use_virtual) +if (IS_ENABLED (CONFIG_ARM64 ) || arch_timer_use_virtual) arch_timer_read_counter = arch_counter_get_cntvct;else arch_timer_read_counter = arch_counter_get_cntpct;
Signature · 5 lines
<http://www.linaro.org/> Linaro.org ? Open source software for ARM SoCs Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook | <http://twitter.com/#!/linaroorg> Twitter | <http://www.linaro.org/linaro-blog/> Blog
PATCH 1/1 clocksource: arch_timer: Only use the virtual counter (CNTVCT) on arm64
Quoted 15 lines · Daniel Lezcano
Quoted 14 lines · Catalin Marinas
Commit
0b46b8a718c6(clocksource:arch_timer: Fix code to use physical timers when requested) introduces the use of physical counters in the ARM architected timer driver. However, he arm64 kernel uses CNTVCT in VDSO. When booting in EL2, the kernel switches to the physical timers to make things easier for KVM but it continues to use the virtual counter both in user and kernel. While in such scenario CNTVCT == CNTPCT (since CNTVOFF is initialised by the kernel to 0), we want to spot firmware bugs corrupting CNTVOFF early (which would affect CNTVCT).Signed-off-by Catalin Marinas <[email protected]>Tested-by Yingjoe Chen <[email protected]>Cc Daniel Lezcano <[email protected]>---
Quoted 6 lines
Quoted 4 lines
Daniel,
Do you plan to take this patch and push into mainline (ideally before -rc1)? Otherwise we can push it via the arm64 tree.
I will take care of it.
Thanks.
Signature · 1 line
Catalin
Mark Rutland
maintainerPATCH 1/1 clocksource: arch_timer: Only use the virtual counter (CNTVCT) on arm64
In reply to Daniel LezcanoHi Daniel,
Quoted 17 lines · Daniel Lezcano
Quoted 16 lines · Catalin Marinas
Commit
0b46b8a718c6(clocksource:arch_timer: Fix code to use physical timers when requested) introduces the use of physical counters in the ARM architected timer driver. However, he arm64 kernel uses CNTVCT in VDSO. When booting in EL2, the kernel switches to the physical timers to make things easier for KVM but it continues to use the virtual counter both in user and kernel. While in such scenario CNTVCT == CNTPCT (since CNTVOFF is initialised by the kernel to 0), we want to spot firmware bugs corrupting CNTVOFF early (which would affect CNTVCT).Signed-off-by Catalin Marinas <[email protected]>Tested-by Yingjoe Chen <[email protected]>Cc Daniel Lezcano <[email protected]>---
Daniel,
Quoted 8 lines
Quoted 2 lines
Do you plan to take this patch and push into mainline (ideally before -rc1)? Otherwise we can push it via the arm64 tree.
I will take care of it.
Thanks !
-- Daniel
What's the state of this patch?
It doesn't seem to be in linux-next (next-20141215), which is failing to boot for me due to hitting the BUG in the arm64 arch_counter_get_cntpct.
Thanks,
Mark.
Quoted 38 lines
Quoted 24 lines
Thanks,
Catalin
drivers/clocksource/arm_arch_timer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/clocksource/arm_arch_timer.c +1
-1@@ -462,7 +462,7 @@ static void __init arch_counter_register(unsigned type)/* Register the CP15 based counter if we have one */ if (type &ARCH_CP15_TIMER ) { -if (arch_timer_use_virtual) +if (IS_ENABLED (CONFIG_ARM64 ) || arch_timer_use_virtual) arch_timer_read_counter = arch_counter_get_cntvct;else arch_timer_read_counter = arch_counter_get_cntpct;Signature · 11 lines
<http://www.linaro.org/> Linaro.org ? Open source software for ARM SoCs Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook | <http://twitter.com/#!/linaroorg> Twitter | <http://www.linaro.org/linaro-blog/> Blog _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel at lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
PATCH 1/1 clocksource: arch_timer: Only use the virtual counter (CNTVCT) on arm64
Hi Olof, Arnd,
Do you mind to apply this patch ?
I was about to take care of it but it depends on the commit:
Thanks
-- Daniel
Quoted 75 lines · Mark Rutland
Hi Daniel,
Quoted 17 lines · Daniel Lezcano
Quoted 16 lines · Catalin Marinas
Commit
0b46b8a718c6(clocksource:arch_timer: Fix code to use physical timers when requested) introduces the use of physical counters in the ARM architected timer driver. However, he arm64 kernel uses CNTVCT in VDSO. When booting in EL2, the kernel switches to the physical timers to make things easier for KVM but it continues to use the virtual counter both in user and kernel. While in such scenario CNTVCT == CNTPCT (since CNTVOFF is initialised by the kernel to 0), we want to spot firmware bugs corrupting CNTVOFF early (which would affect CNTVCT).Signed-off-by Catalin Marinas <[email protected]>Tested-by Yingjoe Chen <[email protected]>Cc Daniel Lezcano <[email protected]>---
Daniel,
Quoted 8 lines
Quoted 2 lines
Do you plan to take this patch and push into mainline (ideally before -rc1)? Otherwise we can push it via the arm64 tree.
I will take care of it.
Thanks !
-- Daniel
What's the state of this patch?
It doesn't seem to be in linux-next (next-20141215), which is failing to boot for me due to hitting the BUG in the arm64
arch_counter_get_cntpct.Thanks,
Mark.Quoted 38 lines
Quoted 16 lines
Thanks,
Catalin
drivers/clocksource/arm_arch_timer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/clocksource/arm_arch_timer.c +0
-0drivers/clocksource/arm_arch_timer.c static void __init arch_counter_register(unsigned type) · line 468
Quoted 8 lines
drivers/clocksource/arm_arch_timer.c +1
-1@@ -462,7 +462,7 @@ static void __init arch_counter_register(unsigned type)/* Register the CP15 based counter if we have one */ if (type &ARCH_CP15_TIMER ) { -if (arch_timer_use_virtual) +if (IS_ENABLED (CONFIG_ARM64 ) || arch_timer_use_virtual) arch_timer_read_counter = arch_counter_get_cntvct;else arch_timer_read_counter = arch_counter_get_cntpct;--
<http://www.linaro.org/> Linaro.org ? Open source software for ARM SoCsFollow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Signature · 5 lines
<http://www.linaro.org/> Linaro.org ? Open source software for ARM SoCs Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook | <http://twitter.com/#!/linaroorg> Twitter | <http://www.linaro.org/linaro-blog/> Blog