[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v6 06/79] vl.c: move -m parsing after memory backends has been pr
From: |
Igor Mammedov |
Subject: |
[PATCH v6 06/79] vl.c: move -m parsing after memory backends has been processed |
Date: |
Wed, 19 Feb 2020 11:08:40 -0500 |
It will be possible for main RAM to come from memory-backend
and we should check that size specified in -m matches the size
of the backend and [MachineState::]ram_size also matches
backend's size.
However -m parsing (set_memory_options()) happens before backends
are intialized (object_create_delayed()) which complicates it.
Consolidate set_memory_options() and assigning parsed results to
current_machine after backends are initialized, so it would be
possible access the initialized backend instance to compare
sizes.
This patch only consolidates scattered places touching ram_size
within vl.c. And follow up patch will integrate backend handling
to set_memory_options().
Signed-off-by: Igor Mammedov <address@hidden>
---
CC: address@hidden
---
vl.c | 27 ++++++++++++++-------------
1 file changed, 14 insertions(+), 13 deletions(-)
diff --git a/vl.c b/vl.c
index 2103804c52..72ffc06f2f 100644
--- a/vl.c
+++ b/vl.c
@@ -2655,6 +2655,14 @@ static void set_memory_options(uint64_t *ram_slots,
ram_addr_t *maxram_size,
exit(EXIT_FAILURE);
}
+ if (!xen_enabled()) {
+ /* On 32-bit hosts, QEMU is limited by virtual address space */
+ if (ram_size > (2047 << 20) && HOST_LONG_BITS == 32) {
+ error_report("at most 2047 MB RAM can be simulated");
+ exit(1);
+ }
+ }
+
loc_pop(&loc);
}
@@ -3819,8 +3827,6 @@ int main(int argc, char **argv, char **envp)
machine_class = select_machine();
object_set_machine_compat_props(machine_class->compat_props);
- set_memory_options(&ram_slots, &maxram_size, machine_class);
-
os_daemonize();
rcu_disable_atfork();
@@ -4122,9 +4128,6 @@ int main(int argc, char **argv, char **envp)
machine_opts = qemu_get_machine_opts();
qemu_opt_foreach(machine_opts, machine_set_property, current_machine,
&error_fatal);
- current_machine->ram_size = ram_size;
- current_machine->maxram_size = maxram_size;
- current_machine->ram_slots = ram_slots;
/*
* Note: uses machine properties such as kernel-irqchip, must run
@@ -4235,14 +4238,6 @@ int main(int argc, char **argv, char **envp)
tpm_init();
- if (!xen_enabled()) {
- /* On 32-bit hosts, QEMU is limited by virtual address space */
- if (ram_size > (2047 << 20) && HOST_LONG_BITS == 32) {
- error_report("at most 2047 MB RAM can be simulated");
- exit(1);
- }
- }
-
blk_mig_init();
ram_mig_init();
dirty_bitmap_mig_init();
@@ -4287,6 +4282,12 @@ int main(int argc, char **argv, char **envp)
if (cpu_option) {
current_machine->cpu_type = parse_cpu_option(cpu_option);
}
+
+ set_memory_options(&ram_slots, &maxram_size, machine_class);
+ current_machine->ram_size = ram_size;
+ current_machine->maxram_size = maxram_size;
+ current_machine->ram_slots = ram_slots;
+
parse_numa_opts(current_machine);
if (machine_class->default_ram_id && current_machine->ram_size &&
--
2.18.1
- [PATCH v6 00/79] refactor main RAM allocation to use hostmem backend, Igor Mammedov, 2020/02/19
- [PATCH v6 01/79] numa: remove deprecated -mem-path fallback to anonymous RAM, Igor Mammedov, 2020/02/19
- [PATCH v6 02/79] machine: introduce memory-backend property, Igor Mammedov, 2020/02/19
- [PATCH v6 06/79] vl.c: move -m parsing after memory backends has been processed,
Igor Mammedov <=
- [PATCH v6 05/79] initialize MachineState::ram in NUMA case, Igor Mammedov, 2020/02/19
- [PATCH v6 08/79] alpha/dp264: use memdev for RAM, Igor Mammedov, 2020/02/19
- [PATCH v6 03/79] machine: alias -mem-path and -mem-prealloc into memory-foo backend, Igor Mammedov, 2020/02/19
- [PATCH v6 04/79] machine: introduce convenience MachineState::ram, Igor Mammedov, 2020/02/19
- [PATCH v6 10/79] arm/aspeed: use memdev for RAM, Igor Mammedov, 2020/02/19
- [PATCH v6 07/79] vl.c: ensure that ram_size matches size of machine.memory-backend, Igor Mammedov, 2020/02/19
- [PATCH v6 09/79] arm/aspeed: actually check RAM size, Igor Mammedov, 2020/02/19
- [PATCH v6 12/79] arm/cubieboard: use memdev for RAM, Igor Mammedov, 2020/02/19
- [PATCH v6 13/79] arm/digic_boards: use memdev for RAM, Igor Mammedov, 2020/02/19
- [PATCH v6 14/79] arm/highbank: use memdev for RAM, Igor Mammedov, 2020/02/19