Skip to content

OpenVMM/microVM umbrella: VM time and the time ABI #1183

Open
2 of 8 issues completed
Open

Description

Objective. The time ABI's downtime limit and command-line guard hold; its time samples meet their bound on NVX's hosts and runners; a restore keeps the guest's TSC, its LAPIC timer, and VM time consistent across the downtime; and VM time behaves correctly on every path that a microVM takes.

Children.

Issue Scope Blocked by
#1145 The time ABI's clock-token guard misses Linux's byte whitespace. —
#516 Extend the maximum snapshot downtime from 30 days to 365. #1164
#1371 After a restore, the guest's TSC leads VM time, which drives the emulated devices' timers, by the window from the restore anchor to the start of VM time. —
#1366 On KVM, a restored one-shot LAPIC timer that has expired fires once more, and a running one fires early by the time that KVM ran it outside the downtime. —
#1390 KVM_SET_LAPIC cannot tell an expired one-shot timer whose interrupt the guest took from one whose interrupt KVM has not injected, so it fires both again; an exact restore needs an opt-in KVM change. —
#1375 The restore's log line of phase durations panics if the host's monotonic clock steps back. —
#1309 On the WHP runner azure-windows-1, a cold boot's time sample exceeded the 100 µs bound, and a clone's repair failed with 195, so both guests powered off. —
#1317 The same cold-boot failure on azure-windows-4. —

Order. #516 is blocked by #1164 (the RTC's periodic catch-up). Restore advances VM time and the RTC by the downtime, and the RTC's periodic timer then catches up one period per iteration: about 21 billion iterations after 30 days at 8192 Hz. Bound that catch-up before allowing twelve times the downtime. No other child blocks another.

Notes.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions