On 26.03.20 16:13, Stefan Reiter wrote:
Can be specified for a particular VM or via a custom CPU model (VM takes
precedence).

QEMU's default limit only allows up to 1TB of RAM per VM. Increasing the
physical address bits available to a VM can fix this.

Signed-off-by: Stefan Reiter <s.rei...@proxmox.com>
---
  PVE/QemuServer/CPUConfig.pm | 24 ++++++++++++++++++++++++
  1 file changed, 24 insertions(+)

diff --git a/PVE/QemuServer/CPUConfig.pm b/PVE/QemuServer/CPUConfig.pm
index fa09f4b..2b2529d 100644
--- a/PVE/QemuServer/CPUConfig.pm
+++ b/PVE/QemuServer/CPUConfig.pm
@@ -149,6 +149,19 @@ my $cpu_fmt = {
        pattern => qr/$cpu_flag_any_re(;$cpu_flag_any_re)*/,
        optional => 1,
      },
+    'phys-bits' => {
+       type => 'integer',
+       minimum => 8,
+       maximum => 64,
+       description => "The physical memory address bits that are reported to the 
guest OS. Should be smaller or equal to the host's.",
+       optional => 1,
+    },
+    'host-phys-bits' => {
+       type => 'boolean',
+       default => 0,
+       description => "Whether to report the host's physical memory address bits. 
Overrides 'phys-bits' when set.",

Is it better to die when both are set, so that a user gets informed about the clashing options?

+       optional => 1,
+    },
  };
# $cpu_fmt describes both the CPU config passed as part of a VM config, as well
@@ -472,6 +485,17 @@ sub get_cpu_options {
      $cpu_str .= resolve_cpu_flags($pve_flags, $hv_flags, 
$custom_cputype_flags,
                              $vm_flags, $pve_forced_flags);
+ my $phys_bits = '';
+    foreach my $conf ($custom_cpu, $cpu) {
+       next if !defined($conf);
+       if ($conf->{'host-phys-bits'}) {
+           $phys_bits = ",host-phys-bits=true";
+       } elsif ($conf->{'phys-bits'}) {
+           $phys_bits = ",phys-bits=$conf->{'phys-bits'}";
+       }
+    }
+    $cpu_str .= $phys_bits;
+
      return ('-cpu', $cpu_str);
  }

_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to