On 10/27/2015 02:02 PM, David Daney wrote:
On 10/27/2015 01:46 PM, Leonid Yegoshin wrote:
[...]
And finally. clock scaling - what we would do if there are two CPUs with
different clock ratios in system? It seems like common kernel timing
subsystem can handle that.
The code that executes in userspace must have access to a consistent
clock source. If you are running on a SMP system that doesn't have
synchronized CP0.Count registers, then your gettimeofday() cannot use
CP0.Count (RDHWR $2).
Right, I agree.
As far as I know, CP0.Count is the only available counter visible to
userspace, so you would have to disable the accelerated versions of
gettimeofday() where you cannot assert that the counters are always
synchronized.
Any system with GIC may have access to the same GIC global counter in a
special separate page available for mapping by user in RO mode and it
seems Alex did that.
Besides that this GIC global counter is used as a major system
clocksource in systems with GIC.
- Leonid