From: Marcelo Tosatti <mtosatti@redhat.com>
To: Ryan Harper <ryanh@us.ibm.com>
Cc: Alex Williamson <alex.williamson@hp.com>,
kvm-devel <kvm@vger.kernel.org>
Subject: Re: Can't boot guest with more than 3585MB when using large pages
Date: Fri, 3 Apr 2009 20:28:50 -0300 [thread overview]
Message-ID: <20090403232850.GA5877@amt.cnet> (raw)
In-Reply-To: <20090324215746.GH27104@us.ibm.com>
On Tue, Mar 24, 2009 at 04:57:46PM -0500, Ryan Harper wrote:
> * Alex Williamson <alex.williamson@hp.com> [2009-03-24 16:07]:
> >
> > On a 2.6.29, x86_64 host/guest, what's special about specifying a guest
> > size of -m 3586 when using -mem-path backed by hugetlbfs? 3585 works,
> > 3586 hangs here:
> >
> > ...
> > PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
> > Placing 64MB software IO TLB between ffff880020000000 - ffff880024000000
> > software IO TLB at phys 0x20000000 - 0x24000000
> > Memory: 3504832k/4196352k available (2926k kernel code, 524740k absent, 166780k reserved, 1260k data, 496k init)
> >
> > I can back -mem-path by tmpfs or disk and it works fine. Also works
> > with no -mem-path, but it would obviously be nice to benefit from large
> > pages on big guests. The system has plenty of huge pages to back the
> > request, and booting with -mem-prealloc makes no difference. Tested on
> > latest git as of today. Thanks,
>
> I've seen this as well, haven't had a chance to dig into the issue yet
> either. Certainly can test patches if anyone has an idea of what's
> wrong here.
Can you please try the following
------
qemu: kvm: fixup 4GB+ memslot large page alignment
Need to align the 4GB+ memslot after we know its address, not before.
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
diff --git a/qemu/hw/pc.c b/qemu/hw/pc.c
index d4a4320..cc84772 100644
--- a/qemu/hw/pc.c
+++ b/qemu/hw/pc.c
@@ -866,6 +866,7 @@ static void pc_init1(ram_addr_t ram_size, int vga_ram_size,
/* above 4giga memory allocation */
if (above_4g_mem_size > 0) {
+ ram_addr = qemu_ram_alloc(above_4g_mem_size);
if (hpagesize) {
if (ram_addr & (hpagesize-1)) {
unsigned long aligned_addr;
@@ -874,7 +875,6 @@ static void pc_init1(ram_addr_t ram_size, int vga_ram_size,
ram_addr = aligned_addr;
}
}
- ram_addr = qemu_ram_alloc(above_4g_mem_size);
cpu_register_physical_memory(0x100000000ULL,
above_4g_mem_size,
ram_addr);
next prev parent reply other threads:[~2009-04-03 23:29 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-24 21:06 Can't boot guest with more than 3585MB when using large pages Alex Williamson
2009-03-24 21:57 ` Ryan Harper
2009-03-25 16:10 ` Marcelo Tosatti
2009-03-25 16:26 ` Alex Williamson
2009-04-03 23:28 ` Marcelo Tosatti [this message]
2009-04-04 17:56 ` Alex Williamson
2009-04-05 11:53 ` Avi Kivity
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=20090403232850.GA5877@amt.cnet \
--to=mtosatti@redhat.com \
--cc=alex.williamson@hp.com \
--cc=kvm@vger.kernel.org \
--cc=ryanh@us.ibm.com \
/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