]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Report physical address size in domain capabilities
authorJiri Denemark <jdenemar@redhat.com>
Fri, 9 Jun 2023 15:17:36 +0000 (17:17 +0200)
committerJiri Denemark <jdenemar@redhat.com>
Fri, 16 Jun 2023 10:44:54 +0000 (12:44 +0200)
We already report the hosts physical address size in host capabilities,
but computing a baseline CPU definition is done from domain
capabilities.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
37 files changed:
docs/formatdomaincaps.rst
src/conf/schemas/domaincaps.rng
src/qemu/qemu_capabilities.c
tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml
tests/domaincapsdata/qemu_4.2.0.ppc64.xml
tests/domaincapsdata/qemu_4.2.0.s390x.xml
tests/domaincapsdata/qemu_4.2.0.x86_64.xml
tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
tests/domaincapsdata/qemu_5.0.0.ppc64.xml
tests/domaincapsdata/qemu_5.0.0.x86_64.xml
tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml
tests/domaincapsdata/qemu_5.1.0.x86_64.xml
tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
tests/domaincapsdata/qemu_5.2.0.ppc64.xml
tests/domaincapsdata/qemu_5.2.0.s390x.xml
tests/domaincapsdata/qemu_5.2.0.x86_64.xml
tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
tests/domaincapsdata/qemu_6.0.0.s390x.xml
tests/domaincapsdata/qemu_6.0.0.x86_64.xml
tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
tests/domaincapsdata/qemu_6.1.0.x86_64.xml
tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
tests/domaincapsdata/qemu_6.2.0.ppc64.xml
tests/domaincapsdata/qemu_6.2.0.x86_64.xml
tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
tests/domaincapsdata/qemu_7.0.0.ppc64.xml
tests/domaincapsdata/qemu_7.0.0.x86_64.xml
tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
tests/domaincapsdata/qemu_7.1.0.ppc64.xml
tests/domaincapsdata/qemu_7.1.0.x86_64.xml
tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
tests/domaincapsdata/qemu_7.2.0.x86_64.xml
tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
tests/domaincapsdata/qemu_8.0.0.x86_64.xml
tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
tests/domaincapsdata/qemu_8.1.0.x86_64.xml
tests/domaincapsmock.c

index e93c765affc0a4aa23a51716f9fcb8b4473ba5da..9dae941d181667730d9df7a5c7a710bec08c6ec2 100644 (file)
@@ -187,6 +187,7 @@ CPUs <formatdomain.html#cpu-model-and-topology>`__.
        <mode name='host-model' supported='yes'>
          <model fallback='allow'>Broadwell</model>
          <vendor>Intel</vendor>
+         <maxphysaddr mode="passthrough" limit="39"/>
          <feature policy='disable' name='aes'/>
          <feature policy='require' name='vmx'/>
        </mode>
@@ -218,7 +219,10 @@ more details about it:
    indicated by the ``fallback`` attribute of the ``model`` sub element:
    ``allow`` means not all specifics were accounted for and thus the CPU a guest
    will see may be different; ``forbid`` indicates that the CPU a guest will see
-   should match this CPU definition.
+   should match this CPU definition. The optional ``maxphysaddr`` element
+   reports physical address size of the host CPU if this value is available and
+   applicable for the requested domain type. This is useful for computing
+   baseline CPU definition which should be compatible with several hosts.
 ``custom``
    The ``mode`` element contains a list of supported CPU models, each described
    by a dedicated ``model`` element. The ``usable`` attribute specifies whether
index 28f545bd4b2a8f7d0a49b4d5ac75abd98d2db949..19bd6f7128cfb47102efeec47d3afe9ecbe9fb69 100644 (file)
         <optional>
           <ref name="cpuVendor"/>
         </optional>
+        <optional>
+          <ref name="cpuMaxPhysAddr"/>
+        </optional>
         <zeroOrMore>
           <ref name="cpuFeature"/>
         </zeroOrMore>
