mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-05-16 04:09:37 +00:00
While we hoped to make the headings consistent over time while doing other edits, we should instead just make the squirrels happy and do them all at once or they'll likely never be made consistent. A python script was used to find the headings, and then a call to https://pypi.org/project/titlecase to transform the title. A visual inspection was used to tweak a few unexpected resulting titles. Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
68 lines
1.6 KiB
ReStructuredText
68 lines
1.6 KiB
ReStructuredText
.. _timer-hld:
|
|
|
|
Timer
|
|
#####
|
|
|
|
Because ACRN is a flexible, lightweight reference hypervisor, we provide
|
|
limited timer management services:
|
|
|
|
- Only the 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 is 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 sets 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
|
|
|
|
.. doxygenfunction:: timer_is_started
|
|
:project: Project ACRN
|
|
|
|
.. doxygenfunction:: udelay
|
|
:project: Project ACRN
|