diff mbox

[for-2.1.2] pc: add more padding between the end of the initrd and the end of memory

Message ID 1411056346-22538-1-git-send-email-pbonzini@redhat.com
State New
Headers show

Commit Message

Paolo Bonzini Sept. 18, 2014, 4:05 p.m. UTC
Besides ACPI tables, there are a few other uses of high memory in SeaBIOS:
SMBIOS tables and USB drivers use it in particular.  These uses allocate
a very small amount of memory.  Malloc metadata also lives there.  So we
need _some_ extra padding there to avoid initrd breakage, but not much.

John Snow found a case where RHEL5 was broken by the recent change to
ACPI_TABLE_SIZE; in his case 4KB of extra padding are fine, but just
to be safe I am adding 32KB, which is roughly the same amount of
padding that was left by QEMU 2.0 and earlier.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 hw/i386/pc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Michael S. Tsirkin Sept. 18, 2014, 5:41 p.m. UTC | #1
On Thu, Sep 18, 2014 at 06:05:46PM +0200, Paolo Bonzini wrote:
> Besides ACPI tables, there are a few other uses of high memory in SeaBIOS:
> SMBIOS tables and USB drivers use it in particular.  These uses allocate
> a very small amount of memory.  Malloc metadata also lives there.  So we
> need _some_ extra padding there to avoid initrd breakage, but not much.
> 
> John Snow found a case where RHEL5 was broken by the recent change to
> ACPI_TABLE_SIZE; in his case 4KB of extra padding are fine, but just
> to be safe I am adding 32KB, which is roughly the same amount of
> padding that was left by QEMU 2.0 and earlier.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

I already queued a patch with some slightly better comments
so I'll keep that.
Will append your text to the commit log.

Thanks!


> ---
>  hw/i386/pc.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> index 77b6782..b9d4be7 100644
> --- a/hw/i386/pc.c
> +++ b/hw/i386/pc.c
> @@ -73,7 +73,7 @@
>  #endif
>  
>  /* Leave a chunk of memory at the top of RAM for the BIOS ACPI tables.  */
> -unsigned acpi_data_size = 0x20000;
> +unsigned acpi_data_size = 0x28000;
>  void pc_set_legacy_acpi_data_size(void)
>  {
>      acpi_data_size = 0x10000;
> -- 
> 1.8.3.1
diff mbox

Patch

diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 77b6782..b9d4be7 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -73,7 +73,7 @@ 
 #endif
 
 /* Leave a chunk of memory at the top of RAM for the BIOS ACPI tables.  */
-unsigned acpi_data_size = 0x20000;
+unsigned acpi_data_size = 0x28000;
 void pc_set_legacy_acpi_data_size(void)
 {
     acpi_data_size = 0x10000;