index cf85d42198d02ea302aca913c6cc0626e4d813cb..055248680557117a27f5786f0d32cbbc524bbd24 100644 (file)
@@ -717,6 +717,8 @@ struct _virQEMUCapsHostCPUData {
      * probe QEMU or load the cache.
      */
     qemuMonitorCPUModelInfo *info;
+    /* Physical address size of the host CPU or 0 if unknown or not applicable. */
+    unsigned int physAddrSize;
     /* Host CPU definition reported in domain capabilities. */
     virCPUDef *reported;
     /* Migratable host CPU definition used for updating guest CPU. */
@@ -2236,6 +2238,7 @@ virQEMUCapsGetHostModel(virQEMUCaps *qemuCaps,
 static void
 virQEMUCapsSetHostModel(virQEMUCaps *qemuCaps,
                         virDomainVirtType type,
+                        unsigned int physAddrSize,
                         virCPUDef *reported,
                         virCPUDef *migratable,
                         virCPUDef *full)
@@ -2243,12 +2246,34 @@ virQEMUCapsSetHostModel(virQEMUCaps *qemuCaps,
     virQEMUCapsHostCPUData *cpuData;
 
     cpuData = &virQEMUCapsGetAccel(qemuCaps, type)->hostCPU;
+    cpuData->physAddrSize = physAddrSize;
     cpuData->reported = reported;
     cpuData->migratable = migratable;
     cpuData->full = full;
 }
 
 
+static virCPUMaxPhysAddrDef *
+virQEMUCapsGetHostPhysAddr(virQEMUCaps *qemuCaps,
+                           virDomainVirtType type)
+{
+    virQEMUCapsHostCPUData *cpuData;
+    virCPUMaxPhysAddrDef *addr = NULL;
+
+    cpuData = &virQEMUCapsGetAccel(qemuCaps, type)->hostCPU;
+
+    if (cpuData->physAddrSize != 0) {
+        addr = g_new0(virCPUMaxPhysAddrDef, 1);
+
+        addr->mode = VIR_CPU_MAX_PHYS_ADDR_MODE_PASSTHROUGH;
+        addr->limit = cpuData->physAddrSize;
+        addr->bits = -1;
+    }
+
+    return addr;
+}
+
+
 bool
 virQEMUCapsIsArchSupported(virQEMUCaps *qemuCaps,
                            virArch arch)
@@ -3805,6 +3830,7 @@ virQEMUCapsInitHostCPUModel(virQEMUCaps *qemuCaps,
     virCPUDef *migCPU = NULL;
     virCPUDef *hostCPU = NULL;
     virCPUDef *fullCPU = NULL;
+    unsigned int physAddrSize = 0;
     size_t i;
     int rc;
 
@@ -3878,7 +3904,10 @@ virQEMUCapsInitHostCPUModel(virQEMUCaps *qemuCaps,
             goto error;
     }
 
-    virQEMUCapsSetHostModel(qemuCaps, type, cpu, migCPU, fullCPU);
+    if (virQEMUCapsTypeIsAccelerated(type))
+        virHostCPUGetPhysAddrSize(&physAddrSize);
+
+    virQEMUCapsSetHostModel(qemuCaps, type, physAddrSize, cpu, migCPU, fullCPU);
 
  cleanup:
     virCPUDefFree(cpuExpanded);
@@ -6224,6 +6253,8 @@ virQEMUCapsFillDomainCPUCaps(virQEMUCaps *qemuCaps,
         virCPUDef *cpu = virQEMUCapsGetHostModel(qemuCaps, domCaps->virttype,
                                                    VIR_QEMU_CAPS_HOST_CPU_REPORTED);
         domCaps->cpu.hostModel = virCPUDefCopy(cpu);
+        domCaps->cpu.hostModel->addr = virQEMUCapsGetHostPhysAddr(qemuCaps,
+                                                                  domCaps->virttype);
     }
 
     if (virQEMUCapsIsCPUModeSupported(qemuCaps, hostarch, domCaps->virttype,
index 17799b15e31ab5404d79af785608c42b3d96133c..f408c2a969314896be05fc678456bba5fd13891e 100644 (file)
@@ -44,6 +44,7 @@
     <mode name='host-model' supported='yes'>
       <model fallback='forbid'>Skylake-Client-IBRS</model>
       <vendor>Intel</vendor>
+      <maxphysaddr mode='passthrough' limit='64'/>
       <feature policy='require' name='ss'/>
       <feature policy='require' name='vmx'/>
       <feature policy='require' name='hypervisor'/>
index 6ade73c86ab527d297ac156c25dbbbc23cac94f0..a3289573bd4eb69e72fcf5de1016f3ce6d0a4e3a 100644 (file)
@@ -38,6 +38,7 @@
     </mode>
     <mode name='host-model' supported='yes'>
       <model fallback='allow'>POWER8</model>
+      <maxphysaddr mode='passthrough' limit='64'/>
     </mode>
     <mode name='custom' supported='yes'>
       <model usable='unknown' vendor='IBM'>POWER9</model>
index 81395f43bfa98fe5dd127b469eb280e0f9707b6c..c35bed1326580754158dc860f7212f2f8d3a01df 100644 (file)
@@ -38,6 +38,7 @@
     </mode>
     <mode name='host-model' supported='yes'>
       <model fallback='forbid'>gen15a-base</model>
+      <maxphysaddr mode='passthrough' limit='64'/>
       <feature policy='require' name='aen'/>
       <feature policy='require' name='cmmnt'/>
       <feature policy='require' name='vxpdeh'/>
index 1b7e4014c595e7666f391d5abb1183264e43a4d1..cbe083f1f18577bc551c205161c9cc70bc1f11d7 100644 (file)
@@ -43,6 +43,7 @@
     <mode name='host-model' supported='yes'>
       <model fallback='forbid'>Skylake-Client-IBRS</model>
       <vendor>Intel</vendor>
+      <maxphysaddr mode='passthrough' limit='64'/>
       <feature policy='require' name='ss'/>
       <feature policy='require' name='vmx'/>
       <feature policy='require' name='hypervisor'/>
index 1278e930d2e189810b07ea9a30ea26b872cd9192..6b68d4f2a5413bdca5079a95b73256fbcebc4d0e 100644 (file)
@@ -44,6 +44,7 @@
     <mode name='host-model' supported='yes'>
       <model fallback='forbid'>Skylake-Client-IBRS</model>
       <vendor>Intel</vendor>
+      <maxphysaddr mode='passthrough' limit='64'/>
       <feature policy='require' name='ss'/>
       <feature policy='require' name='vmx'/>
       <feature policy='require' name='hypervisor'/>
index da40c0a876e750a605bcc18319967aa9de2c2b16..4b3f490942c4c555c47937b3f958d0a58b8b8d70 100644 (file)
@@ -38,6 +38,7 @@
     </mode>
     <mode name='host-model' supported='yes'>
       <model fallback='allow'>POWER8</model>
+      <maxphysaddr mode='passthrough' limit='64'/>
     </mode>
     <mode name='custom' supported='yes'>
       <model usable='unknown' vendor='IBM'>POWER10</model>
index 71a01cbcbca866dabe692a35e266bd805197da3d..603d842dfef8a9aef181db5ea479aaa3aa94c839 100644 (file)
@@ -43,6 +43,7 @@
     <mode name='host-model' supported='yes'>
       <model fallback='forbid'>Skylake-Client-IBRS</model>
       <vendor>Intel</vendor>
+      <maxphysaddr mode='passthrough' limit='64'/>
       <feature policy='require' name='ss'/>
       <feature policy='require' name='vmx'/>
       <feature policy='require' name='hypervisor'/>
index 1b3fc889d49cd658b54aa1e2bca4b621de479330..cdbbe86ede708f2d82bec48876a1974249a951be 100644 (file)
@@ -44,6 +44,7 @@
     <mode name='host-model' supported='yes'>
       <model fallback='forbid'>EPYC-Rome</model>
       <vendor>AMD</vendor>
+      <maxphysaddr mode='passthrough' limit='64'/>
       <feature policy='require' name='x2apic'/>
       <feature policy='require' name='tsc-deadline'/>
       <feature policy='require' name='hypervisor'/>
index 228b0a17c42db10481877b71aff0eedd8d342379..1ef28a71e49fbaf7ef64f70197b6786bcec12d53 100644 (file)
@@ -43,6 +43,7 @@
     <mode name='host-model' supported='yes'>
       <model fallback='forbid'>EPYC-Rome</model>
       <vendor>AMD</vendor>
+      <maxphysaddr mode='passthrough' limit='64'/>
       <feature policy='require' name='x2apic'/>
       <feature policy='require' name='tsc-deadline'/>
       <feature policy='require' name='hypervisor'/>
index d1f0ec76aa7933bbd4b712a3f55a9ecba78e4b85..46a3a44cdd6aed08305c91a30d26b7c5d04c1d2e 100644 (file)
@@ -44,6 +44,7 @@
     <mode name='host-model' supported='yes'>
       <model fallback='forbid'>EPYC-Rome</model>
       <vendor>AMD</vendor>
+      <maxphysaddr mode='passthrough' limit='64'/>
       <feature policy='require' name='x2apic'/>
       <feature policy='require' name='tsc-deadline'/>
       <feature policy='require' name='hypervisor'/>
index 33f60ec813370ec951eb3655ad982905d07ad475..b465ad10307f10210b286dac1c7bbdfd23b3d0c6 100644 (file)
@@ -38,6 +38,7 @@
     </mode>
     <mode name='host-model' supported='yes'>
       <model fallback='allow'>POWER8</model>
+      <maxphysaddr mode='passthrough' limit='64'/>
     </mode>
     <mode name='custom' supported='yes'>
       <model usable='unknown' vendor='IBM'>POWER10</model>
index 1e615dab7c60a590bf127e03b729ff0d8fce8d8c..9dbf118713899ce7147c8e266f07f2f3ff0b84e3 100644 (file)
@@ -38,6 +38,7 @@
     </mode>
     <mode name='host-model' supported='yes'>
       <model fallback='forbid'>gen15a-base</model>
+      <maxphysaddr mode='passthrough' limit='64'/>
       <feature policy='require' name='aen'/>
       <feature policy='require' name='cmmnt'/>
       <feature policy='require' name='vxpdeh'/>
index 18c2e6b0f7303a90398fcabd20b6b1c0712fa1f6..09db83453575a45475225423c3f2019692ff5012 100644 (file)
@@ -43,6 +43,7 @@
     <mode name='host-model' supported='yes'>
       <model fallback='forbid'>EPYC-Rome</model>
       <vendor>AMD</vendor>
+      <maxphysaddr mode='passthrough' limit='64'/>
       <feature policy='require' name='x2apic'/>
       <feature policy='require' name='tsc-deadline'/>
       <feature policy='require' name='hypervisor'/>
index 2c22538349670d28b0ac1d17fe46a2014631195c..b1a2be10e620fae1bbdd8c7d660ba131ecd9d0b1 100644 (file)
@@ -44,6 +44,7 @@
     <mode name='host-model' supported='yes'>
       <model fallback='forbid'>EPYC-Rome</model>
       <vendor>AMD</vendor>
+      <maxphysaddr mode='passthrough' limit='64'/>
       <feature policy='require' name='x2apic'/>
       <feature policy='require' name='tsc-deadline'/>
       <feature policy='require' name='hypervisor'/>
index f3287347aac05eb46a83144a07a524554327ba08..f0a8b196f5db62bcac735cb225f6e8012074eb15 100644 (file)
@@ -38,6 +38,7 @@
     </mode>
     <mode name='host-model' supported='yes'>
       <model fallback='forbid'>gen15a-base</model>
+      <maxphysaddr mode='passthrough' limit='64'/>
       <feature policy='require' name='aen'/>
       <feature policy='require' name='cmmnt'/>
       <feature policy='require' name='vxpdeh'/>
index f0ff745f92a287e72a973df9a854513c6d27e607..693ae0a7f174f666cec0b60eb78fd13a3ca750ac 100644 (file)
@@ -43,6 +43,7 @@
     <mode name='host-model' supported='yes'>
       <model fallback='forbid'>EPYC-Rome</model>
       <vendor>AMD</vendor>
+      <maxphysaddr mode='passthrough' limit='64'/>
       <feature policy='require' name='x2apic'/>
       <feature policy='require' name='tsc-deadline'/>
       <feature policy='require' name='hypervisor'/>
index bdaf28ec3eb6ef667c1c9b538958011a58b7eefe..a161d6aa2036d9b33c01b9d66ced5c4f8ac5e835 100644 (file)
@@ -44,6 +44,7 @@
     <mode name='host-model' supported='yes'>
       <model fallback='forbid'>EPYC-Rome</model>
       <vendor>AMD</vendor>
+      <maxphysaddr mode='passthrough' limit='64'/>
       <feature policy='require' name='x2apic'/>
       <feature policy='require' name='tsc-deadline'/>
       <feature policy='require' name='hypervisor'/>
index ded6604e040effc2c9fc3300c0cb0bc1fd941301..8c4f8cc8606d4b027f3837d0934cea55a747bc61 100644 (file)
@@ -43,6 +43,7 @@
     <mode name='host-model' supported='yes'>
       <model fallback='forbid'>EPYC-Rome</model>
       <vendor>AMD</vendor>
+      <maxphysaddr mode='passthrough' limit='64'/>
       <feature policy='require' name='x2apic'/>
       <feature policy='require' name='tsc-deadline'/>
       <feature policy='require' name='hypervisor'/>
index e1f15391405fa2444f25d85ba3320a13991abe16..0449f562dfe989b337a33af75ceb4c1251bd20b1 100644 (file)
@@ -44,6 +44,7 @@
     <mode name='host-model' supported='yes'>
       <model fallback='forbid'>EPYC-Rome</model>
       <vendor>AMD</vendor>
+      <maxphysaddr mode='passthrough' limit='64'/>
       <feature policy='require' name='x2apic'/>
       <feature policy='require' name='tsc-deadline'/>
       <feature policy='require' name='hypervisor'/>
index 69f6818a815f5b469f1218d6e38604a37dca374f..a9f7aefbc90f355f4c62a2fed82f4e52bbda9be5 100644 (file)
@@ -38,6 +38,7 @@
     </mode>
     <mode name='host-model' supported='yes'>
       <model fallback='allow'>POWER8</model>
+      <maxphysaddr mode='passthrough' limit='64'/>
     </mode>
     <mode name='custom' supported='yes'>
       <model usable='unknown' vendor='IBM'>POWER10</model>
index 688783d2679d0ad5bfcf24ca4330be524ef90a61..fa1f7a2316df3a69f62df586b714838dffeb966d 100644 (file)
@@ -43,6 +43,7 @@
     <mode name='host-model' supported='yes'>
       <model fallback='forbid'>EPYC-Rome</model>
       <vendor>AMD</vendor>
+      <maxphysaddr mode='passthrough' limit='64'/>
       <feature policy='require' name='x2apic'/>
       <feature policy='require' name='tsc-deadline'/>
       <feature policy='require' name='hypervisor'/>
index ee6abd2f9dbb1c46c2fe4ba196f8f32d9e94894b..e793278d418dce110d06fed87cae44127bec89cd 100644 (file)
@@ -44,6 +44,7 @@
     <mode name='host-model' supported='yes'>
       <model fallback='forbid'>EPYC-Rome</model>
       <vendor>AMD</vendor>
+      <maxphysaddr mode='passthrough' limit='64'/>
       <feature policy='require' name='x2apic'/>
       <feature policy='require' name='tsc-deadline'/>
       <feature policy='require' name='hypervisor'/>
index 349223b689d596ae91c390501e1ddd8b4dc69d86..78f8d3cac4b4572fe4dff510b10d021f35388c38 100644 (file)
@@ -38,6 +38,7 @@
     </mode>
     <mode name='host-model' supported='yes'>
       <model fallback='allow'>POWER8</model>
+      <maxphysaddr mode='passthrough' limit='64'/>
     </mode>
     <mode name='custom' supported='yes'>
       <model usable='unknown' vendor='IBM'>POWER10</model>
index 45e226e434b05098dfcdcb9f47b830a12b42cf08..1d1505f757cb72e1af550327358f01d37ff3ab03 100644 (file)
@@ -43,6 +43,7 @@
     <mode name='host-model' supported='yes'>
       <model fallback='forbid'>EPYC-Rome</model>
       <vendor>AMD</vendor>
+      <maxphysaddr mode='passthrough' limit='64'/>
       <feature policy='require' name='x2apic'/>
       <feature policy='require' name='tsc-deadline'/>
       <feature policy='require' name='hypervisor'/>
index 3fc7ae5551b288672ab2be2e30f843852dd7aeeb..047763bd439a0002d8501378cd39ae1911a92333 100644 (file)
@@ -44,6 +44,7 @@
     <mode name='host-model' supported='yes'>
       <model fallback='forbid'>EPYC-Rome</model>
       <vendor>AMD</vendor>
+      <maxphysaddr mode='passthrough' limit='64'/>
       <feature policy='require' name='x2apic'/>
       <feature policy='require' name='tsc-deadline'/>
       <feature policy='require' name='hypervisor'/>
index b68fb91c9891856b3076eb7022ead2348ae170e1..f3a436d85963ee8741f4b850c816a7d6438ca91a 100644 (file)
@@ -33,6 +33,7 @@
     <mode name='maximum' supported='no'/>
     <mode name='host-model' supported='yes'>
       <model fallback='allow'>POWER8</model>
+      <maxphysaddr mode='passthrough' limit='64'/>
     </mode>
     <mode name='custom' supported='yes'>
       <model usable='unknown' vendor='IBM'>POWER10</model>
index fe5ac06df317c487d46f5db707b26675cbf6b91c..95452bb0a4dec61f6f5748423dadb6f50c1eb51c 100644 (file)
@@ -43,6 +43,7 @@
     <mode name='host-model' supported='yes'>
       <model fallback='forbid'>EPYC-Rome</model>
       <vendor>AMD</vendor>
+      <maxphysaddr mode='passthrough' limit='64'/>
       <feature policy='require' name='x2apic'/>
       <feature policy='require' name='tsc-deadline'/>
       <feature policy='require' name='hypervisor'/>
index 50615d437ee49917f22e4f8acca4c1e2fa8ec65c..d0029c65dac735bedf4fce16bf4854211ffb1579 100644 (file)
@@ -44,6 +44,7 @@
     <mode name='host-model' supported='yes'>
       <model fallback='forbid'>EPYC-Rome</model>
       <vendor>AMD</vendor>
+      <maxphysaddr mode='passthrough' limit='64'/>
       <feature policy='require' name='x2apic'/>
       <feature policy='require' name='tsc-deadline'/>
       <feature policy='require' name='hypervisor'/>
index 513042e7f227c10ee9939986f8cc5617287dc3e4..fecb7e4a0a04d5ede213339c328d00312d24dcfe 100644 (file)
@@ -43,6 +43,7 @@
     <mode name='host-model' supported='yes'>
       <model fallback='forbid'>EPYC-Rome</model>
       <vendor>AMD</vendor>
+      <maxphysaddr mode='passthrough' limit='64'/>
       <feature policy='require' name='x2apic'/>
       <feature policy='require' name='tsc-deadline'/>
       <feature policy='require' name='hypervisor'/>
index c1a1c0b7331212a2c2a465b741fa47ab1484b6f8..ef2637ab26b1b8ee05b1cfe1c204cf200306892d 100644 (file)
@@ -44,6 +44,7 @@
     <mode name='host-model' supported='yes'>
       <model fallback='forbid'>EPYC-Rome</model>
       <vendor>AMD</vendor>
+      <maxphysaddr mode='passthrough' limit='64'/>
       <feature policy='require' name='x2apic'/>
       <feature policy='require' name='tsc-deadline'/>
       <feature policy='require' name='hypervisor'/>
index 412847aa624134ecc832cb54d6732c55f4bf8f97..ebae9e34d66d7a73f1deda7986d4114cc6d51c6c 100644 (file)
@@ -43,6 +43,7 @@
     <mode name='host-model' supported='yes'>
       <model fallback='forbid'>EPYC-Rome</model>
       <vendor>AMD</vendor>
+      <maxphysaddr mode='passthrough' limit='64'/>
       <feature policy='require' name='x2apic'/>
       <feature policy='require' name='tsc-deadline'/>
       <feature policy='require' name='hypervisor'/>
index f4a9c433400f6056ea7fa6995e0338f2bee2d6d6..0fccb2ef47431fff973006f181d8d7f285db7737 100644 (file)
@@ -44,6 +44,7 @@
     <mode name='host-model' supported='yes'>
       <model fallback='forbid'>EPYC-Rome</model>
       <vendor>AMD</vendor>
+      <maxphysaddr mode='passthrough' limit='64'/>
       <feature policy='require' name='x2apic'/>
       <feature policy='require' name='tsc-deadline'/>
       <feature policy='require' name='hypervisor'/>
index 89f7ff5250f551440ad704ba9cf84ecd469a2559..f555cca9db39532979c309e9c43dfc9742e1415d 100644 (file)
@@ -43,6 +43,7 @@
     <mode name='host-model' supported='yes'>
       <model fallback='forbid'>EPYC-Rome</model>
       <vendor>AMD</vendor>
+      <maxphysaddr mode='passthrough' limit='64'/>
       <feature policy='require' name='x2apic'/>
       <feature policy='require' name='tsc-deadline'/>
       <feature policy='require' name='hypervisor'/>
index d382d06e2718523f25e3c624e005954bbac297a2..cecb333602b031badd91346115e00749eecf150b 100644 (file)
@@ -36,6 +36,13 @@ virHostCPUGetMicrocodeVersion(virArch hostArch G_GNUC_UNUSED)
     return 0;
 }
 
+int
+virHostCPUGetPhysAddrSize(unsigned int *size)
+{
+    *size = 64;
+    return 0;
+}
+
 #if WITH_QEMU
 static bool (*real_virQEMUCapsGetKVMSupportsSecureGuest)(virQEMUCaps *qemuCaps);