On Fri, Oct 02, 2020 at 11:31:32AM -0400, Masayoshi Mizuma wrote: > Hello Jan, and Michal, > > commit: 88957116c9 ("qemu: Use memory-backend-* for regular guest memory") > gets > the system memory sharable without numa config. > The qemu options with the patch will be like as: > > -machine > pc-q35-5.2,accel=kvm,usb=off,vmport=off,smm=on,dump-guest-core=off,memory-backend=pc.ram > \ > -object > memory-backend-file,id=pc.ram,mem-path=/var/lib/libvirt/qemu/ram/2-Test/pc.ram,share=yes,size=17179869184 > \ > > So, we can remove the numa restriction of virtiofs, right? > The patch to remove that is the bottom of this email. > > And, 88957116c9 seems to introduce another restriction which we > cannot create numa nodes on the machine. I got the following > message when I set the numa config and started the VM: > > 2020-10-02T00:31:46.780374Z qemu-system-x86_64: '-machine memory-backend' > and '-numa memdev' properties are mutually exclusive
It seems that this isn't a restriction for virtiofs. It's a bug introduced by commit: 88957116c9. <numa> element doesn't work regardless of virtiofs config... - Masa > > qemu rejects the -machine memory-backend' and '-numa memdev' because it > may cause crash. commit: ea81f98bce ("numa: prevent usage of -M memory-backend > and -numa memdev at the same time") introduced the check. > > Do you have any ideas to solve above? > > =================================================================== > From: Masayoshi Mizuma <m.miz...@jp.fujitsu.com> > Date: Fri, 2 Oct 2020 10:50:06 -0400 > Subject: [PATCH] qemu: Remove the number of numa restriction for virtiofs > > virtiofs requires at least one numa node to access the system > memory as shared memory. > > 88957116c9 ("qemu: Use memory-backend-* for regular guest memory") > gets the system memory sharable without the numa config. > > Let's remove the number of numa restriction for virtiofs. > > Signed-off-by: Masayoshi Mizuma <m.miz...@jp.fujitsu.com> > --- > src/qemu/qemu_validate.c | 44 ++++++++++++++++++++-------------------- > 1 file changed, 22 insertions(+), 22 deletions(-) > > diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c > index a212605579..b5372e7499 100644 > --- a/src/qemu/qemu_validate.c > +++ b/src/qemu/qemu_validate.c > @@ -3475,36 +3475,36 @@ qemuValidateDomainDefVirtioFSSharedMemory(const > virDomainDef *def) > size_t numa_nodes = virDomainNumaGetNodeCount(def->numa); > size_t i; > > - if (numa_nodes == 0) { > + if ((!numa_nodes) && (def->mem.access != > VIR_DOMAIN_MEMORY_ACCESS_SHARED)) { > virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", > - _("virtiofs requires one or more NUMA nodes")); > + _("virtiofs requires shared memory")); > return -1; > - } > - > - for (i = 0; i < numa_nodes; i++) { > - virDomainMemoryAccess node_access = > - virDomainNumaGetNodeMemoryAccessMode(def->numa, i); > + } else { > + for (i = 0; i < numa_nodes; i++) { > + virDomainMemoryAccess node_access = > + virDomainNumaGetNodeMemoryAccessMode(def->numa, i); > > - switch (node_access) { > - case VIR_DOMAIN_MEMORY_ACCESS_DEFAULT: > - if (def->mem.access != VIR_DOMAIN_MEMORY_ACCESS_SHARED) { > + switch (node_access) { > + case VIR_DOMAIN_MEMORY_ACCESS_DEFAULT: > + if (def->mem.access != VIR_DOMAIN_MEMORY_ACCESS_SHARED) { > + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", > + _("virtiofs requires shared memory")); > + return -1; > + } > + break; > + case VIR_DOMAIN_MEMORY_ACCESS_SHARED: > + break; > + case VIR_DOMAIN_MEMORY_ACCESS_PRIVATE: > virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", > _("virtiofs requires shared memory")); > return -1; > - } > - break; > - case VIR_DOMAIN_MEMORY_ACCESS_SHARED: > - break; > - case VIR_DOMAIN_MEMORY_ACCESS_PRIVATE: > - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", > - _("virtiofs requires shared memory")); > - return -1; > > - case VIR_DOMAIN_MEMORY_ACCESS_LAST: > - default: > - virReportEnumRangeError(virDomainMemoryAccess, node_access); > - return -1; > + case VIR_DOMAIN_MEMORY_ACCESS_LAST: > + default: > + virReportEnumRangeError(virDomainMemoryAccess, node_access); > + return -1; > > + } > } > } > return 0; > -- > 2.27.0 > > Thanks, > Masa >