mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 03:12:22 +00:00
qemu: Assume QEMU_CAPS_OBJECT_MEMORY_FILE
Introduced in QEMU's commit of v2.1.0-rc0~41^2~26 only for Linux, and later in v3.1.0-rc0~71^2~10 for all POSIX, the memory-backend-file is going to be present for all QEMU versions we support (4.2.0, currently). Therefore, we can assume the capability is always set and thus doesn't need to be checked for. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
7addd1baa6
commit
8641fcfa63
@ -1725,7 +1725,7 @@ static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsMaxCPU[] = {
|
||||
static virQEMUCapsObjectTypeProps virQEMUCapsObjectProps[] = {
|
||||
{ "memory-backend-file", virQEMUCapsObjectPropsMemoryBackendFile,
|
||||
G_N_ELEMENTS(virQEMUCapsObjectPropsMemoryBackendFile),
|
||||
QEMU_CAPS_OBJECT_MEMORY_FILE },
|
||||
-1 },
|
||||
{ "memory-backend-memfd", virQEMUCapsObjectPropsMemoryBackendMemfd,
|
||||
G_N_ELEMENTS(virQEMUCapsObjectPropsMemoryBackendMemfd),
|
||||
QEMU_CAPS_OBJECT_MEMORY_MEMFD },
|
||||
@ -6096,12 +6096,9 @@ virQEMUCapsFillDomainMemoryBackingCaps(virQEMUCaps *qemuCaps,
|
||||
VIR_DOMAIN_CAPS_ENUM_SET(memoryBacking->sourceType,
|
||||
VIR_DOMAIN_MEMORY_SOURCE_MEMFD);
|
||||
|
||||
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_MEMORY_FILE))
|
||||
VIR_DOMAIN_CAPS_ENUM_SET(memoryBacking->sourceType,
|
||||
VIR_DOMAIN_MEMORY_SOURCE_FILE);
|
||||
|
||||
VIR_DOMAIN_CAPS_ENUM_SET(memoryBacking->sourceType,
|
||||
VIR_DOMAIN_MEMORY_SOURCE_ANONYMOUS);
|
||||
VIR_DOMAIN_MEMORY_SOURCE_ANONYMOUS,
|
||||
VIR_DOMAIN_MEMORY_SOURCE_FILE);
|
||||
}
|
||||
|
||||
|
||||
|
@ -3472,17 +3472,10 @@ qemuBuildMemoryBackendProps(virJSONValue **backendProps,
|
||||
rc = 1;
|
||||
} else {
|
||||
/* otherwise check the required capability */
|
||||
if (STREQ(backendType, "memory-backend-file") &&
|
||||
!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_OBJECT_MEMORY_FILE)) {
|
||||
if (STREQ(backendType, "memory-backend-memfd") &&
|
||||
!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_OBJECT_MEMORY_MEMFD)) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||
_("this qemu doesn't support the "
|
||||
"memory-backend-file object"));
|
||||
return -1;
|
||||
} else if (STREQ(backendType, "memory-backend-memfd") &&
|
||||
!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_OBJECT_MEMORY_MEMFD)) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||
_("this qemu doesn't support the "
|
||||
"memory-backend-memfd object"));
|
||||
_("this qemu doesn't support the memory-backend-memfd object"));
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -983,19 +983,9 @@ static int
|
||||
qemuValidateDomainDefNuma(const virDomainDef *def,
|
||||
virQEMUCaps *qemuCaps)
|
||||
{
|
||||
const long system_page_size = virGetSystemPageSizeKB();
|
||||
size_t ncells = virDomainNumaGetNodeCount(def->numa);
|
||||
size_t i;
|
||||
|
||||
if (def->mem.nhugepages &&
|
||||
def->mem.hugepages[0].size != system_page_size &&
|
||||
!virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_MEMORY_FILE)) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||
_("huge pages per NUMA node are not "
|
||||
"supported with this QEMU"));
|
||||
return -1;
|
||||
}
|
||||
|
||||
for (i = 0; i < ncells; i++) {
|
||||
virBitmap *cpumask = virDomainNumaGetNodeCpumask(def->numa, i);
|
||||
|
||||
|
@ -1 +1 @@
|
||||
unsupported configuration: huge pages per NUMA node are not supported with this QEMU
|
||||
two master hugepages detected: 2048 and 1048576
|
||||
|
@ -1234,8 +1234,7 @@ mymain(void)
|
||||
DO_TEST_PARSE_ERROR_NOCAPS("hugepages-memaccess-invalid");
|
||||
DO_TEST_CAPS_LATEST("hugepages-memaccess");
|
||||
DO_TEST_CAPS_LATEST("hugepages-memaccess2");
|
||||
DO_TEST_PARSE_ERROR("hugepages-memaccess3",
|
||||
QEMU_CAPS_OBJECT_MEMORY_FILE);
|
||||
DO_TEST_PARSE_ERROR_NOCAPS("hugepages-memaccess3");
|
||||
DO_TEST_CAPS_LATEST("hugepages-memaccess3");
|
||||
DO_TEST_CAPS_LATEST("hugepages-nvdimm");
|
||||
DO_TEST_NOCAPS("nosharepages");
|
||||
@ -1907,8 +1906,7 @@ mymain(void)
|
||||
DO_TEST_PARSE_ERROR_NOCAPS("cpu-numa3");
|
||||
DO_TEST_PARSE_ERROR_NOCAPS("cpu-numa-disjoint");
|
||||
DO_TEST("cpu-numa-disjoint", QEMU_CAPS_NUMA);
|
||||
DO_TEST_FAILURE_NOCAPS("cpu-numa-memshared");
|
||||
DO_TEST("cpu-numa-memshared", QEMU_CAPS_OBJECT_MEMORY_FILE);
|
||||
DO_TEST_NOCAPS("cpu-numa-memshared");
|
||||
DO_TEST("cpu-host-model",
|
||||
QEMU_CAPS_DEVICE_PCI_BRIDGE,
|
||||
QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
|
||||
@ -1965,8 +1963,7 @@ mymain(void)
|
||||
DO_TEST_PARSE_ERROR_NOCAPS("cputune-vcpusched-overlap");
|
||||
DO_TEST("cputune-numatune",
|
||||
QEMU_CAPS_KVM,
|
||||
QEMU_CAPS_OBJECT_IOTHREAD,
|
||||
QEMU_CAPS_OBJECT_MEMORY_FILE);
|
||||
QEMU_CAPS_OBJECT_IOTHREAD);
|
||||
DO_TEST("vcpu-placement-static",
|
||||
QEMU_CAPS_KVM,
|
||||
QEMU_CAPS_OBJECT_IOTHREAD);
|
||||
@ -1991,8 +1988,7 @@ mymain(void)
|
||||
DO_TEST_CAPS_LATEST("numatune-hmat");
|
||||
|
||||
DO_TEST_NOCAPS("numatune-auto-nodeset-invalid");
|
||||
DO_TEST("numatune-auto-prefer",
|
||||
QEMU_CAPS_OBJECT_MEMORY_FILE);
|
||||
DO_TEST_NOCAPS("numatune-auto-prefer");
|
||||
DO_TEST_FAILURE_NOCAPS("numatune-static-nodeset-exceed-hostnode");
|
||||
DO_TEST_PARSE_ERROR_NOCAPS("numatune-memnode-nocpu");
|
||||
DO_TEST_PARSE_ERROR_NOCAPS("numatune-memnodes-problematic");
|
||||
@ -2637,18 +2633,15 @@ mymain(void)
|
||||
DO_TEST_PARSE_ERROR_NOCAPS("memory-hotplug-invalid-targetnode");
|
||||
DO_TEST_NOCAPS("memory-hotplug");
|
||||
DO_TEST("memory-hotplug", QEMU_CAPS_DEVICE_PC_DIMM, QEMU_CAPS_NUMA);
|
||||
DO_TEST("memory-hotplug-dimm", QEMU_CAPS_DEVICE_PC_DIMM, QEMU_CAPS_NUMA,
|
||||
QEMU_CAPS_OBJECT_MEMORY_FILE);
|
||||
DO_TEST("memory-hotplug-dimm", QEMU_CAPS_DEVICE_PC_DIMM, QEMU_CAPS_NUMA);
|
||||
DO_TEST_CAPS_LATEST("memory-hotplug-dimm-addr");
|
||||
DO_TEST("memory-hotplug-ppc64-nonuma", QEMU_CAPS_KVM, QEMU_CAPS_DEVICE_PC_DIMM, QEMU_CAPS_NUMA,
|
||||
QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
|
||||
QEMU_CAPS_OBJECT_MEMORY_FILE);
|
||||
QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE);
|
||||
DO_TEST_FULL("memory-hotplug-ppc64-nonuma-abi-update", "",
|
||||
ARG_PARSEFLAGS, VIR_DOMAIN_DEF_PARSE_ABI_UPDATE,
|
||||
ARG_QEMU_CAPS,
|
||||
QEMU_CAPS_KVM, QEMU_CAPS_DEVICE_PC_DIMM,
|
||||
QEMU_CAPS_NUMA, QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
|
||||
QEMU_CAPS_OBJECT_MEMORY_FILE,
|
||||
QEMU_CAPS_LAST,
|
||||
ARG_END);
|
||||
DO_TEST_CAPS_LATEST("memory-hotplug-nvdimm");
|
||||
@ -2662,13 +2655,11 @@ mymain(void)
|
||||
DO_TEST_CAPS_VER("memory-hotplug-nvdimm-readonly", "5.2.0");
|
||||
DO_TEST_CAPS_LATEST("memory-hotplug-nvdimm-readonly");
|
||||
DO_TEST("memory-hotplug-nvdimm-ppc64", QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
|
||||
QEMU_CAPS_OBJECT_MEMORY_FILE,
|
||||
QEMU_CAPS_DEVICE_NVDIMM);
|
||||
DO_TEST_FULL("memory-hotplug-nvdimm-ppc64-abi-update", "",
|
||||
ARG_PARSEFLAGS, VIR_DOMAIN_DEF_PARSE_ABI_UPDATE,
|
||||
ARG_QEMU_CAPS,
|
||||
QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
|
||||
QEMU_CAPS_OBJECT_MEMORY_FILE,
|
||||
QEMU_CAPS_DEVICE_NVDIMM,
|
||||
QEMU_CAPS_LAST,
|
||||
ARG_END);
|
||||
@ -2840,16 +2831,12 @@ mymain(void)
|
||||
DO_TEST_CAPS_LATEST("virtio-options-video-packed");
|
||||
DO_TEST_PARSE_ERROR_NOCAPS("virtio-options-memballoon-freepage-reporting");
|
||||
|
||||
DO_TEST("fd-memory-numa-topology", QEMU_CAPS_OBJECT_MEMORY_FILE,
|
||||
QEMU_CAPS_KVM);
|
||||
DO_TEST("fd-memory-numa-topology2", QEMU_CAPS_OBJECT_MEMORY_FILE,
|
||||
QEMU_CAPS_KVM);
|
||||
DO_TEST("fd-memory-numa-topology3", QEMU_CAPS_OBJECT_MEMORY_FILE,
|
||||
QEMU_CAPS_KVM);
|
||||
DO_TEST("fd-memory-numa-topology", QEMU_CAPS_KVM);
|
||||
DO_TEST("fd-memory-numa-topology2", QEMU_CAPS_KVM);
|
||||
DO_TEST("fd-memory-numa-topology3", QEMU_CAPS_KVM);
|
||||
DO_TEST_CAPS_LATEST("fd-memory-numa-topology4");
|
||||
|
||||
DO_TEST("fd-memory-no-numa-topology", QEMU_CAPS_OBJECT_MEMORY_FILE,
|
||||
QEMU_CAPS_KVM);
|
||||
DO_TEST("fd-memory-no-numa-topology", QEMU_CAPS_KVM);
|
||||
|
||||
DO_TEST_CAPS_LATEST("memfd-memory-numa");
|
||||
DO_TEST_CAPS_LATEST("memfd-memory-default-hugepage");
|
||||
|
@ -657,7 +657,6 @@ mymain(void)
|
||||
DO_TEST_NOCAPS("seclabel-device-multiple");
|
||||
DO_TEST_FULL("seclabel-dynamic-none-relabel", "", WHEN_INACTIVE,
|
||||
ARG_QEMU_CAPS, QEMU_CAPS_DEVICE_CIRRUS_VGA,
|
||||
QEMU_CAPS_OBJECT_MEMORY_FILE,
|
||||
QEMU_CAPS_SPICE, QEMU_CAPS_LAST,
|
||||
ARG_END);
|
||||
DO_TEST_NOCAPS("numad-static-vcpu-no-numatune");
|
||||
@ -926,11 +925,11 @@ mymain(void)
|
||||
DO_TEST_NOCAPS("cpu-numa-no-memory-element");
|
||||
DO_TEST_NOCAPS("cpu-numa-disordered");
|
||||
DO_TEST("cpu-numa-disjoint", QEMU_CAPS_NUMA);
|
||||
DO_TEST("cpu-numa-memshared", QEMU_CAPS_OBJECT_MEMORY_FILE);
|
||||
DO_TEST_NOCAPS("cpu-numa-memshared");
|
||||
|
||||
DO_TEST_NOCAPS("numatune-auto-prefer");
|
||||
DO_TEST("numatune-memnode", QEMU_CAPS_NUMA, QEMU_CAPS_OBJECT_MEMORY_FILE);
|
||||
DO_TEST("numatune-memnode-no-memory", QEMU_CAPS_OBJECT_MEMORY_FILE);
|
||||
DO_TEST("numatune-memnode", QEMU_CAPS_NUMA);
|
||||
DO_TEST_NOCAPS("numatune-memnode-no-memory");
|
||||
DO_TEST("numatune-distances", QEMU_CAPS_NUMA);
|
||||
DO_TEST("numatune-no-vcpu", QEMU_CAPS_NUMA);
|
||||
DO_TEST("numatune-hmat", QEMU_CAPS_NUMA_HMAT);
|
||||
@ -1025,14 +1024,13 @@ mymain(void)
|
||||
DO_TEST_CAPS_ARCH_LATEST("aarch64-features-sve", "aarch64");
|
||||
|
||||
DO_TEST("memory-hotplug-ppc64-nonuma", QEMU_CAPS_KVM, QEMU_CAPS_DEVICE_PC_DIMM, QEMU_CAPS_NUMA,
|
||||
QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
|
||||
QEMU_CAPS_OBJECT_MEMORY_FILE);
|
||||
QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE);
|
||||
DO_TEST_FULL("memory-hotplug-ppc64-nonuma-abi-update", "", WHEN_BOTH,
|
||||
ARG_PARSEFLAGS, VIR_DOMAIN_DEF_PARSE_ABI_UPDATE,
|
||||
ARG_QEMU_CAPS,
|
||||
QEMU_CAPS_KVM, QEMU_CAPS_DEVICE_PC_DIMM,
|
||||
QEMU_CAPS_NUMA, QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
|
||||
QEMU_CAPS_OBJECT_MEMORY_FILE, QEMU_CAPS_LAST, ARG_END);
|
||||
QEMU_CAPS_LAST, ARG_END);
|
||||
DO_TEST_NOCAPS("memory-hotplug");
|
||||
DO_TEST("memory-hotplug-dimm", QEMU_CAPS_DEVICE_PC_DIMM);
|
||||
DO_TEST_CAPS_LATEST("memory-hotplug-dimm-addr");
|
||||
@ -1044,13 +1042,11 @@ mymain(void)
|
||||
DO_TEST("memory-hotplug-nvdimm-readonly", QEMU_CAPS_DEVICE_NVDIMM,
|
||||
QEMU_CAPS_DEVICE_NVDIMM_UNARMED);
|
||||
DO_TEST("memory-hotplug-nvdimm-ppc64", QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
|
||||
QEMU_CAPS_OBJECT_MEMORY_FILE,
|
||||
QEMU_CAPS_DEVICE_NVDIMM);
|
||||
DO_TEST_FULL("memory-hotplug-nvdimm-ppc64-abi-update", "", WHEN_BOTH,
|
||||
ARG_PARSEFLAGS, VIR_DOMAIN_DEF_PARSE_ABI_UPDATE,
|
||||
ARG_QEMU_CAPS,
|
||||
QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
|
||||
QEMU_CAPS_OBJECT_MEMORY_FILE,
|
||||
QEMU_CAPS_DEVICE_NVDIMM,
|
||||
QEMU_CAPS_LAST, ARG_END);
|
||||
DO_TEST_CAPS_LATEST("memory-hotplug-virtio-pmem");
|
||||
@ -1087,16 +1083,12 @@ mymain(void)
|
||||
|
||||
DO_TEST_CAPS_LATEST("virtio-options");
|
||||
|
||||
DO_TEST("fd-memory-numa-topology", QEMU_CAPS_OBJECT_MEMORY_FILE,
|
||||
QEMU_CAPS_KVM);
|
||||
DO_TEST("fd-memory-numa-topology2", QEMU_CAPS_OBJECT_MEMORY_FILE,
|
||||
QEMU_CAPS_KVM);
|
||||
DO_TEST("fd-memory-numa-topology3", QEMU_CAPS_OBJECT_MEMORY_FILE,
|
||||
QEMU_CAPS_KVM);
|
||||
DO_TEST("fd-memory-numa-topology", QEMU_CAPS_KVM);
|
||||
DO_TEST("fd-memory-numa-topology2", QEMU_CAPS_KVM);
|
||||
DO_TEST("fd-memory-numa-topology3", QEMU_CAPS_KVM);
|
||||
DO_TEST_CAPS_LATEST("fd-memory-numa-topology4");
|
||||
|
||||
DO_TEST("fd-memory-no-numa-topology", QEMU_CAPS_OBJECT_MEMORY_FILE,
|
||||
QEMU_CAPS_KVM);
|
||||
DO_TEST("fd-memory-no-numa-topology", QEMU_CAPS_KVM);
|
||||
|
||||
DO_TEST_CAPS_LATEST("memfd-memory-numa");
|
||||
DO_TEST_CAPS_LATEST("memfd-memory-default-hugepage");
|
||||
|
Loading…
x
Reference in New Issue
Block a user