]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
qemu: Disable hpet for x86 VMs
authorDaanDeMeyer <daan.j.demeyer@gmail.com>
Thu, 17 Jul 2025 09:09:28 +0000 (11:09 +0200)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Thu, 17 Jul 2025 10:07:58 +0000 (12:07 +0200)
hpet is an emulated clocksource that is generally discouraged in favor
of kvm-clock or tsc for virtual machines. While mkosi's virtual machines
already use kvm-clock, leaving hpet enabled causes qemu on the host to
consume a non-trivial amount of cpu, so let's disable the hpet feature since
we're not making use of it anyway.

mkosi/config.py
mkosi/qemu.py

index f7cb8f8637443a8e6731ba10c68d50a906620d6b..16d613a40fbe467ee31f8b113a0755698aa80819 100644 (file)
@@ -554,6 +554,9 @@ class Architecture(StrEnum):
     def supports_smm(self) -> bool:
         return self.is_x86_variant()
 
+    def supports_hpet(self) -> bool:
+        return self.is_x86_variant()
+
     def can_kvm(self) -> bool:
         return self == Architecture.native() or (
             Architecture.native() == Architecture.x86_64 and self == Architecture.x86
index 85b11eec19ebd34d41eeb2d869d1383361ba1de9..a1377a16d13ce662ea826cbfb317772478a1cf85 100644 (file)
@@ -1214,6 +1214,8 @@ def run_qemu(args: Args, config: Config) -> None:
         machine += f",smm={'on' if firmware == Firmware.uefi_secure_boot else 'off'}"
     if shm:
         machine += ",memory-backend=mem"
+    if config.architecture.supports_hpet():
+        machine += ",hpet=off"
 
     cmdline: list[PathString] = []