The Arm generic timers include support for timer virtualization. Generic timers provide a counter that measures (in real-time) the passing of time, and a timer for each CPU. The CPU timers are programmed to raise an interrupt to the CPU after a certain amount of time has passed, as per the counter.
Timers are likely to be used by both hypervisors and guest operating systems. However, to provide isolation and retain control, the timers used by the hypervisor cannot be directly configured and manipulated by guest operating systems. Refer to Timers and Counters for further details.