qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] generic-loader: remove the ram_size limit when a loading bin


From: Damien Hedde
Subject: Re: [PATCH] generic-loader: remove the ram_size limit when a loading binary file
Date: Thu, 7 Oct 2021 12:12:25 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.1.2



On 10/7/21 08:41, Alistair Francis wrote:
On Wed, Oct 6, 2021 at 10:04 PM Damien Hedde <damien.hedde@greensocs.com> wrote:



On 10/6/21 13:49, Philippe Mathieu-Daudé wrote:
On 10/6/21 13:37, Damien Hedde wrote:
Right now, we cannot load some binary file if it is bigger than the
machine's ram size. This limitation only occurs when loading a
binary file: we can load a corresponding elf file without this
limitation.

This is an issue for machines that have small ram or do not use the
ram_size feature at all.

Also get rid of "hw/boards.h" include, since we needed it only
to access `current_machine`.

Fixes: e481a1f63c9 ("generic-loader: Add a generic loader")
Signed-off-by: Damien Hedde <damien.hedde@greensocs.com>
---

Hi Alistair,

I found this while experimenting with a ram_size=0 machine.




Where are you loading your file?


In a rom.

The loader does not check at all that we are loading to the machine's
ram. It just check the size for the raw binary file format.

Hmmm... This is probably correct, in that a user might want to load a
binary into ROM and doesn't want to be blocked by the ram size.

In general though a user would expect an error if they are loading a
file into RAM that is larger then the RAM. So I'm not fully convinced
we want this change.

I do agree for the error, but right now if you give a wrong base address, it does not fail (see below).

I can give a look to see if such check would be possible.


What error do you get if you try to load a binary that is too large
with this patch applied?

Nothing if you pass the ram_size check. You can even try to load something to an unmapped area, it doesn't report an error.

But it does not do anything visible to the guest I suppose (in the monitor, x/'xp' commands still tell you it cannot access the memory if you tried to load it somewhere that does not exist).

If you try to load something bigger than the target region, the region seems to be initialized.

Thanks,
Damien


Alistair


--
Damien






reply via email to

[Prev in Thread] Current Thread [Next in Thread]