[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