On 28/11/19 17:10, Eduardo Habkost wrote: > On Thu, Nov 28, 2019 at 06:15:16PM +0400, Marc-André Lureau wrote: >> Hi, >> >> Setting up shared memory for vhost-user is a bit complicated from >> command line, as it requires NUMA setup such as: m 4G -object >> memory-backend-file,id=mem,size=4G,mem-path=/dev/shm,share=on -numa >> node,memdev=mem. >> >> Instead, I suggest to add a -mem-shared option for non-numa setups, >> that will make the -mem-path or anonymouse memory shareable. > > Can we make this be a "-m" option? > > Or, even better: can we make "-m" options be automatically > translated to memory-backend-* options somehow? >
The original idea was to always support one NUMA node, so that you could do "-numa node,memdev=..." to specify a memory backend with -object. However, this is not possible anymore since if (!mc->cpu_index_to_instance_props || !mc->get_default_cpu_node_id) { error_setg(errp, "NUMA is not supported by this machine-type"); return; } has been added to hw/core/numa.c. Therefore, I think instead of -mem-shared we should add a "-m memdev=..." option. This option: * would be mutually exclusive with both -mem-path * would be handled from allocate_system_memory_nonnuma. * could be mutually exclusive "-numa node", or could just be mutually exclusive with "-numa node,memdev=..." (the logical conclusion of that however would be an undeprecation of "-numa node,mem=...", so that has to be taken into account as well). Paolo