mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2026-08-05 02:19:16 +00:00
virtio-devices: Implement virtio-device rtc
This change will allow us to get accurate time over ptp in guests started from a MSHV-virtualized Linux host. Implementing it as a virtio device is preferable to using the existing kvm_ptp because: kvm_ptp relies on hypercalls that only exist on host kernels running kvm. Virtio-rtc gives us more flexibility in what clock types we want to provide. We can later extend the device to implement multiple clocks (smeared UTC, TAI, monotonic, etc.). Virtio-rtc protocol supports alarms. Alarms may later enable usecases where the guests can do their own VM lifecycle management without relying on a host-side orchestrator. Implement device backend for virtio-rtc. Currently this implementation encompasses: 1. CONFIG, CAP, READ, CROSSCAP (returns false) 2. One PTP clock is presented of type VIRTIO_RTC_CLOCK_UTC_MAYBE_SMEARED with leap_second_smearing VIRTIO_RTC_SMEAR_UNSPECIFIED The device is disabled by default, requiring --rtc to be passed Not implemented but theoretically supported by virtio-rtc is: 1. Cross-timestamping support 2. The alarm queue Fixes #7730 Signed-off-by: Cameron Baird <cameronbaird@microsoft.com>
This commit is contained in:
@@ -667,6 +667,8 @@ components:
|
||||
watchdog:
|
||||
type: boolean
|
||||
default: false
|
||||
rtc:
|
||||
$ref: "#/components/schemas/RtcConfig"
|
||||
pvpanic:
|
||||
type: boolean
|
||||
default: false
|
||||
@@ -1087,6 +1089,21 @@ components:
|
||||
src:
|
||||
type: string
|
||||
|
||||
RtcConfig:
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
pci_segment:
|
||||
type: integer
|
||||
format: int16
|
||||
pci_device_id:
|
||||
type: integer
|
||||
format: uint8
|
||||
iommu:
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
BalloonConfig:
|
||||
required:
|
||||
- size
|
||||
|
||||
Reference in New Issue
Block a user