From: Ryan Harper <ryanh@us.ibm.com>
To: Aurelien Jarno <aurelien@aurel32.net>
Cc: Ryan Harper <ryanh@us.ibm.com>,
qemu-devel@nongnu.org, kvm@vger.kernel.org
Subject: Re: [Qemu-devel] [PATCH] Fix segfault with ram_size > 4095M without kvm
Date: Tue, 23 Feb 2010 16:55:01 -0600 [thread overview]
Message-ID: <20100223225501.GQ17350@us.ibm.com> (raw)
In-Reply-To: <4B840A17.9050809@aurel32.net>
* Aurelien Jarno <aurelien@aurel32.net> [2010-02-23 11:37]:
> Ryan Harper a écrit :
> > Currently, x86_64-softmmu qemu segfaults when trying to use > 4095M memsize.
> > This patch adds a simple check and error message (much like the 2047 limit on
> > 32-bit hosts) on ram_size in the control path after we determine we're
> > not using kvm
> >
> > Upstream qemu-kvm is affected if using the -no-kvm option; this patch address
> > the segfault there as well.
>
> It looks like workarounding the real bug. At some point both
> i386-softmmu (via PAE) and x86_64-softmmu were able to support > 4GB of
> memory. I remember adding the support long time ago, and testing it with
> 32GB of emulated RAM.
Indeed it was a workaround. I thought it was reasonable since we cap
the size for 32-bit at 2047; but Anthony mentioned that on 64-bit hosts
some targets had >4G support so we should fix the segfault. here is the
backtrace I got from the core file:
Core was generated by `./x86_64-softmmu/qemu-system-x86_64 -m 4096'.
Program terminated with signal 11, Segmentation fault.
#0 0x00000000004d1a59 in tb_alloc_page (tb=0x7f33d111d010, n=0, page_addr=4295094272)
at /home/rharper/work/git/qemu/exec.c:1125
1125 tb->page_next[n] = p->first_tb;
(gdb) bt
#0 0x00000000004d1a59 in tb_alloc_page (tb=0x7f33d111d010, n=0, page_addr=4295094272)
at /home/rharper/work/git/qemu/exec.c:1125
#1 0x00000000004d1bf1 in tb_link_phys (tb=0x7f33d111d010, phys_pc=4295098352, phys_page2=18446744073709551615)
at /home/rharper/work/git/qemu/exec.c:1215
#2 0x00000000004d1612 in tb_gen_code (env=0x2180ed0, pc=4294967280, cs_base=4294901760, flags=68, cflags=0)
at /home/rharper/work/git/qemu/exec.c:913
#3 0x00000000004d849c in tb_find_slow (pc=4294967280, cs_base=4294901760, flags=68)
at /home/rharper/work/git/qemu/cpu-exec.c:161
#4 0x00000000004d85b2 in tb_find_fast () at /home/rharper/work/git/qemu/cpu-exec.c:182
#5 0x00000000004d8cdc in cpu_x86_exec (env1=0x2180ed0) at /home/rharper/work/git/qemu/cpu-exec.c:579
#6 0x000000000040d686 in qemu_cpu_exec (env=0x2180ed0) at /home/rharper/work/git/qemu/vl.c:3895
#7 0x000000000040d76b in tcg_cpu_exec () at /home/rharper/work/git/qemu/vl.c:3924
#8 0x000000000040da39 in main_loop () at /home/rharper/work/git/qemu/vl.c:4042
#9 0x0000000000411a2f in main (argc=3, argv=0x7fff5782ab08, envp=0x7fff5782ab28)
at /home/rharper/work/git/qemu/vl.c:6102
>
>
> > Signed-off-by: Ryan Harper <ryanh@us.ibm.com>
> > ---
> > vl.c | 6 ++++++
> > 1 files changed, 6 insertions(+), 0 deletions(-)
> >
> > diff --git a/vl.c b/vl.c
> > index db7a178..a659e98 100644
> > --- a/vl.c
> > +++ b/vl.c
> > @@ -5760,6 +5760,12 @@ int main(int argc, char **argv, char **envp)
> > fprintf(stderr, "failed to initialize KVM\n");
> > exit(1);
> > }
> > + } else {
> > + /* without kvm enabled, we can only support 4095 MB RAM */
> > + if (ram_size > (4095UL << 20)) {
> > + fprintf(stderr, "qemu: without kvm support at most 4095 MB RAM can be simulated\n");
> > + exit(1);
> > + }
> > }
> >
> > if (qemu_init_main_loop()) {
>
>
> --
> Aurelien Jarno GPG: 1024D/F1BCDB73
> aurelien@aurel32.net http://www.aurel32.net
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
Ryan Harper
Software Engineer; Linux Technology Center
IBM Corp., Austin, Tx
ryanh@us.ibm.com
next prev parent reply other threads:[~2010-02-23 22:55 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-23 15:13 [PATCH] Fix segfault with ram_size > 4095M without kvm Ryan Harper
2010-02-23 15:13 ` [Qemu-devel] " Ryan Harper
2010-02-23 17:02 ` Aurelien Jarno
2010-02-23 17:02 ` [Qemu-devel] " Aurelien Jarno
2010-02-23 20:30 ` Alexander Graf
2010-02-23 21:07 ` Anthony Liguori
2010-02-23 21:07 ` Anthony Liguori
2010-02-23 21:24 ` Aurelien Jarno
2010-02-23 21:24 ` Aurelien Jarno
2010-02-23 22:55 ` Ryan Harper [this message]
2010-03-04 21:27 ` Aurelien Jarno
2010-03-04 21:34 ` Ryan Harper
2010-03-04 21:34 ` Ryan Harper
2010-03-06 21:31 ` Aurelien Jarno
-- strict thread matches above, loose matches on Subject: below --
2010-12-08 18:01 Luiz Capitulino
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=20100223225501.GQ17350@us.ibm.com \
--to=ryanh@us.ibm.com \
--cc=aurelien@aurel32.net \
--cc=kvm@vger.kernel.org \
--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.