[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 2/2] Add -mem-shared option
From: |
Eduardo Habkost |
Subject: |
Re: [PATCH 2/2] Add -mem-shared option |
Date: |
Thu, 28 Nov 2019 13:14:57 -0300 |
+Igor
On Thu, Nov 28, 2019 at 06:15:18PM +0400, Marc-André Lureau wrote:
> Add an option to simplify shared memory / vhost-user setup.
>
> Currently, using vhost-user 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
>
> As there is no other way to allocate shareable RAM, afaik.
>
> -mem-shared aims to have a simple way instead: -m 4G -mem-shared
>
> Signed-off-by: Marc-André Lureau <address@hidden>
> ---
[...]
> diff --git a/hw/core/numa.c b/hw/core/numa.c
> index e3332a984f..6f72cddb1c 100644
> --- a/hw/core/numa.c
> +++ b/hw/core/numa.c
> @@ -493,7 +493,8 @@ static void allocate_system_memory_nonnuma(MemoryRegion
> *mr, Object *owner,
> if (mem_path) {
> #ifdef __linux__
> Error *err = NULL;
> - memory_region_init_ram_from_file(mr, owner, name, ram_size, 0, 0,
> + memory_region_init_ram_from_file(mr, owner, name, ram_size, 0,
> + mem_shared ? RAM_SHARED : 0,
> mem_path, &err);
> if (err) {
> error_report_err(err);
> @@ -513,6 +514,19 @@ static void allocate_system_memory_nonnuma(MemoryRegion
> *mr, Object *owner,
> #else
> fprintf(stderr, "-mem-path not supported on this host\n");
> exit(1);
> +#endif
> + } else if (mem_shared) {
> +#ifdef CONFIG_POSIX
> + Error *err = NULL;
> + memory_region_init_ram_from_file(mr, owner, NULL, ram_size, 0,
> + RAM_SHARED, NULL, &err);
> + if (err) {
> + error_report_err(err);
> + exit(1);
> + }
> +#else
> + fprintf(stderr, "-mem-shared not supported on this host\n");
> + exit(1);
> #endif
> } else {
> memory_region_init_ram_nomigrate(mr, owner, name, ram_size,
> &error_fatal);
I'd really like make allocate_system_memory_nonnuma() just create
a memory backend object. This way non-NUMA and NUMA
configuration would be able to use exactly the same set of
options.
I have the impression we tried to do this in the past. Igor, do
you remember if we did?
--
Eduardo
- [PATCH 0/2] RFC: add -mem-shared option, Marc-André Lureau, 2019/11/28
- [PATCH 1/2] memfd: add qemu_memfd_open(), Marc-André Lureau, 2019/11/28
- [PATCH 2/2] Add -mem-shared option, Marc-André Lureau, 2019/11/28
- Re: [PATCH 2/2] Add -mem-shared option,
Eduardo Habkost <=
- Re: [PATCH 2/2] Add -mem-shared option, Igor Mammedov, 2019/11/28
- Re: [PATCH 2/2] Add -mem-shared option, Marc-André Lureau, 2019/11/28
- Re: [PATCH 2/2] Add -mem-shared option, Igor Mammedov, 2019/11/29
- Re: [PATCH 2/2] Add -mem-shared option, Paolo Bonzini, 2019/11/29
- Re: [PATCH 2/2] Add -mem-shared option, Markus Armbruster, 2019/11/29
- Re: [PATCH 2/2] Add -mem-shared option, Eduardo Habkost, 2019/11/29
- Re: [PATCH 2/2] Add -mem-shared option, Igor Mammedov, 2019/11/29
- Re: [PATCH 2/2] Add -mem-shared option, Paolo Bonzini, 2019/11/29
Re: [PATCH 0/2] RFC: add -mem-shared option, Eduardo Habkost, 2019/11/28