All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Eduardo Habkost <ehabkost@redhat.com>
Cc: Igor Mammedov <imammedo@redhat.com>,
	qemu-devel@nongnu.org, Gerd Hoffmann <kraxel@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 0/2] acpi: Fix PCI hole handling on SRAT table
Date: Sun, 26 Jan 2014 11:25:24 +0200	[thread overview]
Message-ID: <20140126092524.GA7964@redhat.com> (raw)
In-Reply-To: <1389294763-8137-1-git-send-email-ehabkost@redhat.com>

On Thu, Jan 09, 2014 at 05:12:41PM -0200, Eduardo Habkost wrote:
> The original SeaBIOS code used the RamSize variable, that was used by
> SeaBIOS for the size of RAM below 4GB, not for all RAM. When copied to
> QEMU, the code was changed to use the full RAM size, and this broke the
> build_srat() code that handles the PCI hole.
> 
> This series fixes the problem by restoring the original behavior from SeaBIOS.
> 
> Example Linux guest dmesg output when the bug is present (using -m 4G and 4 1GB
> NUMA nodes):
> 
>   e820: BIOS-provided physical RAM map:
>   BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
>   BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
>   BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
>   BIOS-e820: [mem 0x0000000000100000-0x00000000dfffdfff] usable
>   BIOS-e820: [mem 0x00000000dfffe000-0x00000000dfffffff] reserved
>   BIOS-e820: [mem 0x00000000feffc000-0x00000000feffffff] reserved
>   BIOS-e820: [mem 0x00000000fffc0000-0x00000000ffffffff] reserved
>   BIOS-e820: [mem 0x0000000100000000-0x000000011fffffff] usable
>   e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
>   e820: remove [mem 0x000a0000-0x000fffff] usable
>   e820: last_pfn = 0x120000 max_arch_pfn = 0x400000000
>   e820: last_pfn = 0xdfffe max_arch_pfn = 0x400000000
>   ACPI: SRAT 00000000dffffc0e 00160 (v01 BOCHS  BXPCSRAT 00000001 BXPC 00000001)
>   SRAT: PXM 0 -> APIC 0x00 -> Node 0
>   SRAT: PXM 1 -> APIC 0x01 -> Node 1
>   SRAT: PXM 2 -> APIC 0x02 -> Node 2
>   SRAT: PXM 3 -> APIC 0x03 -> Node 3
>   SRAT: Node 0 PXM 0 [mem 0x00000000-0x0009ffff]
>   SRAT: Node 0 PXM 0 [mem 0x00100000-0x3fffffff]
>   SRAT: Node 1 PXM 1 [mem 0x40000000-0x7fffffff]
>   SRAT: Node 2 PXM 2 [mem 0x80000000-0xbfffffff]
>   SRAT: Node 3 PXM 3 [mem 0xc0000000-0xffffffff]
>   NUMA: nodes only cover 3583MB of your 4095MB e820 RAM. Not used.
>   e820: [mem 0xe0000000-0xfeffbfff] available for PCI devices
>   e820: reserve RAM buffer [mem 0x0009fc00-0x0009ffff]
>   e820: reserve RAM buffer [mem 0xdfffe000-0xdfffffff]
> 
> Output after the series is applied:
> 
>   e820: BIOS-provided physical RAM map:
>   BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
>   BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
>   BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
>   BIOS-e820: [mem 0x0000000000100000-0x00000000dfffdfff] usable
>   BIOS-e820: [mem 0x00000000dfffe000-0x00000000dfffffff] reserved
>   BIOS-e820: [mem 0x00000000feffc000-0x00000000feffffff] reserved
>   BIOS-e820: [mem 0x00000000fffc0000-0x00000000ffffffff] reserved
>   BIOS-e820: [mem 0x0000000100000000-0x000000011fffffff] usable
>   e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
>   e820: remove [mem 0x000a0000-0x000fffff] usable
>   e820: last_pfn = 0x120000 max_arch_pfn = 0x400000000
>   e820: last_pfn = 0xdfffe max_arch_pfn = 0x400000000
>   ACPI: SRAT 00000000dffffc0e 00160 (v01 BOCHS  BXPCSRAT 00000001 BXPC 00000001)
>   SRAT: PXM 0 -> APIC 0x00 -> Node 0
>   SRAT: PXM 1 -> APIC 0x01 -> Node 1
>   SRAT: PXM 2 -> APIC 0x02 -> Node 2
>   SRAT: PXM 3 -> APIC 0x03 -> Node 3
>   SRAT: Node 0 PXM 0 [mem 0x00000000-0x0009ffff]
>   SRAT: Node 0 PXM 0 [mem 0x00100000-0x3fffffff]
>   SRAT: Node 1 PXM 1 [mem 0x40000000-0x7fffffff]
>   SRAT: Node 2 PXM 2 [mem 0x80000000-0xbfffffff]
>   SRAT: Node 3 PXM 3 [mem 0xc0000000-0xdfffffff]
>   SRAT: Node 3 PXM 3 [mem 0x100000000-0x11fffffff]
>   e820: [mem 0xe0000000-0xfeffbfff] available for PCI devices
>   e820: reserve RAM buffer [mem 0x0009fc00-0x0009ffff]
>   e820: reserve RAM buffer [mem 0xdfffe000-0xdfffffff]
> 

Thanks, applied.

> Eduardo Habkost (2):
>   pc: Save size of RAM below 4GB
>   acpi-build: Fix PCI hole handling on build_srat()
> 
>  hw/i386/acpi-build.c | 10 +++++-----
>  hw/i386/pc.c         |  1 +
>  include/hw/i386/pc.h |  2 +-
>  3 files changed, 7 insertions(+), 6 deletions(-)
> 
> -- 
> 1.8.4.2

      parent reply	other threads:[~2014-01-26  9:20 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-09 19:12 [Qemu-devel] [PATCH 0/2] acpi: Fix PCI hole handling on SRAT table Eduardo Habkost
2014-01-09 19:12 ` [Qemu-devel] [PATCH 1/2] pc: Save size of RAM below 4GB Eduardo Habkost
2014-01-09 19:12 ` [Qemu-devel] [PATCH 2/2] acpi: Fix PCI hole handling on build_srat() Eduardo Habkost
2014-01-09 20:33 ` [Qemu-devel] [PATCH 0/2] acpi: Fix PCI hole handling on SRAT table Laszlo Ersek
2014-01-10 15:17 ` Igor Mammedov
2014-01-10 15:59   ` Eduardo Habkost
2014-01-13 10:54 ` Gerd Hoffmann
2014-01-24 17:31 ` Eduardo Habkost
2014-01-26  9:25 ` Michael S. Tsirkin [this message]

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=20140126092524.GA7964@redhat.com \
    --to=mst@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=qemu-devel@nongnu.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.