* [PATCH] clocksource: arch_timer: Only use the virtual counter (CNTVCT) on arm64
@ 2014-12-10 11:02 Catalin Marinas
2014-12-10 11:04 ` Daniel Lezcano
0 siblings, 1 reply; 5+ messages in thread
From: Catalin Marinas @ 2014-12-10 11:02 UTC (permalink / raw)
To: linux-arm-kernel
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 <catalin.marinas@arm.com>
Tested-by: Yingjoe Chen <yingjoe.chen@mediatek.com>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
---
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(-)
diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c
index 6a79fc4f900c..095c1774592c 100644
--- a/drivers/clocksource/arm_arch_timer.c
+++ b/drivers/clocksource/arm_arch_timer.c
@@ -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;
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH] clocksource: arch_timer: Only use the virtual counter (CNTVCT) on arm64
2014-12-10 11:02 [PATCH] clocksource: arch_timer: Only use the virtual counter (CNTVCT) on arm64 Catalin Marinas
@ 2014-12-10 11:04 ` Daniel Lezcano
2014-12-10 11:23 ` Catalin Marinas
2014-12-15 10:58 ` Mark Rutland
0 siblings, 2 replies; 5+ messages in thread
From: Daniel Lezcano @ 2014-12-10 11:04 UTC (permalink / raw)
To: linux-arm-kernel
On 12/10/2014 12:02 PM, Catalin Marinas wrote:
> 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 <catalin.marinas@arm.com>
> Tested-by: Yingjoe Chen <yingjoe.chen@mediatek.com>
> Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
> ---
>
> 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
>
> Thanks,
>
> Catalin
>
>
> drivers/clocksource/arm_arch_timer.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c
> index 6a79fc4f900c..095c1774592c 100644
> --- a/drivers/clocksource/arm_arch_timer.c
> +++ b/drivers/clocksource/arm_arch_timer.c
> @@ -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 SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] clocksource: arch_timer: Only use the virtual counter (CNTVCT) on arm64
2014-12-10 11:04 ` Daniel Lezcano
@ 2014-12-10 11:23 ` Catalin Marinas
2014-12-15 10:58 ` Mark Rutland
1 sibling, 0 replies; 5+ messages in thread
From: Catalin Marinas @ 2014-12-10 11:23 UTC (permalink / raw)
To: linux-arm-kernel
On Wed, Dec 10, 2014 at 11:04:38AM +0000, Daniel Lezcano wrote:
> On 12/10/2014 12:02 PM, Catalin Marinas wrote:
> > 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 <catalin.marinas@arm.com>
> > Tested-by: Yingjoe Chen <yingjoe.chen@mediatek.com>
> > Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
> > ---
> >
> > 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.
--
Catalin
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] clocksource: arch_timer: Only use the virtual counter (CNTVCT) on arm64
2014-12-10 11:04 ` Daniel Lezcano
2014-12-10 11:23 ` Catalin Marinas
@ 2014-12-15 10:58 ` Mark Rutland
2014-12-15 13:27 ` Daniel Lezcano
1 sibling, 1 reply; 5+ messages in thread
From: Mark Rutland @ 2014-12-15 10:58 UTC (permalink / raw)
To: linux-arm-kernel
Hi Daniel,
On Wed, Dec 10, 2014 at 11:04:38AM +0000, Daniel Lezcano wrote:
> On 12/10/2014 12:02 PM, Catalin Marinas wrote:
> > 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 <catalin.marinas@arm.com>
> > Tested-by: Yingjoe Chen <yingjoe.chen@mediatek.com>
> > Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
> > ---
> >
> > 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
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.
>
> >
> > Thanks,
> >
> > Catalin
> >
> >
> > drivers/clocksource/arm_arch_timer.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c
> > index 6a79fc4f900c..095c1774592c 100644
> > --- a/drivers/clocksource/arm_arch_timer.c
> > +++ b/drivers/clocksource/arm_arch_timer.c
> > @@ -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 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
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] clocksource: arch_timer: Only use the virtual counter (CNTVCT) on arm64
2014-12-15 10:58 ` Mark Rutland
@ 2014-12-15 13:27 ` Daniel Lezcano
0 siblings, 0 replies; 5+ messages in thread
From: Daniel Lezcano @ 2014-12-15 13:27 UTC (permalink / raw)
To: linux-arm-kernel
Hi Olof, Arnd,
Do you mind to apply this patch ?
I was about to take care of it but it depends on the commit:
https://git.kernel.org/cgit/linux/kernel/git/arm/arm-soc.git/commit/drivers/clocksource?h=for-next&id=0b46b8a718c6e90910a1b1b0fe797be3c167e186
Thanks
-- Daniel
On 12/15/2014 11:58 AM, Mark Rutland wrote:
> Hi Daniel,
>
> On Wed, Dec 10, 2014 at 11:04:38AM +0000, Daniel Lezcano wrote:
>> On 12/10/2014 12:02 PM, Catalin Marinas wrote:
>>> 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 <catalin.marinas@arm.com>
>>> Tested-by: Yingjoe Chen <yingjoe.chen@mediatek.com>
>>> Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
>>> ---
>>>
>>> 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
>
> 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.
>
>>
>>>
>>> Thanks,
>>>
>>> Catalin
>>>
>>>
>>> drivers/clocksource/arm_arch_timer.c | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c
>>> index 6a79fc4f900c..095c1774592c 100644
>>> --- a/drivers/clocksource/arm_arch_timer.c
>>> +++ b/drivers/clocksource/arm_arch_timer.c
>>> @@ -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 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
--
<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
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-12-15 13:27 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-12-10 11:02 [PATCH] clocksource: arch_timer: Only use the virtual counter (CNTVCT) on arm64 Catalin Marinas
2014-12-10 11:04 ` Daniel Lezcano
2014-12-10 11:23 ` Catalin Marinas
2014-12-15 10:58 ` Mark Rutland
2014-12-15 13:27 ` Daniel Lezcano
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).