CPU Hotplug: Is there any plan to allow dynamic expansion beyond the predefined maximum CPU topology?

Oct 14, 2025
109
41
28
Hi,

I would like to ask about the current CPU hotplug design in Proxmox VE and whether there are any plans or possible approaches to make it more flexible in the future.

As I understand it, when using CPU hotplug in PVE, we first need to configure the maximum CPU topology using Sockets × Cores, and then use the vCPUs setting to define how many CPUs are initially plugged into the VM.

For example, if a VM initially requires only 4 vCPUs but may eventually need up to 64 vCPUs, we currently need to configure something like:

Code:
Sockets = 1
Cores   = 64
vCPUs   = 4

The VM can then be expanded online:

4 → 8 → 16 → 32 → 64 vCPUs

I understand that Sockets × Cores = 64 does not mean that all 64 vCPUs are active or consuming equivalent physical CPU resources from the start. It defines the maximum CPU topology, while vCPUs controls the number of CPUs initially plugged into the VM.

The operational concern is that the maximum CPU topology has to be predicted and predefined before the VM starts.

For example, if we initially configure:

Code:
Sockets = 1
Cores   = 8
vCPUs   = 4

we can hotplug CPUs only up to 8 vCPUs. If the workload later requires 16, 32, or 64 vCPUs, we cannot dynamically increase the maximum CPU topology while the VM is running. The topology has to be changed and the VM restarted before further expansion is possible.

I also understand that this is closely related to the underlying QEMU CPU hotplug architecture. QEMU requires maxcpus to be defined when the VM starts, and the possible CPU topology needs to account for CPUs that may later be hotplugged. Therefore, I understand that this may not simply be a PVE GUI/API limitation.

My questions are:

  1. Is there any ongoing or planned work in Proxmox VE to make the maximum vCPU / CPU topology more dynamically expandable without restarting the VM?
  2. Has there been any relevant development in newer QEMU versions that could allow PVE to provide a more flexible CPU hotplug model in the future?
  3. If dynamically increasing the maximum CPU topology is fundamentally not possible with the current QEMU architecture, is there any alternative approach recommended by Proxmox for large environments where it is difficult to predict the maximum vCPU requirement of each VM in advance?
  4. Could CPU overcommit or another PVE mechanism be used to improve resource flexibility in this scenario, while avoiding the need to define an unnecessarily large maximum CPU topology for every VM?
The main goal is not simply to overcommit CPU resources. We would like to avoid having to predict and preconfigure a large maximum CPU topology for every VM solely to preserve future CPU hotplug capacity.

I found some previous discussions about the same limitation, but I would like to confirm whether the situation has changed in recent PVE/QEMU versions or whether there are any plans to improve this behavior.

Previous discussions:

QEMU CPU hotplug documentation:

Thanks.