mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 05:35:25 +00:00
qemu: Report physical address size in domain capabilities
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>
This commit is contained in:
parent
078e645cc3
commit
be1b7d5b18
@ -187,6 +187,7 @@ CPUs <formatdomain.html#cpu-model-and-topology>`__.
|
|||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='allow'>Broadwell</model>
|
<model fallback='allow'>Broadwell</model>
|
||||||
<vendor>Intel</vendor>
|
<vendor>Intel</vendor>
|
||||||
|
<maxphysaddr mode="passthrough" limit="39"/>
|
||||||
<feature policy='disable' name='aes'/>
|
<feature policy='disable' name='aes'/>
|
||||||
<feature policy='require' name='vmx'/>
|
<feature policy='require' name='vmx'/>
|
||||||
</mode>
|
</mode>
|
||||||
@ -218,7 +219,10 @@ more details about it:
|
|||||||
indicated by the ``fallback`` attribute of the ``model`` sub element:
|
indicated by the ``fallback`` attribute of the ``model`` sub element:
|
||||||
``allow`` means not all specifics were accounted for and thus the CPU a guest
|
``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
|
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``
|
``custom``
|
||||||
The ``mode`` element contains a list of supported CPU models, each described
|
The ``mode`` element contains a list of supported CPU models, each described
|
||||||
by a dedicated ``model`` element. The ``usable`` attribute specifies whether
|
by a dedicated ``model`` element. The ``usable`` attribute specifies whether
|
||||||
|
@ -132,6 +132,9 @@
|
|||||||
<optional>
|
<optional>
|
||||||
<ref name="cpuVendor"/>
|
<ref name="cpuVendor"/>
|
||||||
</optional>
|
</optional>
|
||||||
|
<optional>
|
||||||
|
<ref name="cpuMaxPhysAddr"/>
|
||||||
|
</optional>
|
||||||
<zeroOrMore>
|
<zeroOrMore>
|
||||||
<ref name="cpuFeature"/>
|
<ref name="cpuFeature"/>
|
||||||
</zeroOrMore>
|
</zeroOrMore>
|
||||||
|
@ -717,6 +717,8 @@ struct _virQEMUCapsHostCPUData {
|
|||||||
* probe QEMU or load the cache.
|
* probe QEMU or load the cache.
|
||||||
*/
|
*/
|
||||||
qemuMonitorCPUModelInfo *info;
|
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. */
|
/* Host CPU definition reported in domain capabilities. */
|
||||||
virCPUDef *reported;
|
virCPUDef *reported;
|
||||||
/* Migratable host CPU definition used for updating guest CPU. */
|
/* Migratable host CPU definition used for updating guest CPU. */
|
||||||
@ -2236,6 +2238,7 @@ virQEMUCapsGetHostModel(virQEMUCaps *qemuCaps,
|
|||||||
static void
|
static void
|
||||||
virQEMUCapsSetHostModel(virQEMUCaps *qemuCaps,
|
virQEMUCapsSetHostModel(virQEMUCaps *qemuCaps,
|
||||||
virDomainVirtType type,
|
virDomainVirtType type,
|
||||||
|
unsigned int physAddrSize,
|
||||||
virCPUDef *reported,
|
virCPUDef *reported,
|
||||||
virCPUDef *migratable,
|
virCPUDef *migratable,
|
||||||
virCPUDef *full)
|
virCPUDef *full)
|
||||||
@ -2243,12 +2246,34 @@ virQEMUCapsSetHostModel(virQEMUCaps *qemuCaps,
|
|||||||
virQEMUCapsHostCPUData *cpuData;
|
virQEMUCapsHostCPUData *cpuData;
|
||||||
|
|
||||||
cpuData = &virQEMUCapsGetAccel(qemuCaps, type)->hostCPU;
|
cpuData = &virQEMUCapsGetAccel(qemuCaps, type)->hostCPU;
|
||||||
|
cpuData->physAddrSize = physAddrSize;
|
||||||
cpuData->reported = reported;
|
cpuData->reported = reported;
|
||||||
cpuData->migratable = migratable;
|
cpuData->migratable = migratable;
|
||||||
cpuData->full = full;
|
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
|
bool
|
||||||
virQEMUCapsIsArchSupported(virQEMUCaps *qemuCaps,
|
virQEMUCapsIsArchSupported(virQEMUCaps *qemuCaps,
|
||||||
virArch arch)
|
virArch arch)
|
||||||
@ -3805,6 +3830,7 @@ virQEMUCapsInitHostCPUModel(virQEMUCaps *qemuCaps,
|
|||||||
virCPUDef *migCPU = NULL;
|
virCPUDef *migCPU = NULL;
|
||||||
virCPUDef *hostCPU = NULL;
|
virCPUDef *hostCPU = NULL;
|
||||||
virCPUDef *fullCPU = NULL;
|
virCPUDef *fullCPU = NULL;
|
||||||
|
unsigned int physAddrSize = 0;
|
||||||
size_t i;
|
size_t i;
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
@ -3878,7 +3904,10 @@ virQEMUCapsInitHostCPUModel(virQEMUCaps *qemuCaps,
|
|||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
virQEMUCapsSetHostModel(qemuCaps, type, cpu, migCPU, fullCPU);
|
if (virQEMUCapsTypeIsAccelerated(type))
|
||||||
|
virHostCPUGetPhysAddrSize(&physAddrSize);
|
||||||
|
|
||||||
|
virQEMUCapsSetHostModel(qemuCaps, type, physAddrSize, cpu, migCPU, fullCPU);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virCPUDefFree(cpuExpanded);
|
virCPUDefFree(cpuExpanded);
|
||||||
@ -6224,6 +6253,8 @@ virQEMUCapsFillDomainCPUCaps(virQEMUCaps *qemuCaps,
|
|||||||
virCPUDef *cpu = virQEMUCapsGetHostModel(qemuCaps, domCaps->virttype,
|
virCPUDef *cpu = virQEMUCapsGetHostModel(qemuCaps, domCaps->virttype,
|
||||||
VIR_QEMU_CAPS_HOST_CPU_REPORTED);
|
VIR_QEMU_CAPS_HOST_CPU_REPORTED);
|
||||||
domCaps->cpu.hostModel = virCPUDefCopy(cpu);
|
domCaps->cpu.hostModel = virCPUDefCopy(cpu);
|
||||||
|
domCaps->cpu.hostModel->addr = virQEMUCapsGetHostPhysAddr(qemuCaps,
|
||||||
|
domCaps->virttype);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (virQEMUCapsIsCPUModeSupported(qemuCaps, hostarch, domCaps->virttype,
|
if (virQEMUCapsIsCPUModeSupported(qemuCaps, hostarch, domCaps->virttype,
|
||||||
|
@ -44,6 +44,7 @@
|
|||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='forbid'>Skylake-Client-IBRS</model>
|
<model fallback='forbid'>Skylake-Client-IBRS</model>
|
||||||
<vendor>Intel</vendor>
|
<vendor>Intel</vendor>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
<feature policy='require' name='ss'/>
|
<feature policy='require' name='ss'/>
|
||||||
<feature policy='require' name='vmx'/>
|
<feature policy='require' name='vmx'/>
|
||||||
<feature policy='require' name='hypervisor'/>
|
<feature policy='require' name='hypervisor'/>
|
||||||
|
@ -38,6 +38,7 @@
|
|||||||
</mode>
|
</mode>
|
||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='allow'>POWER8</model>
|
<model fallback='allow'>POWER8</model>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
</mode>
|
</mode>
|
||||||
<mode name='custom' supported='yes'>
|
<mode name='custom' supported='yes'>
|
||||||
<model usable='unknown' vendor='IBM'>POWER9</model>
|
<model usable='unknown' vendor='IBM'>POWER9</model>
|
||||||
|
@ -38,6 +38,7 @@
|
|||||||
</mode>
|
</mode>
|
||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='forbid'>gen15a-base</model>
|
<model fallback='forbid'>gen15a-base</model>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
<feature policy='require' name='aen'/>
|
<feature policy='require' name='aen'/>
|
||||||
<feature policy='require' name='cmmnt'/>
|
<feature policy='require' name='cmmnt'/>
|
||||||
<feature policy='require' name='vxpdeh'/>
|
<feature policy='require' name='vxpdeh'/>
|
||||||
|
@ -43,6 +43,7 @@
|
|||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='forbid'>Skylake-Client-IBRS</model>
|
<model fallback='forbid'>Skylake-Client-IBRS</model>
|
||||||
<vendor>Intel</vendor>
|
<vendor>Intel</vendor>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
<feature policy='require' name='ss'/>
|
<feature policy='require' name='ss'/>
|
||||||
<feature policy='require' name='vmx'/>
|
<feature policy='require' name='vmx'/>
|
||||||
<feature policy='require' name='hypervisor'/>
|
<feature policy='require' name='hypervisor'/>
|
||||||
|
@ -44,6 +44,7 @@
|
|||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='forbid'>Skylake-Client-IBRS</model>
|
<model fallback='forbid'>Skylake-Client-IBRS</model>
|
||||||
<vendor>Intel</vendor>
|
<vendor>Intel</vendor>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
<feature policy='require' name='ss'/>
|
<feature policy='require' name='ss'/>
|
||||||
<feature policy='require' name='vmx'/>
|
<feature policy='require' name='vmx'/>
|
||||||
<feature policy='require' name='hypervisor'/>
|
<feature policy='require' name='hypervisor'/>
|
||||||
|
@ -38,6 +38,7 @@
|
|||||||
</mode>
|
</mode>
|
||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='allow'>POWER8</model>
|
<model fallback='allow'>POWER8</model>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
</mode>
|
</mode>
|
||||||
<mode name='custom' supported='yes'>
|
<mode name='custom' supported='yes'>
|
||||||
<model usable='unknown' vendor='IBM'>POWER10</model>
|
<model usable='unknown' vendor='IBM'>POWER10</model>
|
||||||
|
@ -43,6 +43,7 @@
|
|||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='forbid'>Skylake-Client-IBRS</model>
|
<model fallback='forbid'>Skylake-Client-IBRS</model>
|
||||||
<vendor>Intel</vendor>
|
<vendor>Intel</vendor>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
<feature policy='require' name='ss'/>
|
<feature policy='require' name='ss'/>
|
||||||
<feature policy='require' name='vmx'/>
|
<feature policy='require' name='vmx'/>
|
||||||
<feature policy='require' name='hypervisor'/>
|
<feature policy='require' name='hypervisor'/>
|
||||||
|
@ -44,6 +44,7 @@
|
|||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='forbid'>EPYC-Rome</model>
|
<model fallback='forbid'>EPYC-Rome</model>
|
||||||
<vendor>AMD</vendor>
|
<vendor>AMD</vendor>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
<feature policy='require' name='x2apic'/>
|
<feature policy='require' name='x2apic'/>
|
||||||
<feature policy='require' name='tsc-deadline'/>
|
<feature policy='require' name='tsc-deadline'/>
|
||||||
<feature policy='require' name='hypervisor'/>
|
<feature policy='require' name='hypervisor'/>
|
||||||
|
@ -43,6 +43,7 @@
|
|||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='forbid'>EPYC-Rome</model>
|
<model fallback='forbid'>EPYC-Rome</model>
|
||||||
<vendor>AMD</vendor>
|
<vendor>AMD</vendor>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
<feature policy='require' name='x2apic'/>
|
<feature policy='require' name='x2apic'/>
|
||||||
<feature policy='require' name='tsc-deadline'/>
|
<feature policy='require' name='tsc-deadline'/>
|
||||||
<feature policy='require' name='hypervisor'/>
|
<feature policy='require' name='hypervisor'/>
|
||||||
|
@ -44,6 +44,7 @@
|
|||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='forbid'>EPYC-Rome</model>
|
<model fallback='forbid'>EPYC-Rome</model>
|
||||||
<vendor>AMD</vendor>
|
<vendor>AMD</vendor>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
<feature policy='require' name='x2apic'/>
|
<feature policy='require' name='x2apic'/>
|
||||||
<feature policy='require' name='tsc-deadline'/>
|
<feature policy='require' name='tsc-deadline'/>
|
||||||
<feature policy='require' name='hypervisor'/>
|
<feature policy='require' name='hypervisor'/>
|
||||||
|
@ -38,6 +38,7 @@
|
|||||||
</mode>
|
</mode>
|
||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='allow'>POWER8</model>
|
<model fallback='allow'>POWER8</model>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
</mode>
|
</mode>
|
||||||
<mode name='custom' supported='yes'>
|
<mode name='custom' supported='yes'>
|
||||||
<model usable='unknown' vendor='IBM'>POWER10</model>
|
<model usable='unknown' vendor='IBM'>POWER10</model>
|
||||||
|
@ -38,6 +38,7 @@
|
|||||||
</mode>
|
</mode>
|
||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='forbid'>gen15a-base</model>
|
<model fallback='forbid'>gen15a-base</model>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
<feature policy='require' name='aen'/>
|
<feature policy='require' name='aen'/>
|
||||||
<feature policy='require' name='cmmnt'/>
|
<feature policy='require' name='cmmnt'/>
|
||||||
<feature policy='require' name='vxpdeh'/>
|
<feature policy='require' name='vxpdeh'/>
|
||||||
|
@ -43,6 +43,7 @@
|
|||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='forbid'>EPYC-Rome</model>
|
<model fallback='forbid'>EPYC-Rome</model>
|
||||||
<vendor>AMD</vendor>
|
<vendor>AMD</vendor>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
<feature policy='require' name='x2apic'/>
|
<feature policy='require' name='x2apic'/>
|
||||||
<feature policy='require' name='tsc-deadline'/>
|
<feature policy='require' name='tsc-deadline'/>
|
||||||
<feature policy='require' name='hypervisor'/>
|
<feature policy='require' name='hypervisor'/>
|
||||||
|
@ -44,6 +44,7 @@
|
|||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='forbid'>EPYC-Rome</model>
|
<model fallback='forbid'>EPYC-Rome</model>
|
||||||
<vendor>AMD</vendor>
|
<vendor>AMD</vendor>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
<feature policy='require' name='x2apic'/>
|
<feature policy='require' name='x2apic'/>
|
||||||
<feature policy='require' name='tsc-deadline'/>
|
<feature policy='require' name='tsc-deadline'/>
|
||||||
<feature policy='require' name='hypervisor'/>
|
<feature policy='require' name='hypervisor'/>
|
||||||
|
@ -38,6 +38,7 @@
|
|||||||
</mode>
|
</mode>
|
||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='forbid'>gen15a-base</model>
|
<model fallback='forbid'>gen15a-base</model>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
<feature policy='require' name='aen'/>
|
<feature policy='require' name='aen'/>
|
||||||
<feature policy='require' name='cmmnt'/>
|
<feature policy='require' name='cmmnt'/>
|
||||||
<feature policy='require' name='vxpdeh'/>
|
<feature policy='require' name='vxpdeh'/>
|
||||||
|
@ -43,6 +43,7 @@
|
|||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='forbid'>EPYC-Rome</model>
|
<model fallback='forbid'>EPYC-Rome</model>
|
||||||
<vendor>AMD</vendor>
|
<vendor>AMD</vendor>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
<feature policy='require' name='x2apic'/>
|
<feature policy='require' name='x2apic'/>
|
||||||
<feature policy='require' name='tsc-deadline'/>
|
<feature policy='require' name='tsc-deadline'/>
|
||||||
<feature policy='require' name='hypervisor'/>
|
<feature policy='require' name='hypervisor'/>
|
||||||
|
@ -44,6 +44,7 @@
|
|||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='forbid'>EPYC-Rome</model>
|
<model fallback='forbid'>EPYC-Rome</model>
|
||||||
<vendor>AMD</vendor>
|
<vendor>AMD</vendor>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
<feature policy='require' name='x2apic'/>
|
<feature policy='require' name='x2apic'/>
|
||||||
<feature policy='require' name='tsc-deadline'/>
|
<feature policy='require' name='tsc-deadline'/>
|
||||||
<feature policy='require' name='hypervisor'/>
|
<feature policy='require' name='hypervisor'/>
|
||||||
|
@ -43,6 +43,7 @@
|
|||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='forbid'>EPYC-Rome</model>
|
<model fallback='forbid'>EPYC-Rome</model>
|
||||||
<vendor>AMD</vendor>
|
<vendor>AMD</vendor>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
<feature policy='require' name='x2apic'/>
|
<feature policy='require' name='x2apic'/>
|
||||||
<feature policy='require' name='tsc-deadline'/>
|
<feature policy='require' name='tsc-deadline'/>
|
||||||
<feature policy='require' name='hypervisor'/>
|
<feature policy='require' name='hypervisor'/>
|
||||||
|
@ -44,6 +44,7 @@
|
|||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='forbid'>EPYC-Rome</model>
|
<model fallback='forbid'>EPYC-Rome</model>
|
||||||
<vendor>AMD</vendor>
|
<vendor>AMD</vendor>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
<feature policy='require' name='x2apic'/>
|
<feature policy='require' name='x2apic'/>
|
||||||
<feature policy='require' name='tsc-deadline'/>
|
<feature policy='require' name='tsc-deadline'/>
|
||||||
<feature policy='require' name='hypervisor'/>
|
<feature policy='require' name='hypervisor'/>
|
||||||
|
@ -38,6 +38,7 @@
|
|||||||
</mode>
|
</mode>
|
||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='allow'>POWER8</model>
|
<model fallback='allow'>POWER8</model>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
</mode>
|
</mode>
|
||||||
<mode name='custom' supported='yes'>
|
<mode name='custom' supported='yes'>
|
||||||
<model usable='unknown' vendor='IBM'>POWER10</model>
|
<model usable='unknown' vendor='IBM'>POWER10</model>
|
||||||
|
@ -43,6 +43,7 @@
|
|||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='forbid'>EPYC-Rome</model>
|
<model fallback='forbid'>EPYC-Rome</model>
|
||||||
<vendor>AMD</vendor>
|
<vendor>AMD</vendor>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
<feature policy='require' name='x2apic'/>
|
<feature policy='require' name='x2apic'/>
|
||||||
<feature policy='require' name='tsc-deadline'/>
|
<feature policy='require' name='tsc-deadline'/>
|
||||||
<feature policy='require' name='hypervisor'/>
|
<feature policy='require' name='hypervisor'/>
|
||||||
|
@ -44,6 +44,7 @@
|
|||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='forbid'>EPYC-Rome</model>
|
<model fallback='forbid'>EPYC-Rome</model>
|
||||||
<vendor>AMD</vendor>
|
<vendor>AMD</vendor>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
<feature policy='require' name='x2apic'/>
|
<feature policy='require' name='x2apic'/>
|
||||||
<feature policy='require' name='tsc-deadline'/>
|
<feature policy='require' name='tsc-deadline'/>
|
||||||
<feature policy='require' name='hypervisor'/>
|
<feature policy='require' name='hypervisor'/>
|
||||||
|
@ -38,6 +38,7 @@
|
|||||||
</mode>
|
</mode>
|
||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='allow'>POWER8</model>
|
<model fallback='allow'>POWER8</model>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
</mode>
|
</mode>
|
||||||
<mode name='custom' supported='yes'>
|
<mode name='custom' supported='yes'>
|
||||||
<model usable='unknown' vendor='IBM'>POWER10</model>
|
<model usable='unknown' vendor='IBM'>POWER10</model>
|
||||||
|
@ -43,6 +43,7 @@
|
|||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='forbid'>EPYC-Rome</model>
|
<model fallback='forbid'>EPYC-Rome</model>
|
||||||
<vendor>AMD</vendor>
|
<vendor>AMD</vendor>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
<feature policy='require' name='x2apic'/>
|
<feature policy='require' name='x2apic'/>
|
||||||
<feature policy='require' name='tsc-deadline'/>
|
<feature policy='require' name='tsc-deadline'/>
|
||||||
<feature policy='require' name='hypervisor'/>
|
<feature policy='require' name='hypervisor'/>
|
||||||
|
@ -44,6 +44,7 @@
|
|||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='forbid'>EPYC-Rome</model>
|
<model fallback='forbid'>EPYC-Rome</model>
|
||||||
<vendor>AMD</vendor>
|
<vendor>AMD</vendor>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
<feature policy='require' name='x2apic'/>
|
<feature policy='require' name='x2apic'/>
|
||||||
<feature policy='require' name='tsc-deadline'/>
|
<feature policy='require' name='tsc-deadline'/>
|
||||||
<feature policy='require' name='hypervisor'/>
|
<feature policy='require' name='hypervisor'/>
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
<mode name='maximum' supported='no'/>
|
<mode name='maximum' supported='no'/>
|
||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='allow'>POWER8</model>
|
<model fallback='allow'>POWER8</model>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
</mode>
|
</mode>
|
||||||
<mode name='custom' supported='yes'>
|
<mode name='custom' supported='yes'>
|
||||||
<model usable='unknown' vendor='IBM'>POWER10</model>
|
<model usable='unknown' vendor='IBM'>POWER10</model>
|
||||||
|
@ -43,6 +43,7 @@
|
|||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='forbid'>EPYC-Rome</model>
|
<model fallback='forbid'>EPYC-Rome</model>
|
||||||
<vendor>AMD</vendor>
|
<vendor>AMD</vendor>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
<feature policy='require' name='x2apic'/>
|
<feature policy='require' name='x2apic'/>
|
||||||
<feature policy='require' name='tsc-deadline'/>
|
<feature policy='require' name='tsc-deadline'/>
|
||||||
<feature policy='require' name='hypervisor'/>
|
<feature policy='require' name='hypervisor'/>
|
||||||
|
@ -44,6 +44,7 @@
|
|||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='forbid'>EPYC-Rome</model>
|
<model fallback='forbid'>EPYC-Rome</model>
|
||||||
<vendor>AMD</vendor>
|
<vendor>AMD</vendor>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
<feature policy='require' name='x2apic'/>
|
<feature policy='require' name='x2apic'/>
|
||||||
<feature policy='require' name='tsc-deadline'/>
|
<feature policy='require' name='tsc-deadline'/>
|
||||||
<feature policy='require' name='hypervisor'/>
|
<feature policy='require' name='hypervisor'/>
|
||||||
|
@ -43,6 +43,7 @@
|
|||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='forbid'>EPYC-Rome</model>
|
<model fallback='forbid'>EPYC-Rome</model>
|
||||||
<vendor>AMD</vendor>
|
<vendor>AMD</vendor>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
<feature policy='require' name='x2apic'/>
|
<feature policy='require' name='x2apic'/>
|
||||||
<feature policy='require' name='tsc-deadline'/>
|
<feature policy='require' name='tsc-deadline'/>
|
||||||
<feature policy='require' name='hypervisor'/>
|
<feature policy='require' name='hypervisor'/>
|
||||||
|
@ -44,6 +44,7 @@
|
|||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='forbid'>EPYC-Rome</model>
|
<model fallback='forbid'>EPYC-Rome</model>
|
||||||
<vendor>AMD</vendor>
|
<vendor>AMD</vendor>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
<feature policy='require' name='x2apic'/>
|
<feature policy='require' name='x2apic'/>
|
||||||
<feature policy='require' name='tsc-deadline'/>
|
<feature policy='require' name='tsc-deadline'/>
|
||||||
<feature policy='require' name='hypervisor'/>
|
<feature policy='require' name='hypervisor'/>
|
||||||
|
@ -43,6 +43,7 @@
|
|||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='forbid'>EPYC-Rome</model>
|
<model fallback='forbid'>EPYC-Rome</model>
|
||||||
<vendor>AMD</vendor>
|
<vendor>AMD</vendor>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
<feature policy='require' name='x2apic'/>
|
<feature policy='require' name='x2apic'/>
|
||||||
<feature policy='require' name='tsc-deadline'/>
|
<feature policy='require' name='tsc-deadline'/>
|
||||||
<feature policy='require' name='hypervisor'/>
|
<feature policy='require' name='hypervisor'/>
|
||||||
|
@ -44,6 +44,7 @@
|
|||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='forbid'>EPYC-Rome</model>
|
<model fallback='forbid'>EPYC-Rome</model>
|
||||||
<vendor>AMD</vendor>
|
<vendor>AMD</vendor>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
<feature policy='require' name='x2apic'/>
|
<feature policy='require' name='x2apic'/>
|
||||||
<feature policy='require' name='tsc-deadline'/>
|
<feature policy='require' name='tsc-deadline'/>
|
||||||
<feature policy='require' name='hypervisor'/>
|
<feature policy='require' name='hypervisor'/>
|
||||||
|
@ -43,6 +43,7 @@
|
|||||||
<mode name='host-model' supported='yes'>
|
<mode name='host-model' supported='yes'>
|
||||||
<model fallback='forbid'>EPYC-Rome</model>
|
<model fallback='forbid'>EPYC-Rome</model>
|
||||||
<vendor>AMD</vendor>
|
<vendor>AMD</vendor>
|
||||||
|
<maxphysaddr mode='passthrough' limit='64'/>
|
||||||
<feature policy='require' name='x2apic'/>
|
<feature policy='require' name='x2apic'/>
|
||||||
<feature policy='require' name='tsc-deadline'/>
|
<feature policy='require' name='tsc-deadline'/>
|
||||||
<feature policy='require' name='hypervisor'/>
|
<feature policy='require' name='hypervisor'/>
|
||||||
|
@ -36,6 +36,13 @@ virHostCPUGetMicrocodeVersion(virArch hostArch G_GNUC_UNUSED)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
virHostCPUGetPhysAddrSize(unsigned int *size)
|
||||||
|
{
|
||||||
|
*size = 64;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
#if WITH_QEMU
|
#if WITH_QEMU
|
||||||
static bool (*real_virQEMUCapsGetKVMSupportsSecureGuest)(virQEMUCaps *qemuCaps);
|
static bool (*real_virQEMUCapsGetKVMSupportsSecureGuest)(virQEMUCaps *qemuCaps);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user