[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