[pve-devel] [PATCH qemu-server/docs v3] disable S3/S4 power states by default
Stoiko Ivanov
s.ivanov at proxmox.com
Fri Apr 4 17:56:35 CEST 2025
Thanks for the patches!
Gave the series a spin on my machine, and compared:
* ps auxwf output (with various combinations of
pc-q35-9.2+pve1,enable-s4=1,enable-s3=1 for a linux guest)
* running with pc-q35-9.2 vs pc-q35-92+pve1 for a linux guest
* comparing /sys/power/(state|mem_sleep|disk) (the last 2 seemed like a
way to see S3/S4 support [0]
* running with pc-q35-9.2 vs pc-q35-92+pve1 for a Windows guest and
comparing powercfg /a output
Looked through the diff of the patches and skimmed the discussions for
RFC, v1, v2.
Some small suggestions for the docs-patch (which can be followed-up, if
they are sensible imho) I'll send as reply to the patch.
with and without those addressed for the series:
Reviewed-by: Stoiko Ivanov <s.ivanov at proxmox.com>
Tested-By: Stoiko Ivanov <s.ivanov at proxmox.com>
[0] https://www.kernel.org/doc/Documentation/power/states.txt
[1]
https://learn.microsoft.com/en-us/windows-hardware/drivers/kernel/system-sleeping-states
On Fri, 4 Apr 2025 14:53:36 +0200
Dominik Csapak <d.csapak at proxmox.com> wrote:
> since they make some problems (e.g. windows hybrid shutdown is enabled
> by default then -> which makes vGPU problem). Libvirt/virsh also
> disables that by default (and tries preventing enabling it.)
>
> This series introduces a new pve1 version for 9.2 machine versions, and
> pins new windows guests to that. (ignore the edge case for non-version
> pinned machine types on windows, so they'll get always +pve0).
>
> Additionally I introduce 'enable-s{3,4}' settings so that users can
> still manually enable that (in case it's needed), or disable it for
> older machine types. (non hotpluggable).
>
> I deliberately did not introduce a GUI option for the enabling of
> S3/S4 power states, since I don't think it'll come up often.
> (If it does, we can still add something to the UI)
>
> changes from v2:
> * style nits fixed (too long lines, etc)
> * added now missing changes for SEV tests
> * add some more info to docs + machine descriptions
>
> changes from v1:
> * dropped the RFC for pinning qemu version in tests
> (was not really related and we can still tackle that when we actually
> encounter it, e.g. with qemu 10.0)
> * dropped the saving of the pve machine version in the meta info
> (just ignore that case and assign pve0)
> * remove globalFlags instead of fixing it's use (there was only
> one user anyway)
> * move pveX pinning logic into windows_get_pinned_machine_version
> * add pveX versiosn to qemu/machine capabilities api call
> * add general description for pveX machine versions
> * add docs patch to explain +pveX versions
>
> qemu-server:
>
> Dominik Csapak (8):
> tests: cfg2cmd: add test for windows machine pinning from meta info
> config to command: get rid of globalFlags
> machine: correctly select pve machine version for non pinned windows
> guests
> machine: incorporate pve machine version when pinning windows guests
> machine: add S3/S4 power state properties
> machine: bump pve machine version and reverse the s3/s4 defaults
> api: qemu machine capabilities: add custom pveX versions too
> api: qemu machine capabilities: add description for pveX variants
>
> PVE/API2/Qemu/Machine.pm | 37 +++++++++-
> PVE/QemuServer.pm | 8 ++-
> PVE/QemuServer/Machine.pm | 72 +++++++++++++++++--
> test/cfg2cmd/bootorder-empty.conf.cmd | 4 +-
> test/cfg2cmd/bootorder-legacy.conf.cmd | 4 +-
> test/cfg2cmd/bootorder.conf.cmd | 4 +-
> ...putype-icelake-client-deprecation.conf.cmd | 4 +-
> .../custom-cpu-model-defaults.conf.cmd | 4 +-
> .../custom-cpu-model-host-phys-bits.conf.cmd | 4 +-
> test/cfg2cmd/custom-cpu-model.conf.cmd | 4 +-
> test/cfg2cmd/efi-raw-template.conf.cmd | 4 +-
> test/cfg2cmd/efi-raw.conf.cmd | 4 +-
> test/cfg2cmd/efi-secboot-and-tpm-q35.conf.cmd | 4 +-
> test/cfg2cmd/efi-secboot-and-tpm.conf.cmd | 4 +-
> test/cfg2cmd/efidisk-on-rbd.conf.cmd | 4 +-
> test/cfg2cmd/i440fx-viommu-virtio.conf.cmd | 4 +-
> test/cfg2cmd/i440fx-win10-hostpci.conf.cmd | 4 +-
> test/cfg2cmd/ide.conf.cmd | 4 +-
> .../cfg2cmd/memory-hotplug-hugepages.conf.cmd | 4 +-
> test/cfg2cmd/memory-hotplug.conf.cmd | 4 +-
> test/cfg2cmd/memory-hugepages-1g.conf.cmd | 4 +-
> test/cfg2cmd/memory-hugepages-2m.conf.cmd | 4 +-
> test/cfg2cmd/minimal-defaults.conf.cmd | 4 +-
> test/cfg2cmd/netdev-7.1-multiqueues.conf.cmd | 4 +-
> test/cfg2cmd/netdev-7.1.conf.cmd | 4 +-
> test/cfg2cmd/q35-ide.conf.cmd | 4 +-
> .../q35-linux-hostpci-mapping.conf.cmd | 4 +-
> .../q35-linux-hostpci-multifunction.conf.cmd | 4 +-
> .../q35-linux-hostpci-template.conf.cmd | 4 +-
> ...q35-linux-hostpci-x-pci-overrides.conf.cmd | 4 +-
> test/cfg2cmd/q35-linux-hostpci.conf.cmd | 4 +-
> test/cfg2cmd/q35-simple.conf.cmd | 4 +-
> test/cfg2cmd/q35-viommu-intel.conf.cmd | 4 +-
> test/cfg2cmd/q35-viommu-virtio.conf.cmd | 4 +-
> test/cfg2cmd/q35-win10-hostpci.conf.cmd | 4 +-
> test/cfg2cmd/q35-windows-pinning.conf | 5 ++
> test/cfg2cmd/q35-windows-pinning.conf.cmd | 24 +++++++
> test/cfg2cmd/seabios_serial.conf.cmd | 4 +-
> test/cfg2cmd/sev-es.conf.cmd | 4 +-
> test/cfg2cmd/sev-snp.conf.cmd | 4 +-
> test/cfg2cmd/sev-std.conf.cmd | 4 +-
> test/cfg2cmd/simple-btrfs.conf.cmd | 4 +-
> test/cfg2cmd/simple-virtio-blk.conf.cmd | 4 +-
> test/cfg2cmd/simple1-template.conf.cmd | 4 +-
> test/cfg2cmd/simple1.conf.cmd | 4 +-
> test/cfg2cmd/spice-win.conf.cmd | 4 +-
> test/cfg2cmd/vnc-clipboard-spice.conf.cmd | 4 +-
> test/cfg2cmd/vnc-clipboard-std.conf.cmd | 4 +-
> 48 files changed, 260 insertions(+), 58 deletions(-)
> create mode 100644 test/cfg2cmd/q35-windows-pinning.conf
> create mode 100644 test/cfg2cmd/q35-windows-pinning.conf.cmd
>
> pve-docs:
>
> Dominik Csapak (1):
> qm: pve machine version: add section to explain +pveX versions
>
> qm.adoc | 15 +++++++++++++++
> 1 file changed, 15 insertions(+)
>
More information about the pve-devel
mailing list