[pve-devel] applied: [PATCH qemu-server v2] vm start: set higher timeout if using PCI passthrough
Thomas Lamprecht
t.lamprecht at proxmox.com
Fri Oct 6 18:13:17 CEST 2023
Am 06/10/2023 um 14:15 schrieb Friedrich Weber:
> 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 at proxmox.com>
> Signed-off-by: Friedrich Weber <f.weber at proxmox.com>
> ---
>
> Notes:
> changes since v1 (was called "vm start: set minimum timeout of 300s if
> using PCI passthrough", 20230503133723.165739-1-f.weber at proxmox.com):
> * Use a constant multiplier as suggested by Fiona (thx!)
>
> Another workaround is offered by an unapplied patch series [3] of bug
> 3502 [2] that makes it possible to set VM-specific timeouts (also in
> the GUI). Users could use this option to manually set a higher
> timeout for VMs that use PCI passthrough. However, it is not
> immediately obvious that a higher timeout is necessary when using
> PCI passthrough. Since the problem seems to come up somewhat
> frequently, I think it makes sense to have the heuristic choose a
> higher timeout by default.
yeah, I think so too.
>
> As discussed in v1, I'll also pick up the patch series to allow users
> to set custom timeouts [3], also to offer a workaround for cases where
> the new heuristic chooses a timeout that is still too short.
>
> [2]: https://bugzilla.proxmox.com/show_bug.cgi?id=3502
> [3]: https://lists.proxmox.com/pipermail/pve-devel/2023-January/055352.html
>
> PVE/QemuServer/Helpers.pm | 7 +++++++
> 1 file changed, 7 insertions(+)
>
>
applied, thanks!
More information about the pve-devel
mailing list