[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 2/2] numa: prevent usage of -M memory-backend and -numa memde
From: |
Paolo Bonzini |
Subject: |
Re: [PATCH 2/2] numa: prevent usage of -M memory-backend and -numa memdev at the same time |
Date: |
Thu, 21 May 2020 15:46:44 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0 |
On 11/05/20 16:11, Igor Mammedov wrote:
> Options -M memory-backend and -numa memdev are mutually exclusive,
> and if used together, it might lead to a crash in the worst case.
> For example when the same backend is used with these options together:
> -m 4G \
> -object memory-backend-ram,id=mem0,size=4G \
> -M pc,memory-backend=mem0 \
> -numa node,memdev=mem0
> QEMU will abort with:
> exec.c:2006: qemu_ram_set_idstr: Assertion `!new_block->idstr[0]' failed.
>
> and following backtrace:
> abort ()
> qemu_ram_set_idstr ()
> vmstate_register_ram ()
> vmstate_register_ram_global ()
> machine_consume_memdev ()
> numa_init_memdev_container ()
> numa_complete_configuration ()
> machine_run_board_init ()
>
> add a check to error out in case the user tries to use both options at
> the same time.
>
> Signed-off-by: Igor Mammedov <address@hidden>
> ---
> hw/core/numa.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/hw/core/numa.c b/hw/core/numa.c
> index 316bc50d75..5f81900f88 100644
> --- a/hw/core/numa.c
> +++ b/hw/core/numa.c
> @@ -757,6 +757,11 @@ void numa_complete_configuration(MachineState *ms)
> }
>
> if (!numa_uses_legacy_mem() && mc->default_ram_id) {
> + if (ms->ram_memdev_id) {
> + error_report("'-machine memory-backend' and '-numa memdev'"
> + " properties are mutually exclusive");
> + exit(1);
> + }
> ms->ram = g_new(MemoryRegion, 1);
> memory_region_init(ms->ram, OBJECT(ms), mc->default_ram_id,
> ram_size);
>
Queued, thanks.
Paolo