public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH qemu-server] vm start: set minimum timeout of 300s if using PCI passthrough
@ 2023-05-03 13:37 Friedrich Weber
  2023-08-21  8:33 ` Fiona Ebner
  0 siblings, 1 reply; 4+ messages in thread
From: Friedrich Weber @ 2023-05-03 13:37 UTC (permalink / raw)
  To: pve-devel

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, ensure that the startup timeout is at least 300s
in case the VM config contains at least one `hostpci[n]` option.

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

Signed-off-by: Friedrich Weber <f.weber@proxmox.com>
---

Notes:
    An alternative 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. Since the
    problem seems to come up somewhat frequently, I think it makes sense
    to have the heuristic choose a higher timeout by default.
    
    [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 | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/PVE/QemuServer/Helpers.pm b/PVE/QemuServer/Helpers.pm
index e91f906..11897f4 100644
--- a/PVE/QemuServer/Helpers.pm
+++ b/PVE/QemuServer/Helpers.pm
@@ -160,6 +160,11 @@ sub config_aware_timeout {
 	$timeout = 150;
     }
 
+    # Users reported the default timeout being too short when using PCI passthrough
+    if (grep(/^hostpci[0-9]+$/, keys %$config) && $timeout < 300) {
+	$timeout = 300;
+    }
+
     return $timeout;
 }
 
-- 
2.30.2





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-09-11  7:03 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-03 13:37 [pve-devel] [PATCH qemu-server] vm start: set minimum timeout of 300s if using PCI passthrough Friedrich Weber
2023-08-21  8:33 ` Fiona Ebner
2023-09-08 11:40   ` Friedrich Weber
2023-09-11  7:03     ` Fiona Ebner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal