From: marc.zyngier@arm.com (Marc Zyngier)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 3/4] Add physical count arch timer support for clocksource in ARMv7.
Date: Fri, 13 Sep 2013 10:30:49 +0100 [thread overview]
Message-ID: <5232DB49.4050701@arm.com> (raw)
In-Reply-To: <CAK3cCBzr8_LTYarZDgPYZY7_-5Qco_Qw+ACi=c2uOrn7MqwkBg@mail.gmail.com>
On 13/09/13 09:49, cinifr wrote:
> On 13 September 2013 00:39, Marc Zyngier <marc.zyngier@arm.com> wrote:
>> On 12/09/13 17:07, cinifr wrote:
>>>> This cannot be a compile-time option as above in a multiplatform build.
>>>> Other paltforms (e.g. KVM guests) *must* use the virtual counters to get
>>>> any semblance of a consistent view of time.
>>> Yes I accept compile-time option is not perfect in my pre email,
>>> But,Why Ohter paltforms *must* use the virtual counters? I think KVM
>>> should not limit how to use arch timer in its guest OS. Of cause, if
>>> KVM guest use vct can be more efficiency then that use pct. but KVM
>>> should and must support guest OS to access pct.
>>
>> The virtual counter is there for a good reason: it allows a virtual
>> machine to:
>> - see its time starting at zero
>> - be migrated to another host without seeing time shifting one way or
>> another.
>>
>> So using the physical counter in a VM is a recipe for disaster if you're
>> doing any kind of time tracking. The counter being used for
>> sched_clock(), we cannot afford to see it being shifted one way or another.
> I accept that virtual count is better in VM than physical counter
> because hypversion can modify VM timer by set CNTVOFF. But I think
> hypversior should support that VM should can access physical counter,
> When VM use physical count. hypversior could trap accessing physical
> count from guest OS, and return a value that guest OS want liking
> hypervisor set CNTVOFF for virtual counter. On this way, VM could too
> see its timer at zero and VM could too be migrated to another host
> without seeing time shifting.
I urge you to read the ARM ARM, and specifically the section dedicated
to trapping access to CP15 operations. If you do, you'll quickly notice
that you *cannot* trap accesses to the timer subsystem.
All you can do is disable access to the physical timer/counter,
resulting in an UNDEF in the *guest*.
Additionally, please realise the overhead of trapping is enormous, and
that we do try very hard to minimise it. Why do you think we went out of
our way to ensure that host and guest would use different timers, always?
>> If you have issues with the use of the virtual counter, I suggest you
>> fix your firmware to have a consistent CNTVOFF across CPUs. And/or even
>> better, boot your kernel in HYP mode, as it will take care of setting
>> CNTVOFF to zero.
>>
> I am wondering what is the principle between kernel and bootload?
> What should be done in bootloader and what should be done in kernel?
> As you said, If kernel boot from hyp, Kernel can set CNTVOFF to zero
> directly, does we add the code to set CNTVOFF in kernel? But, if
> kernel boot from PL1 NS=0, Does kernel need to switch hyp mode to
> set CNTVOFF and return PL1 NS=0 mode? Or,kernel dont care it because
> kernel believe bootloader have set CNTVOFF before?
In an ideal world, the bootloader should set CNTVOFF to zero. The fact
that the kernel does it too when booted in HYP mode is to preserve
itself from from broken bootloaders.
CNTVOFF can only be setup from either HYP or Secure Monitor mode with
SCR.NS == 1, so if you run your kernel in secure mode, it is always best
to do it in the bootloader.
M.
--
Jazz is not dead. It just smells funny...
next prev parent reply other threads:[~2013-09-13 9:30 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-12 6:51 [PATCH 0/4] Add smp support for Allwinner A20 and phy arch count timer Fan Rong
2013-09-12 6:51 ` [PATCH 1/4] Add smp support for Allwinner A20(sunxi 7i) Fan Rong
2013-09-12 14:26 ` Mark Rutland
2013-09-12 15:53 ` cinifr
2013-09-12 14:40 ` Russell King - ARM Linux
2013-09-12 6:51 ` [PATCH 2/4] Add cpuconfig nodes in dts for smp configure Fan Rong
2013-09-14 11:50 ` Maxime Ripard
2013-09-12 6:51 ` [PATCH 3/4] Add physical count arch timer support for clocksource in ARMv7 Fan Rong
2013-09-12 11:24 ` Mark Rutland
2013-09-12 14:33 ` Russell King - ARM Linux
2013-09-12 16:09 ` cinifr
2013-09-12 15:39 ` [linux-sunxi] " Ian Campbell
2013-09-12 16:07 ` cinifr
2013-09-12 16:39 ` Marc Zyngier
2013-09-13 8:49 ` cinifr
2013-09-13 9:30 ` Marc Zyngier [this message]
2013-09-13 13:09 ` cinifr
2013-09-13 13:40 ` Marc Zyngier
2013-09-13 14:55 ` cinifr
2013-09-18 9:03 ` cinifr
2013-09-14 12:05 ` maxime.ripard at free-electrons.com
2013-09-16 8:16 ` Marc Zyngier
2013-09-12 6:51 ` [PATCH 4/4] Add arch count timer node in dts for Allwinner A20(sunxi 7i) Fan Rong
2013-09-12 14:57 ` Mark Rutland
2013-09-12 15:44 ` [linux-sunxi] " Ian Campbell
2013-09-12 16:23 ` cinifr
2013-09-12 19:53 ` Henrik Nordström
2013-09-12 14:39 ` [PATCH 0/4] Add smp support for Allwinner A20 and phy arch count timer Mark Rutland
2013-09-12 15:46 ` cinifr
2013-09-13 11:20 ` Mark Rutland
2013-09-13 13:23 ` cinifr
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5232DB49.4050701@arm.com \
--to=marc.zyngier@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).