mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-05-31 03:15:42 +00:00
Changing the folder structure will cause too many broken links for external references (from other sites). So, let's put the content back where it was before the reorg, and instead use the new persona-based navigation to point to documents in the original locations. Also, introduce redirects for some documents that no longer exits. Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
62 lines
1.5 KiB
ReStructuredText
62 lines
1.5 KiB
ReStructuredText
.. _timer-hld:
|
|
|
|
Timer
|
|
#####
|
|
|
|
Because ACRN is a flexible, lightweight reference hypervisor, we provide
|
|
limited timer management services:
|
|
|
|
- Only lapic tsc-deadline timer is supported as the clock source.
|
|
|
|
- A timer can only be added on the logical CPU for a process or thread. Timer
|
|
scheduling or timer migrating are not supported.
|
|
|
|
How it works
|
|
************
|
|
|
|
When the system boots, we check that the hardware supports lapic
|
|
tsc-deadline timer by checking CPUID.01H:ECX.TSC_Deadline[bit 24]. If
|
|
support is missing, we output an error message and panic the hypervisor.
|
|
If supported, we register the timer interrupt callback that raises a
|
|
timer softirq on each logical CPU and set the lapic timer mode to
|
|
tsc-deadline timer mode by writing the local APIC LVT register.
|
|
|
|
Data Structures and APIs
|
|
************************
|
|
|
|
Interfaces Design
|
|
=================
|
|
|
|
.. doxygenfunction:: initialize_timer
|
|
:project: Project ACRN
|
|
|
|
.. doxygenfunction:: timer_expired
|
|
:project: Project ACRN
|
|
|
|
.. doxygenfunction:: add_timer
|
|
:project: Project ACRN
|
|
|
|
.. doxygenfunction:: del_timer
|
|
:project: Project ACRN
|
|
|
|
.. doxygenfunction:: timer_init
|
|
:project: Project ACRN
|
|
|
|
.. doxygenfunction:: calibrate_tsc
|
|
:project: Project ACRN
|
|
|
|
.. doxygenfunction:: us_to_ticks
|
|
:project: Project ACRN
|
|
|
|
.. doxygenfunction:: ticks_to_us
|
|
:project: Project ACRN
|
|
|
|
.. doxygenfunction:: ticks_to_ms
|
|
:project: Project ACRN
|
|
|
|
.. doxygenfunction:: rdtsc
|
|
:project: Project ACRN
|
|
|
|
.. doxygenfunction:: get_tsc_khz
|
|
:project: Project ACRN
|