]> git.proxmox.com Git - qemu-server.git/commit
vm start: set higher timeout if using PCI passthrough
authorFriedrich Weber <f.weber@proxmox.com>
Fri, 6 Oct 2023 12:15:33 +0000 (14:15 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Fri, 22 Mar 2024 10:25:11 +0000 (11:25 +0100)
commit2e6ea194efb67fa66b32166b2102817ace990426
tree7b2eb8ac3259b9ecbe4f8518657972c7de492cf3
parent6d376bee9f9afe14d06724e54f712eb869d3f98e
vm start: set higher timeout if using PCI passthrough

The default VM startup timeout is `max(30, VM memory in GiB)` seconds.
Multiple reports in the forum [0] [1] and the bug tracker [2] suggest
this is too short when using PCI passthrough with a large amount of VM
memory, since QEMU needs to map the whole memory during startup (see
comment #2 in [2]). As a result, VM startup fails with "got timeout".

To work around this, set a larger default timeout if at least one PCI
device is passed through. The question remains how to choose an
appropriate timeout. Users reported the following startup times:

ref | RAM | time  | ratio (s/GiB)
---------------------------------
[1] | 60G |  135s |  2.25
[1] | 70G |  157s |  2.24
[1] | 80G |  277s |  3.46
[2] | 65G |  213s |  3.28
[2] | 96G | >290s | >3.02

The data does not really indicate any simple (e.g. linear)
relationship between RAM and startup time (even data from the same
source). However, to keep the heuristic simple, assume linear growth
and multiply the default timeout by 4 if at least one `hostpci[n]`
option is present, obtaining `4 * max(30, VM memory in GiB)`. This
covers all cases above, and should still leave some headroom.

[0]: https://forum.proxmox.com/threads/83765/post-552071
[1]: https://forum.proxmox.com/threads/126398/post-592826
[2]: https://bugzilla.proxmox.com/show_bug.cgi?id=3502

Suggested-by: Fiona Ebner <f.ebner@proxmox.com>
Signed-off-by: Friedrich Weber <f.weber@proxmox.com>
(cherry picked from commit 95f1de689e3c898382f8fcc721b024718a0c910a)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
PVE/QemuServer/Helpers.pm