From: "Philippe Mathieu-Daudé" <philmd@redhat.com>
To: Igor Mammedov <imammedo@redhat.com>, Helge Deller <deller@gmx.de>
Cc: Sven Schnelle <svens@stackframe.org>, qemu-devel@nongnu.org
Subject: Re: [PATCH v2] hppa: allow max ram size upto 4Gb
Date: Sat, 4 Jan 2020 16:00:19 +0100 [thread overview]
Message-ID: <6fa7bcd3-ee67-cc84-fd4e-d3677e3ae51a@redhat.com> (raw)
In-Reply-To: <20200103105434.050d28ea@redhat.com>
On 1/3/20 10:54 AM, Igor Mammedov wrote:
> On Thu, 2 Jan 2020 21:22:12 +0100
> Helge Deller <deller@gmx.de> wrote:
>
>> On 02.01.20 18:46, Igor Mammedov wrote:
>>> Previous patch drops silent ram_size fixup and makes
>>> QEMU error out with:
>>>
>>> "RAM size more than 3840m is not supported"
>>>
>>> when user specified -m X more than supported value.
>>>
>>> User shouldn't be bothered with starting QEMU with valid CLI,
>>> so for the sake of user convenience allow using -m 4G vs -m 3840M.
>>>
>>> Requested-by: Helge Deller <deller@gmx.de>
>>> Signed-off-by: Igor Mammedov <imammedo@redhat.com>
>>> ---
>>> v2:
>>> - make main ram -1 prio, so it wouldn't conflict with other regions
>>> starting from 0xf9000000
>>>
>>> I dislike it but if you feel it's really necessary feel free to ack it.
Hard to find the v2 buried in the other series with my email client.
>>>
>>> should be applied on top of:
>>> "hppa: drop RAM size fixup"
>>
>> Hello Igor,
>> I appreciate that you are trying to make it more cleaner.
>> But, can't you merge both of your patches to one patch?
>> Right now you have one patch "hppa: drop RAM size fixup", which is
>> what I think is wrong. Then you add another one which somehow
>> fixes it up again and adds other stuff.
> 1st patch bring it in line with other boards adding
> proper error check but without changing RAM size.
> While 2nd is changing device model (mapped RAM size) and
> clearly documents that it's a hack for user convenience,
> Hence I'd prefer to keep both separated.
>
>> Having everything in one single patch makes your full change more
>> understandable.
>>
>> Is it necessary to introduce clamped_ram_size and not continue with
>> ram_size (even if you would add it as static local variable)?
> it's necessary since ram_size is global which should be kept == MachineState::ram_size.
> Later on I plan to remove the former altogether and maybe
> MachineState::ram_size aa well, since it could be read with
> memory_region_size(MachineState::ram).
Why insist on clamping the ram? We recommend to model what the hardware
does, and the hardware uses a full DIMM of DRAM, so 4GB, not less.
What are the new problem introduced by using 4GB? I only see advantages
doing so. This doesn't break your series. This doesn't break the CLI.
Am I missing something?
>>> ---
>>> hw/hppa/machine.c | 21 +++++++++++----------
>>> 1 file changed, 11 insertions(+), 10 deletions(-)
>>>
>>> diff --git a/hw/hppa/machine.c b/hw/hppa/machine.c
>>> index ebbf44f..0302983 100644
>>> --- a/hw/hppa/machine.c
>>> +++ b/hw/hppa/machine.c
>>> @@ -54,6 +54,7 @@ static uint64_t cpu_hppa_to_phys(void *opaque, uint64_t addr)
>>>
>>> static HPPACPU *cpu[HPPA_MAX_CPUS];
>>> static uint64_t firmware_entry;
>>> +static ram_addr_t clamped_ram_size;
>>>
>>> static void machine_hppa_init(MachineState *machine)
>>> {
>>> @@ -74,8 +75,6 @@ static void machine_hppa_init(MachineState *machine)
>>> long i;
>>> unsigned int smp_cpus = machine->smp.cpus;
>>>
>>> - ram_size = machine->ram_size;
>>> -
>>> /* Create CPUs. */
>>> for (i = 0; i < smp_cpus; i++) {
>>> char *name = g_strdup_printf("cpu%ld-io-eir", i);
>>> @@ -90,12 +89,14 @@ static void machine_hppa_init(MachineState *machine)
>>> }
>>>
>>> /* Limit main memory. */
>>> - if (ram_size > FIRMWARE_START) {
>>> - error_report("RAM size more than %d is not supported", FIRMWARE_START);
>>> + if (machine->ram_size > 4 * GiB) {
>>> + error_report("RAM size more than 4Gb is not supported");
>>> exit(EXIT_FAILURE);
>>> }
>>> + clamped_ram_size = machine->ram_size > FIRMWARE_START ?
>>> + FIRMWARE_START : machine->ram_size;
>>>
>>> - memory_region_add_subregion(addr_space, 0, machine->ram);
>>> + memory_region_add_subregion_overlap(addr_space, 0, machine->ram, -1);
>>>
>>> /* Init Dino (PCI host bus chip). */
>>> pci_bus = dino_init(addr_space, &rtc_irq, &serial_irq);
>>> @@ -151,7 +152,7 @@ static void machine_hppa_init(MachineState *machine)
>>> qemu_log_mask(CPU_LOG_PAGE, "Firmware loaded at 0x%08" PRIx64
>>> "-0x%08" PRIx64 ", entry at 0x%08" PRIx64 ".\n",
>>> firmware_low, firmware_high, firmware_entry);
>>> - if (firmware_low < ram_size || firmware_high >= FIRMWARE_END) {
>>> + if (firmware_low < clamped_ram_size || firmware_high >= FIRMWARE_END) {
>>> error_report("Firmware overlaps with memory or IO space");
>>> exit(1);
>>> }
>>> @@ -204,7 +205,7 @@ static void machine_hppa_init(MachineState *machine)
>>> (1) Due to sign-extension problems and PDC,
>>> put the initrd no higher than 1G.
>>> (2) Reserve 64k for stack. */
>>> - initrd_base = MIN(ram_size, 1 * GiB);
>>> + initrd_base = MIN(clamped_ram_size, 1 * GiB);
>>> initrd_base = initrd_base - 64 * KiB;
>>> initrd_base = (initrd_base - initrd_size) & TARGET_PAGE_MASK;
>>>
>>> @@ -232,7 +233,7 @@ static void machine_hppa_init(MachineState *machine)
>>> * various parameters in registers. After firmware initialization,
>>> * firmware will start the Linux kernel with ramdisk and cmdline.
>>> */
>>> - cpu[0]->env.gr[26] = ram_size;
>>> + cpu[0]->env.gr[26] = clamped_ram_size;
Helge, is this the code using this register?
https://github.com/hdeller/seabios-hppa/blob/parisc-qemu-5.0/src/parisc/head.S#L139
>>> cpu[0]->env.gr[25] = kernel_entry;
>>>
>>> /* tell firmware how many SMP CPUs to present in inventory table */
>>> @@ -255,11 +256,11 @@ static void hppa_machine_reset(MachineState *ms)
>>> }
>>>
>>> /* already initialized by machine_hppa_init()? */
>>> - if (cpu[0]->env.gr[26] == ram_size) {
>>> + if (cpu[0]->env.gr[26] == clamped_ram_size) {
>>> return;
>>> }
>>>
>>> - cpu[0]->env.gr[26] = ram_size;
>>> + cpu[0]->env.gr[26] = clamped_ram_size;
>>> cpu[0]->env.gr[25] = 0; /* no firmware boot menu */
>>> cpu[0]->env.gr[24] = 'c';
>>> /* gr22/gr23 unused, no initrd while reboot. */
>>>
>>
>
next prev parent reply other threads:[~2020-01-04 15:01 UTC|newest]
Thread overview: 148+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-31 13:02 [PATCH 00/86] refactor main RAM allocation to use hostmem backend Igor Mammedov
2019-12-31 13:02 ` [PATCH 01/86] numa: remove not needed check Igor Mammedov
2019-12-31 13:02 ` [PATCH 02/86] numa: properly check if numa is supported Igor Mammedov
2019-12-31 13:02 ` [PATCH 03/86] numa: remove deprecated -mem-path fallback to anonymous RAM Igor Mammedov
2019-12-31 13:02 ` [PATCH 04/86] machine: introduce ram-memdev property Igor Mammedov
2019-12-31 13:02 ` [PATCH 05/86] machine: alias -mem-path and -mem-prealloc into memory-foo backend Igor Mammedov
2019-12-31 13:02 ` [PATCH 06/86] machine: introduce convenience MachineState::ram Igor Mammedov
2019-12-31 13:02 ` [PATCH 07/86] initialize MachineState::ram in NUMA case Igor Mammedov
2019-12-31 13:02 ` [PATCH 08/86] alpha:dp264: use memdev for RAM Igor Mammedov
2019-12-31 16:11 ` Philippe Mathieu-Daudé
2020-01-06 0:37 ` Richard Henderson
2019-12-31 13:02 ` [PATCH 09/86] arm:aspeed: convert valid RAM sizes to data Igor Mammedov
2019-12-31 13:02 ` [PATCH 10/86] arm:aspeed: actually check RAM size Igor Mammedov
2019-12-31 13:02 ` [PATCH 11/86] hw:aspeed: drop warning and bogus ram_size fixup Igor Mammedov
2019-12-31 13:02 ` [PATCH 12/86] arm:aspeed: use memdev for RAM Igor Mammedov
2019-12-31 13:02 ` [PATCH 13/86] arm:collie: " Igor Mammedov
2019-12-31 13:02 ` [PATCH 14/86] arm:cubieboard: " Igor Mammedov
2019-12-31 13:02 ` [PATCH 15/86] arm:digic_boards: " Igor Mammedov
2019-12-31 13:03 ` [PATCH 16/86] arm:highbank: " Igor Mammedov
2019-12-31 13:03 ` [PATCH 17/86] arm:imx25_pdk: drop RAM size fixup Igor Mammedov
2019-12-31 13:03 ` [PATCH 18/86] arm:imx25_pdk: use memdev for RAM Igor Mammedov
2019-12-31 13:03 ` [PATCH 19/86] arm:integratorcp: " Igor Mammedov
2019-12-31 13:03 ` [PATCH 20/86] arm:kzm: drop RAM size fixup Igor Mammedov
2019-12-31 13:03 ` [PATCH 21/86] arm:kzm: use memdev for RAM Igor Mammedov
2019-12-31 16:10 ` Philippe Mathieu-Daudé
2019-12-31 13:03 ` [PATCH 22/86] arm:mcimx6ul-evk: " Igor Mammedov
2019-12-31 13:03 ` [PATCH 23/86] arm:mcimx7d-sabre: " Igor Mammedov
2019-12-31 13:03 ` [PATCH 24/86] arm:mps2-tz: " Igor Mammedov
2019-12-31 13:03 ` [PATCH 25/86] arm:mps2: " Igor Mammedov
2019-12-31 13:03 ` [PATCH 26/86] arm:musicpal: " Igor Mammedov
2019-12-31 13:03 ` [PATCH 27/86] arm:nseries: " Igor Mammedov
2019-12-31 13:03 ` [PATCH 28/86] arm:omap_sx1: " Igor Mammedov
2019-12-31 13:03 ` [PATCH 29/86] arm:palm: " Igor Mammedov
2019-12-31 13:03 ` [PATCH 30/86] arm:raspi: " Igor Mammedov
2019-12-31 13:03 ` [PATCH 31/86] arm:sabrelite: " Igor Mammedov
2019-12-31 13:03 ` [PATCH 32/86] arm:sbsa-ref: " Igor Mammedov
2019-12-31 13:03 ` [PATCH 33/86] arm:versatilepb: " Igor Mammedov
2019-12-31 13:03 ` [PATCH 34/86] arm:vexpress: " Igor Mammedov
2019-12-31 13:03 ` [PATCH 35/86] arm:virt: " Igor Mammedov
2019-12-31 13:03 ` [PATCH 36/86] arm:xilinx_zynq: drop RAM size fixup Igor Mammedov
2019-12-31 13:03 ` [PATCH 37/86] arm:xilinx_zynq: use memdev for RAM Igor Mammedov
2019-12-31 13:03 ` [PATCH 38/86] arm:xlnx-versal-virt: " Igor Mammedov
2019-12-31 16:05 ` Philippe Mathieu-Daudé
2019-12-31 13:03 ` [PATCH 39/86] arm:xlnx-zcu102: " Igor Mammedov
2019-12-31 13:03 ` [PATCH 40/86] s390x:s390-virtio-ccw: " Igor Mammedov
2019-12-31 13:03 ` [PATCH 41/86] null-machine: " Igor Mammedov
2019-12-31 15:32 ` Philippe Mathieu-Daudé
2019-12-31 13:03 ` [PATCH 42/86] cris:axis_dev88: " Igor Mammedov
2019-12-31 13:03 ` [PATCH 43/86] hppa: drop RAM size fixup Igor Mammedov
2019-12-31 15:44 ` Philippe Mathieu-Daudé
2020-01-02 11:31 ` Helge Deller
2020-01-02 12:06 ` Philippe Mathieu-Daudé
2020-01-02 13:02 ` Helge Deller
2020-01-02 14:47 ` Igor Mammedov
2020-01-02 14:12 ` Igor Mammedov
2020-01-02 14:17 ` Philippe Mathieu-Daudé
2020-01-02 15:08 ` Igor Mammedov
2020-01-02 15:49 ` Philippe Mathieu-Daudé
2020-01-02 16:50 ` Igor Mammedov
2020-01-02 17:14 ` Philippe Mathieu-Daudé
2020-01-02 17:32 ` Igor Mammedov
2020-01-02 20:09 ` Helge Deller
2020-01-02 14:41 ` Igor Mammedov
2020-01-02 14:45 ` Philippe Mathieu-Daudé
2020-01-02 15:35 ` Igor Mammedov
2020-01-02 15:40 ` Philippe Mathieu-Daudé
2020-01-02 17:08 ` [PATCH] hppa: allow max ram size upto 4Gb Igor Mammedov
2020-01-02 17:15 ` Philippe Mathieu-Daudé
2020-01-02 17:36 ` Igor Mammedov
2020-01-02 17:46 ` [PATCH v2] " Igor Mammedov
2020-01-02 20:22 ` Helge Deller
2020-01-03 9:54 ` Igor Mammedov
2020-01-04 15:00 ` Philippe Mathieu-Daudé [this message]
2020-01-06 10:48 ` Igor Mammedov
2020-01-06 11:05 ` Philippe Mathieu-Daudé
2020-01-06 11:28 ` Helge Deller
2020-01-06 16:24 ` Igor Mammedov
2020-01-06 17:03 ` Helge Deller
2020-01-07 11:21 ` Igor Mammedov
2020-01-07 11:53 ` Helge Deller
2020-01-07 15:17 ` Igor Mammedov
2020-01-07 15:34 ` [PATCH v3 43/86] " Igor Mammedov
2019-12-31 13:03 ` [PATCH 44/86] hppa: use memdev for RAM Igor Mammedov
2019-12-31 15:45 ` Philippe Mathieu-Daudé
2019-12-31 13:03 ` [PATCH 45/86] x86:microvm: " Igor Mammedov
2019-12-31 13:03 ` [PATCH 46/86] x86:pc: " Igor Mammedov
2019-12-31 13:03 ` [PATCH 47/86] lm32:lm32_boards: " Igor Mammedov
2019-12-31 13:03 ` [PATCH 48/86] lm32:milkymist: " Igor Mammedov
2019-12-31 13:03 ` [PATCH 49/86] m68k:an5206: " Igor Mammedov
2020-01-07 16:11 ` Thomas Huth
2019-12-31 13:03 ` [PATCH 50/86] m68k:mcf5208: " Igor Mammedov
2020-01-07 16:11 ` Thomas Huth
2019-12-31 13:03 ` [PATCH 51/86] m68k:next-cube: " Igor Mammedov
2020-01-07 16:12 ` Thomas Huth
2019-12-31 13:03 ` [PATCH 52/86] mips:boston-cube: " Igor Mammedov
2019-12-31 16:08 ` Philippe Mathieu-Daudé
2019-12-31 13:03 ` [PATCH 53/86] mips:mips_fulong2e: drop RAM size fixup Igor Mammedov
2019-12-31 13:03 ` [PATCH 54/86] mips:mips_fulong2e: use memdev for RAM Igor Mammedov
2019-12-31 13:03 ` [PATCH 55/86] mips:mips_jazz: " Igor Mammedov
2019-12-31 16:06 ` Philippe Mathieu-Daudé
2019-12-31 13:03 ` [PATCH 56/86] mips:mips_malta: " Igor Mammedov
2019-12-31 16:07 ` Philippe Mathieu-Daudé
2019-12-31 13:03 ` [PATCH 57/86] mips:mips_mipssim: " Igor Mammedov
2019-12-31 16:07 ` Philippe Mathieu-Daudé
2019-12-31 13:03 ` [PATCH 58/86] mips:mips_r4k: " Igor Mammedov
2019-12-31 16:08 ` Philippe Mathieu-Daudé
2019-12-31 13:03 ` [PATCH 59/86] ppc:e500: drop RAM size fixup Igor Mammedov
2019-12-31 13:03 ` [PATCH 60/86] ppc:e500: use memdev for RAM Igor Mammedov
2019-12-31 13:03 ` [PATCH 61/86] ppc:mac_newworld: " Igor Mammedov
2019-12-31 13:03 ` [PATCH 62/86] ppc:mac_oldworld: " Igor Mammedov
2019-12-31 13:03 ` [PATCH 63/86] ppc:pnv: " Igor Mammedov
2019-12-31 13:03 ` [PATCH 64/86] ppc:ppc405_boards: add RAM size checks Igor Mammedov
2019-12-31 13:03 ` [PATCH 65/86] ppc:ppc405_boards: use memdev for RAM Igor Mammedov
2019-12-31 13:03 ` [PATCH 66/86] ppc:ppc440_bamboo/sam460ex: drop RAM size fixup Igor Mammedov
2020-01-01 11:54 ` BALATON Zoltan
2020-01-01 15:39 ` Philippe Mathieu-Daudé
2020-01-01 18:45 ` BALATON Zoltan
2020-01-02 11:47 ` Igor Mammedov
2020-01-02 15:52 ` BALATON Zoltan
2020-01-02 17:19 ` Igor Mammedov
2020-01-10 17:14 ` Igor Mammedov
2019-12-31 13:03 ` [PATCH 67/86] ppc:ppc440_bamboo/sam460ex: use memdev for RAM Igor Mammedov
2019-12-31 13:03 ` [PATCH 68/86] ppc:prep: " Igor Mammedov
2019-12-31 13:03 ` [PATCH 69/86] ppc:spapr: " Igor Mammedov
2019-12-31 13:03 ` [PATCH 70/86] ppc:virtex_ml507: remove unused arguments Igor Mammedov
2019-12-31 13:03 ` [PATCH 71/86] ppc:virtex_ml507: use memdev for RAM Igor Mammedov
2019-12-31 13:03 ` [PATCH 72/86] sparc:leon3: " Igor Mammedov
2019-12-31 16:02 ` Philippe Mathieu-Daudé
2019-12-31 13:03 ` [PATCH 73/86] sparc:sun4m: " Igor Mammedov
2019-12-31 13:03 ` [PATCH 74/86] sparc:niagara: " Igor Mammedov
2019-12-31 16:02 ` Philippe Mathieu-Daudé
2019-12-31 13:03 ` [PATCH 75/86] remove no longer used memory_region_allocate_system_memory() Igor Mammedov
2019-12-31 13:04 ` [PATCH 76/86] post conversion default_ram_id cleanup Igor Mammedov
2019-12-31 16:04 ` Philippe Mathieu-Daudé
2019-12-31 13:04 ` [PATCH 77/86] exec: cleanup qemu_minrampagesize()/qemu_maxrampagesize() Igor Mammedov
2019-12-31 13:04 ` [PATCH 78/86] exec: drop bogus mem_path from qemu_ram_alloc_from_fd() Igor Mammedov
2019-12-31 13:04 ` [PATCH 79/86] make mem_path local variable Igor Mammedov
2019-12-31 13:04 ` [PATCH 80/86] hostmem: introduce "prealloc-threads" property Igor Mammedov
2019-12-31 13:04 ` [PATCH 81/86] hostmem: fix strict bind policy Igor Mammedov
2019-12-31 13:04 ` [PATCH 82/86] numa: forbid '-numa node, mem' for 5.0 and newer machine types Igor Mammedov
2019-12-31 13:04 ` [PATCH 83/86] tests:numa-test: make top level args dynamic and g_autofree(cli) cleanups Igor Mammedov
2019-12-31 13:04 ` [PATCH 84/86] tests:numa-test: use explicit memdev to specify node RAM Igor Mammedov
2019-12-31 13:04 ` [PATCH 85/86] numa: make exit() usage consistent Igor Mammedov
2019-12-31 13:04 ` [PATCH 86/86] numa: remove deprecated implicit RAM distribution between nodes Igor Mammedov
2019-12-31 15:58 ` [PATCH 00/86] refactor main RAM allocation to use hostmem backend Philippe Mathieu-Daudé
2019-12-31 16:22 ` Igor Mammedov
2020-01-03 13:06 ` Igor Mammedov
2020-01-03 13:15 ` Philippe Mathieu-Daudé
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6fa7bcd3-ee67-cc84-fd4e-d3677e3ae51a@redhat.com \
--to=philmd@redhat.com \
--cc=deller@gmx.de \
--cc=imammedo@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=svens@stackframe.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).