* [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
* Re: [pve-devel] [PATCH qemu-server] vm start: set minimum timeout of 300s if using PCI passthrough
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
0 siblings, 1 reply; 4+ messages in thread
From: Fiona Ebner @ 2023-08-21 8:33 UTC (permalink / raw)
To: Proxmox VE development discussion, Friedrich Weber
Am 03.05.23 um 15:37 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, 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>
> ---
Would it make sense to instead add a constant multiplier to the memory
timeout heuristic in presence of PCI passthrough? The user says 65 GiB
takes about 3 min 30 s, so assuming it's more or less linear, the 5 min
from this patch would not be enough for more than ~130 GiB of memory.
>
> 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
Yes, I think having both the better heuristic and the configurable
timeout makes sense. Since Daniel left, do you want to have another look
at the series/pick it up?
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [pve-devel] [PATCH qemu-server] vm start: set minimum timeout of 300s if using PCI passthrough
2023-08-21 8:33 ` Fiona Ebner
@ 2023-09-08 11:40 ` Friedrich Weber
2023-09-11 7:03 ` Fiona Ebner
0 siblings, 1 reply; 4+ messages in thread
From: Friedrich Weber @ 2023-09-08 11:40 UTC (permalink / raw)
To: Fiona Ebner, Proxmox VE development discussion
On 21/08/2023 10:33, Fiona Ebner wrote:
> Would it make sense to instead add a constant multiplier to the memory
> timeout heuristic in presence of PCI passthrough? The user says 65 GiB
> takes about 3 min 30 s, so assuming it's more or less linear, the 5 min
> from this patch would not be enough for more than ~130 GiB of memory.
You're right, a heuristic makes more sense here than a constant
multiplier. I'll give it a try in the next version.
>> 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
>
> Yes, I think having both the better heuristic and the configurable
> timeout makes sense. Since Daniel left, do you want to have another look
> at the series/pick it up?
Sure! When I'm back from vacation, I'll send another version of this
patch series and also take a look at Daniel's old patch series. I'll
probably send them separately though, as they are somewhat independent.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [pve-devel] [PATCH qemu-server] vm start: set minimum timeout of 300s if using PCI passthrough
2023-09-08 11:40 ` Friedrich Weber
@ 2023-09-11 7:03 ` Fiona Ebner
0 siblings, 0 replies; 4+ messages in thread
From: Fiona Ebner @ 2023-09-11 7:03 UTC (permalink / raw)
To: Friedrich Weber, Proxmox VE development discussion
Am 08.09.23 um 13:40 schrieb Friedrich Weber:
> On 21/08/2023 10:33, Fiona Ebner wrote:
>> Would it make sense to instead add a constant multiplier to the memory
>> timeout heuristic in presence of PCI passthrough? The user says 65 GiB
>> takes about 3 min 30 s, so assuming it's more or less linear, the 5 min
>> from this patch would not be enough for more than ~130 GiB of memory.
>
> You're right, a heuristic makes more sense here than a constant
> multiplier. I'll give it a try in the next version.
>
I think a constant multiplier in combination with the current logic is
fine, just not a fixed constant overall ;)
^ 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