* [Qemu-devel] [PATCH] Introduce machine specific default memory size @ 2015-03-03 12:54 Nikunj A Dadhania 2015-03-04 7:24 ` Markus Armbruster 0 siblings, 1 reply; 10+ messages in thread From: Nikunj A Dadhania @ 2015-03-03 12:54 UTC (permalink / raw) To: qemu-devel; +Cc: qemu-ppc, nikunj Qemu default memory of 128MB is not enough to boot spapr guest. Introduce a property in the machine class to override the default memory size enforced by qemu. Signed-off-by: Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> --- hw/ppc/spapr.c | 1 + include/hw/boards.h | 1 + include/hw/ppc/spapr.h | 3 +++ vl.c | 12 ++++++++++++ 4 files changed, 17 insertions(+) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 30de25d..857035e 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -1686,6 +1686,7 @@ static void spapr_machine_class_init(ObjectClass *oc, void *data) mc->max_cpus = MAX_CPUS; mc->no_parallel = 1; mc->default_boot_order = NULL; + mc->default_ram_size = SPAPR_DEFAULT_RAM_SIZE; mc->kvm_type = spapr_kvm_type; mc->has_dynamic_sysbus = true; diff --git a/include/hw/boards.h b/include/hw/boards.h index e0a6790..9fe264f 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -106,6 +106,7 @@ struct MachineClass { const char *default_display; GlobalProperty *compat_props; const char *hw_version; + ram_addr_t default_ram_size; HotplugHandler *(*get_hotplug_handler)(MachineState *machine, DeviceState *dev); diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h index 749daf4..2f83458 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h @@ -443,6 +443,9 @@ int spapr_rtas_device_tree_setup(void *fdt, hwaddr rtas_addr, #define SPAPR_VIO_BASE_LIOBN 0x00000000 #define SPAPR_PCI_BASE_LIOBN 0x80000000 +/* Default to 1GB guest ram_size */ +#define SPAPR_DEFAULT_RAM_SIZE (1ULL << 30) + #define RTAS_ERROR_LOG_MAX 2048 typedef struct sPAPRTCETable sPAPRTCETable; diff --git a/vl.c b/vl.c index eb89d62..dd56754 100644 --- a/vl.c +++ b/vl.c @@ -4053,6 +4053,18 @@ int main(int argc, char **argv, char **envp) exit(1); } + if (machine_class->default_ram_size && ram_size < machine_class->default_ram_size) { + fprintf(stderr, "qemu: %s guest ram size defaulting to %ld MB\n", + machine_class->name, + machine_class->default_ram_size / (1024 * 1024)); + ram_size = machine_class->default_ram_size; + + /* if maxram size is not provided in options use machine default */ + if (maxram_size == default_ram_size) { + maxram_size = machine_class->default_ram_size; + } + } + /* store value for the future use */ qemu_opt_set_number(qemu_find_opts_singleton("memory"), "size", ram_size); -- 1.8.3.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PATCH] Introduce machine specific default memory size 2015-03-03 12:54 [Qemu-devel] [PATCH] Introduce machine specific default memory size Nikunj A Dadhania @ 2015-03-04 7:24 ` Markus Armbruster 2015-03-04 8:30 ` Nikunj A Dadhania 0 siblings, 1 reply; 10+ messages in thread From: Markus Armbruster @ 2015-03-04 7:24 UTC (permalink / raw) To: Nikunj A Dadhania; +Cc: qemu-ppc, qemu-devel Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> writes: > Qemu default memory of 128MB is not enough to boot spapr > guest. Introduce a property in the machine class to override the > default memory size enforced by qemu. > > Signed-off-by: Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> > --- > hw/ppc/spapr.c | 1 + > include/hw/boards.h | 1 + > include/hw/ppc/spapr.h | 3 +++ > vl.c | 12 ++++++++++++ > 4 files changed, 17 insertions(+) > > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c > index 30de25d..857035e 100644 > --- a/hw/ppc/spapr.c > +++ b/hw/ppc/spapr.c > @@ -1686,6 +1686,7 @@ static void spapr_machine_class_init(ObjectClass *oc, void *data) > mc->max_cpus = MAX_CPUS; > mc->no_parallel = 1; > mc->default_boot_order = NULL; > + mc->default_ram_size = SPAPR_DEFAULT_RAM_SIZE; > mc->kvm_type = spapr_kvm_type; > mc->has_dynamic_sysbus = true; > > diff --git a/include/hw/boards.h b/include/hw/boards.h > index e0a6790..9fe264f 100644 > --- a/include/hw/boards.h > +++ b/include/hw/boards.h > @@ -106,6 +106,7 @@ struct MachineClass { > const char *default_display; > GlobalProperty *compat_props; > const char *hw_version; > + ram_addr_t default_ram_size; > > HotplugHandler *(*get_hotplug_handler)(MachineState *machine, > DeviceState *dev); > diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h > index 749daf4..2f83458 100644 > --- a/include/hw/ppc/spapr.h > +++ b/include/hw/ppc/spapr.h > @@ -443,6 +443,9 @@ int spapr_rtas_device_tree_setup(void *fdt, hwaddr rtas_addr, > #define SPAPR_VIO_BASE_LIOBN 0x00000000 > #define SPAPR_PCI_BASE_LIOBN 0x80000000 > > +/* Default to 1GB guest ram_size */ > +#define SPAPR_DEFAULT_RAM_SIZE (1ULL << 30) > + > #define RTAS_ERROR_LOG_MAX 2048 > > typedef struct sPAPRTCETable sPAPRTCETable; > diff --git a/vl.c b/vl.c > index eb89d62..dd56754 100644 > --- a/vl.c > +++ b/vl.c > @@ -4053,6 +4053,18 @@ int main(int argc, char **argv, char **envp) > exit(1); > } > > + if (machine_class->default_ram_size && ram_size < machine_class->default_ram_size) { > + fprintf(stderr, "qemu: %s guest ram size defaulting to %ld MB\n", > + machine_class->name, > + machine_class->default_ram_size / (1024 * 1024)); If the user explicitly asks for something, we either provide it silently, or we error out. This does neither. Why? > + ram_size = machine_class->default_ram_size; > + > + /* if maxram size is not provided in options use machine default */ > + if (maxram_size == default_ram_size) { > + maxram_size = machine_class->default_ram_size; > + } > + } > + > /* store value for the future use */ > qemu_opt_set_number(qemu_find_opts_singleton("memory"), "size", ram_size); Does not apply to master, please name your prerequisite patches or rebase. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PATCH] Introduce machine specific default memory size 2015-03-04 7:24 ` Markus Armbruster @ 2015-03-04 8:30 ` Nikunj A Dadhania 2015-03-04 8:59 ` Thomas Huth 2015-03-04 11:11 ` [Qemu-devel] [Qemu-ppc] " Nikunj A Dadhania 0 siblings, 2 replies; 10+ messages in thread From: Nikunj A Dadhania @ 2015-03-04 8:30 UTC (permalink / raw) To: Markus Armbruster; +Cc: qemu-ppc, qemu-devel Markus Armbruster <armbru@redhat.com> writes: > Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> writes: > >> diff --git a/vl.c b/vl.c >> index eb89d62..dd56754 100644 >> --- a/vl.c >> +++ b/vl.c >> @@ -4053,6 +4053,18 @@ int main(int argc, char **argv, char **envp) >> exit(1); >> } >> >> + if (machine_class->default_ram_size && ram_size < machine_class->default_ram_size) { >> + fprintf(stderr, "qemu: %s guest ram size defaulting to %ld MB\n", >> + machine_class->name, >> + machine_class->default_ram_size / (1024 * 1024)); > > If the user explicitly asks for something, we either provide it > silently, or we error out. This does neither. Why? In case the user has provided memory not enough to boot the machine, I could error out. My idea was to have a sane default which is provided by the machine. Initially, I had just "ram_size == default_ram_size", but then it was allowing "-m 128M" to go through. And the VM would not boot. This can as well be converted to an error report and fail here to boot the VM. > >> + ram_size = machine_class->default_ram_size; >> + >> + /* if maxram size is not provided in options use machine default */ >> + if (maxram_size == default_ram_size) { >> + maxram_size = machine_class->default_ram_size; >> + } >> + } >> + >> /* store value for the future use */ >> qemu_opt_set_number(qemu_find_opts_singleton("memory"), "size", ram_size); > > Does not apply to master, please name your prerequisite patches or > rebase. Rebased patch: Introduce machine specific default memory size Qemu default memory of 128MB is not enough to boot sPAPR guest. Introduce a member in the machine class to override the default memory size enforced by qemu. Signed-off-by: Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 23cde20..f6b1137 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -1738,6 +1738,7 @@ static void spapr_machine_class_init(ObjectClass *oc, void *data) mc->max_cpus = MAX_CPUS; mc->no_parallel = 1; mc->default_boot_order = NULL; + mc->default_ram_size = SPAPR_DEFAULT_RAM_SIZE; mc->kvm_type = spapr_kvm_type; mc->has_dynamic_sysbus = true; diff --git a/include/hw/boards.h b/include/hw/boards.h index 3ddc449..b2b4698 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -108,6 +108,7 @@ struct MachineClass { const char *default_display; GlobalProperty *compat_props; const char *hw_version; + ram_addr_t default_ram_size; HotplugHandler *(*get_hotplug_handler)(MachineState *machine, DeviceState *dev); diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h index 716bff4..d401dd0 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h @@ -444,6 +444,9 @@ int spapr_rtas_device_tree_setup(void *fdt, hwaddr rtas_addr, #define SPAPR_VIO_BASE_LIOBN 0x00000000 #define SPAPR_PCI_BASE_LIOBN 0x80000000 +/* Default to 1GB guest ram_size */ +#define SPAPR_DEFAULT_RAM_SIZE (1ULL << 30) + #define RTAS_ERROR_LOG_MAX 2048 typedef struct sPAPRTCETable sPAPRTCETable; diff --git a/vl.c b/vl.c index 801d487..4519ccc 100644 --- a/vl.c +++ b/vl.c @@ -2684,6 +2684,18 @@ static void set_memory_options(uint64_t *ram_slots, ram_addr_t *maxram_size) exit(EXIT_FAILURE); } + if (machine_class->default_ram_size && ram_size < machine_class->default_ram_size) { + fprintf(stderr, "qemu: %s guest ram size defaulting to %ld MB\n", + machine_class->name, + machine_class->default_ram_size / (1024 * 1024)); + ram_size = machine_class->default_ram_size; + + /* if maxram size is not provided in options use machine default */ + if (maxram_size == default_ram_size) { + maxram_size = machine_class->default_ram_size; + } + } + /* store value for the future use */ qemu_opt_set_number(opts, "size", ram_size, &error_abort); *maxram_size = ram_size; ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PATCH] Introduce machine specific default memory size 2015-03-04 8:30 ` Nikunj A Dadhania @ 2015-03-04 8:59 ` Thomas Huth 2015-03-04 9:04 ` Nikunj A Dadhania 2015-03-04 11:11 ` [Qemu-devel] [Qemu-ppc] " Nikunj A Dadhania 1 sibling, 1 reply; 10+ messages in thread From: Thomas Huth @ 2015-03-04 8:59 UTC (permalink / raw) To: Nikunj A Dadhania; +Cc: qemu-ppc, Markus Armbruster, qemu-devel On Wed, 04 Mar 2015 14:00:17 +0530 Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> wrote: > Markus Armbruster <armbru@redhat.com> writes: > > > Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> writes: > > > >> diff --git a/vl.c b/vl.c > >> index eb89d62..dd56754 100644 > >> --- a/vl.c > >> +++ b/vl.c > >> @@ -4053,6 +4053,18 @@ int main(int argc, char **argv, char **envp) > >> exit(1); > >> } > >> > >> + if (machine_class->default_ram_size && ram_size < machine_class->default_ram_size) { > >> + fprintf(stderr, "qemu: %s guest ram size defaulting to %ld MB\n", > >> + machine_class->name, > >> + machine_class->default_ram_size / (1024 * 1024)); > > > > If the user explicitly asks for something, we either provide it > > silently, or we error out. This does neither. Why? > > In case the user has provided memory not enough to boot the machine, I > could error out. My idea was to have a sane default which is provided by > the machine. > > Initially, I had just "ram_size == default_ram_size", but then it was > allowing "-m 128M" to go through. And the VM would not boot. > > This can as well be converted to an error report and fail here to boot > the VM. What does exactly fail with 128MB? Linux? SLOF? IIRC, a couple of years ago, 128MB were enough to boot a Linux guest in the spapr machine... Thomas ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PATCH] Introduce machine specific default memory size 2015-03-04 8:59 ` Thomas Huth @ 2015-03-04 9:04 ` Nikunj A Dadhania 2015-03-04 9:19 ` Thomas Huth 0 siblings, 1 reply; 10+ messages in thread From: Nikunj A Dadhania @ 2015-03-04 9:04 UTC (permalink / raw) To: Thomas Huth; +Cc: qemu-ppc, Markus Armbruster, qemu-devel Thomas Huth <thuth@linux.vnet.ibm.com> writes: > On Wed, 04 Mar 2015 14:00:17 +0530 > Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> wrote: > >> Markus Armbruster <armbru@redhat.com> writes: >> >> > Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> writes: >> > >> >> diff --git a/vl.c b/vl.c >> >> index eb89d62..dd56754 100644 >> >> --- a/vl.c >> >> +++ b/vl.c >> >> @@ -4053,6 +4053,18 @@ int main(int argc, char **argv, char **envp) >> >> exit(1); >> >> } >> >> >> >> + if (machine_class->default_ram_size && ram_size < machine_class->default_ram_size) { >> >> + fprintf(stderr, "qemu: %s guest ram size defaulting to %ld MB\n", >> >> + machine_class->name, >> >> + machine_class->default_ram_size / (1024 * 1024)); >> > >> > If the user explicitly asks for something, we either provide it >> > silently, or we error out. This does neither. Why? >> >> In case the user has provided memory not enough to boot the machine, I >> could error out. My idea was to have a sane default which is provided by >> the machine. >> >> Initially, I had just "ram_size == default_ram_size", but then it was >> allowing "-m 128M" to go through. And the VM would not boot. >> >> This can as well be converted to an error report and fail here to boot >> the VM. > > What does exactly fail with 128MB? Linux? Linux kernel, and not much info as well on the console. Regards Nikunj ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PATCH] Introduce machine specific default memory size 2015-03-04 9:04 ` Nikunj A Dadhania @ 2015-03-04 9:19 ` Thomas Huth 2015-03-04 9:29 ` Nikunj A Dadhania 0 siblings, 1 reply; 10+ messages in thread From: Thomas Huth @ 2015-03-04 9:19 UTC (permalink / raw) To: Nikunj A Dadhania; +Cc: qemu-ppc, Markus Armbruster, qemu-devel On Wed, 04 Mar 2015 14:34:27 +0530 Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> wrote: > Thomas Huth <thuth@linux.vnet.ibm.com> writes: > > > On Wed, 04 Mar 2015 14:00:17 +0530 > > Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> wrote: > > > >> Markus Armbruster <armbru@redhat.com> writes: > >> > >> > Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> writes: > >> > > >> >> diff --git a/vl.c b/vl.c > >> >> index eb89d62..dd56754 100644 > >> >> --- a/vl.c > >> >> +++ b/vl.c > >> >> @@ -4053,6 +4053,18 @@ int main(int argc, char **argv, char **envp) > >> >> exit(1); > >> >> } > >> >> > >> >> + if (machine_class->default_ram_size && ram_size < machine_class->default_ram_size) { > >> >> + fprintf(stderr, "qemu: %s guest ram size defaulting to %ld MB\n", > >> >> + machine_class->name, > >> >> + machine_class->default_ram_size / (1024 * 1024)); > >> > > >> > If the user explicitly asks for something, we either provide it > >> > silently, or we error out. This does neither. Why? > >> > >> In case the user has provided memory not enough to boot the machine, I > >> could error out. My idea was to have a sane default which is provided by > >> the machine. > >> > >> Initially, I had just "ram_size == default_ram_size", but then it was > >> allowing "-m 128M" to go through. And the VM would not boot. > >> > >> This can as well be converted to an error report and fail here to boot > >> the VM. > > > > What does exactly fail with 128MB? Linux? > > Linux kernel, and not much info as well on the console. Ok, but then I think it should still be possible to specify -m 128M on the command line - in case the user wants to run an older Linux which still works fine with that amount of memory. Thomas ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PATCH] Introduce machine specific default memory size 2015-03-04 9:19 ` Thomas Huth @ 2015-03-04 9:29 ` Nikunj A Dadhania 2015-03-04 9:39 ` Thomas Huth 0 siblings, 1 reply; 10+ messages in thread From: Nikunj A Dadhania @ 2015-03-04 9:29 UTC (permalink / raw) To: Thomas Huth; +Cc: qemu-ppc, Markus Armbruster, qemu-devel Thomas Huth <thuth@linux.vnet.ibm.com> writes: > On Wed, 04 Mar 2015 14:34:27 +0530 > Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> wrote: > >> Thomas Huth <thuth@linux.vnet.ibm.com> writes: >> >> > On Wed, 04 Mar 2015 14:00:17 +0530 >> > Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> wrote: >> > >> >> Markus Armbruster <armbru@redhat.com> writes: >> >> >> >> > Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> writes: >> >> > >> >> >> diff --git a/vl.c b/vl.c >> >> >> index eb89d62..dd56754 100644 >> >> >> --- a/vl.c >> >> >> +++ b/vl.c >> >> >> @@ -4053,6 +4053,18 @@ int main(int argc, char **argv, char **envp) >> >> >> exit(1); >> >> >> } >> >> >> >> >> >> + if (machine_class->default_ram_size && ram_size < machine_class->default_ram_size) { >> >> >> + fprintf(stderr, "qemu: %s guest ram size defaulting to %ld MB\n", >> >> >> + machine_class->name, >> >> >> + machine_class->default_ram_size / (1024 * 1024)); >> >> > >> >> > If the user explicitly asks for something, we either provide it >> >> > silently, or we error out. This does neither. Why? >> >> >> >> In case the user has provided memory not enough to boot the machine, I >> >> could error out. My idea was to have a sane default which is provided by >> >> the machine. >> >> >> >> Initially, I had just "ram_size == default_ram_size", but then it was >> >> allowing "-m 128M" to go through. And the VM would not boot. >> >> >> >> This can as well be converted to an error report and fail here to boot >> >> the VM. >> > >> > What does exactly fail with 128MB? Linux? >> >> Linux kernel, and not much info as well on the console. > > Ok, but then I think it should still be possible to specify -m 128M on > the command line - in case the user wants to run an older Linux which > still works fine with that amount of memory. But how do we distinguish whether its old/new kernel in the distro? And the older kernel will boot with more memory, while the reverse isnt true. Regards Nikunj ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PATCH] Introduce machine specific default memory size 2015-03-04 9:29 ` Nikunj A Dadhania @ 2015-03-04 9:39 ` Thomas Huth 2015-03-04 9:56 ` Nikunj A Dadhania 0 siblings, 1 reply; 10+ messages in thread From: Thomas Huth @ 2015-03-04 9:39 UTC (permalink / raw) To: Nikunj A Dadhania; +Cc: qemu-ppc, Markus Armbruster, qemu-devel On Wed, 04 Mar 2015 14:59:13 +0530 Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> wrote: > Thomas Huth <thuth@linux.vnet.ibm.com> writes: > > > On Wed, 04 Mar 2015 14:34:27 +0530 > > Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> wrote: > > > >> Thomas Huth <thuth@linux.vnet.ibm.com> writes: > >> > >> > On Wed, 04 Mar 2015 14:00:17 +0530 > >> > Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> wrote: > >> > > >> >> Markus Armbruster <armbru@redhat.com> writes: > >> >> > >> >> > Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> writes: > >> >> > > >> >> >> diff --git a/vl.c b/vl.c > >> >> >> index eb89d62..dd56754 100644 > >> >> >> --- a/vl.c > >> >> >> +++ b/vl.c > >> >> >> @@ -4053,6 +4053,18 @@ int main(int argc, char **argv, char **envp) > >> >> >> exit(1); > >> >> >> } > >> >> >> > >> >> >> + if (machine_class->default_ram_size && ram_size < machine_class->default_ram_size) { > >> >> >> + fprintf(stderr, "qemu: %s guest ram size defaulting to %ld MB\n", > >> >> >> + machine_class->name, > >> >> >> + machine_class->default_ram_size / (1024 * 1024)); > >> >> > > >> >> > If the user explicitly asks for something, we either provide it > >> >> > silently, or we error out. This does neither. Why? > >> >> > >> >> In case the user has provided memory not enough to boot the machine, I > >> >> could error out. My idea was to have a sane default which is provided by > >> >> the machine. > >> >> > >> >> Initially, I had just "ram_size == default_ram_size", but then it was > >> >> allowing "-m 128M" to go through. And the VM would not boot. > >> >> > >> >> This can as well be converted to an error report and fail here to boot > >> >> the VM. > >> > > >> > What does exactly fail with 128MB? Linux? > >> > >> Linux kernel, and not much info as well on the console. > > > > Ok, but then I think it should still be possible to specify -m 128M on > > the command line - in case the user wants to run an older Linux which > > still works fine with that amount of memory. > > But how do we distinguish whether its old/new kernel in the distro? > > And the older kernel will boot with more memory, while the reverse isnt > true. True, and it's IMHO certainly ok to increase the default memory size - I just wanted to say that you should not disallow "-m 128M" in case the users know what they are doing. Thomas ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PATCH] Introduce machine specific default memory size 2015-03-04 9:39 ` Thomas Huth @ 2015-03-04 9:56 ` Nikunj A Dadhania 0 siblings, 0 replies; 10+ messages in thread From: Nikunj A Dadhania @ 2015-03-04 9:56 UTC (permalink / raw) To: Thomas Huth; +Cc: qemu-ppc, Markus Armbruster, qemu-devel Thomas Huth <thuth@linux.vnet.ibm.com> writes: > On Wed, 04 Mar 2015 14:59:13 +0530 > Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> wrote: > >> Thomas Huth <thuth@linux.vnet.ibm.com> writes: >> >> > On Wed, 04 Mar 2015 14:34:27 +0530 >> > Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> wrote: >> > >> >> Thomas Huth <thuth@linux.vnet.ibm.com> writes: >> >> >> >> > On Wed, 04 Mar 2015 14:00:17 +0530 >> >> > Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> wrote: >> >> > >> >> >> Markus Armbruster <armbru@redhat.com> writes: >> >> >> >> >> >> > Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> writes: >> >> >> > >> >> >> >> diff --git a/vl.c b/vl.c >> >> >> >> index eb89d62..dd56754 100644 >> >> >> >> --- a/vl.c >> >> >> >> +++ b/vl.c >> >> >> >> @@ -4053,6 +4053,18 @@ int main(int argc, char **argv, char **envp) >> >> >> >> exit(1); >> >> >> >> } >> >> >> >> >> >> >> >> + if (machine_class->default_ram_size && ram_size < machine_class->default_ram_size) { >> >> >> >> + fprintf(stderr, "qemu: %s guest ram size defaulting to %ld MB\n", >> >> >> >> + machine_class->name, >> >> >> >> + machine_class->default_ram_size / (1024 * 1024)); >> >> >> > >> >> >> > If the user explicitly asks for something, we either provide it >> >> >> > silently, or we error out. This does neither. Why? >> >> >> >> >> >> In case the user has provided memory not enough to boot the machine, I >> >> >> could error out. My idea was to have a sane default which is provided by >> >> >> the machine. >> >> >> >> >> >> Initially, I had just "ram_size == default_ram_size", but then it was >> >> >> allowing "-m 128M" to go through. And the VM would not boot. >> >> >> >> >> >> This can as well be converted to an error report and fail here to boot >> >> >> the VM. >> >> > >> >> > What does exactly fail with 128MB? Linux? >> >> >> >> Linux kernel, and not much info as well on the console. >> > >> > Ok, but then I think it should still be possible to specify -m 128M on >> > the command line - in case the user wants to run an older Linux which >> > still works fine with that amount of memory. >> >> But how do we distinguish whether its old/new kernel in the distro? >> >> And the older kernel will boot with more memory, while the reverse isnt >> true. > > True, and it's IMHO certainly ok to increase the default memory size - > I just wanted to say that you should not disallow "-m 128M" in case the > users know what they are doing. That becomes a little bit tricky, as 128MB can come from default_ram_size and from the user as well. So here I am only changing the machine class for sPAPR. I have tried few distro installations and none of them boot with qemu default memory(128MB). Moreover, the installer kernel does not tell what went wrong. It silently goes till a point and is stuck. Regards Nikunj ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [Qemu-ppc] [PATCH] Introduce machine specific default memory size 2015-03-04 8:30 ` Nikunj A Dadhania 2015-03-04 8:59 ` Thomas Huth @ 2015-03-04 11:11 ` Nikunj A Dadhania 1 sibling, 0 replies; 10+ messages in thread From: Nikunj A Dadhania @ 2015-03-04 11:11 UTC (permalink / raw) To: Markus Armbruster; +Cc: qemu-ppc, qemu-devel Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> writes: > Markus Armbruster <armbru@redhat.com> writes: > >> Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> writes: >> >>> diff --git a/vl.c b/vl.c >>> index eb89d62..dd56754 100644 >>> --- a/vl.c >>> +++ b/vl.c >>> @@ -4053,6 +4053,18 @@ int main(int argc, char **argv, char **envp) >>> exit(1); >>> } >>> >>> + if (machine_class->default_ram_size && ram_size < machine_class->default_ram_size) { >>> + fprintf(stderr, "qemu: %s guest ram size defaulting to %ld MB\n", >>> + machine_class->name, >>> + machine_class->default_ram_size / (1024 * 1024)); >> >> If the user explicitly asks for something, we either provide it >> silently, or we error out. This does neither. Why? > > In case the user has provided memory not enough to boot the machine, I > could error out. My idea was to have a sane default which is provided by > the machine. > > Initially, I had just "ram_size == default_ram_size", but then it was > allowing "-m 128M" to go through. And the VM would not boot. > > This can as well be converted to an error report and fail here to boot > the VM. > >> >>> + ram_size = machine_class->default_ram_size; >>> + >>> + /* if maxram size is not provided in options use machine default */ >>> + if (maxram_size == default_ram_size) { >>> + maxram_size = machine_class->default_ram_size; >>> + } >>> + } >>> + >>> /* store value for the future use */ >>> qemu_opt_set_number(qemu_find_opts_singleton("memory"), "size", ram_size); >> >> Does not apply to master, please name your prerequisite patches or >> rebase. > > > Rebased patch: > > > Introduce machine specific default memory size > > Qemu default memory of 128MB is not enough to boot sPAPR > guest. Introduce a member in the machine class to override the default > memory size enforced by qemu. > > Signed-off-by: Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> Ignore this, will be sending a v2 ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2015-03-04 11:12 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-03-03 12:54 [Qemu-devel] [PATCH] Introduce machine specific default memory size Nikunj A Dadhania 2015-03-04 7:24 ` Markus Armbruster 2015-03-04 8:30 ` Nikunj A Dadhania 2015-03-04 8:59 ` Thomas Huth 2015-03-04 9:04 ` Nikunj A Dadhania 2015-03-04 9:19 ` Thomas Huth 2015-03-04 9:29 ` Nikunj A Dadhania 2015-03-04 9:39 ` Thomas Huth 2015-03-04 9:56 ` Nikunj A Dadhania 2015-03-04 11:11 ` [Qemu-devel] [Qemu-ppc] " Nikunj A Dadhania
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).