From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Nk3eq-00041m-5D for qemu-devel@nongnu.org; Tue, 23 Feb 2010 17:55:12 -0500 Received: from [199.232.76.173] (port=54098 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Nk3ep-00041c-PR for qemu-devel@nongnu.org; Tue, 23 Feb 2010 17:55:11 -0500 Received: from Debian-exim by monty-python.gnu.org with spam-scanned (Exim 4.60) (envelope-from ) id 1Nk3en-0007C1-0W for qemu-devel@nongnu.org; Tue, 23 Feb 2010 17:55:11 -0500 Received: from e5.ny.us.ibm.com ([32.97.182.145]:57763) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1Nk3em-0007Bx-NY for qemu-devel@nongnu.org; Tue, 23 Feb 2010 17:55:08 -0500 Received: from d01relay01.pok.ibm.com (d01relay01.pok.ibm.com [9.56.227.233]) by e5.ny.us.ibm.com (8.14.3/8.13.1) with ESMTP id o1NMfUF3010214 for ; Tue, 23 Feb 2010 17:41:30 -0500 Received: from d01av03.pok.ibm.com (d01av03.pok.ibm.com [9.56.224.217]) by d01relay01.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id o1NMt69l117472 for ; Tue, 23 Feb 2010 17:55:07 -0500 Received: from d01av03.pok.ibm.com (loopback [127.0.0.1]) by d01av03.pok.ibm.com (8.14.3/8.13.1/NCO v10.0 AVout) with ESMTP id o1NMt6u7008215 for ; Tue, 23 Feb 2010 19:55:06 -0300 Date: Tue, 23 Feb 2010 16:55:01 -0600 From: Ryan Harper Subject: Re: [Qemu-devel] [PATCH] Fix segfault with ram_size > 4095M without kvm Message-ID: <20100223225501.GQ17350@us.ibm.com> References: <20100223151314.GN17350@us.ibm.com> <4B840A17.9050809@aurel32.net> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <4B840A17.9050809@aurel32.net> Content-Transfer-Encoding: quoted-printable List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Aurelien Jarno Cc: Ryan Harper , qemu-devel@nongnu.org, kvm@vger.kernel.org * Aurelien Jarno [2010-02-23 11:37]: > Ryan Harper a =E9crit : > > Currently, x86_64-softmmu qemu segfaults when trying to use > 4095M m= emsize. > > 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'r= e > > not using kvm > >=20 > > Upstream qemu-kvm is affected if using the -no-kvm option; this patch= address > > the segfault there as well. >=20 > 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 wit= h > 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=3D0x7f33d111d010, n=3D0, page= _addr=3D4295094272) at /home/rharper/work/git/qemu/exec.c:1125 1125 tb->page_next[n] =3D p->first_tb; (gdb) bt #0 0x00000000004d1a59 in tb_alloc_page (tb=3D0x7f33d111d010, n=3D0, page= _addr=3D4295094272) at /home/rharper/work/git/qemu/exec.c:1125 #1 0x00000000004d1bf1 in tb_link_phys (tb=3D0x7f33d111d010, phys_pc=3D42= 95098352, phys_page2=3D18446744073709551615) at /home/rharper/work/git/qemu/exec.c:1215 #2 0x00000000004d1612 in tb_gen_code (env=3D0x2180ed0, pc=3D4294967280, = cs_base=3D4294901760, flags=3D68, cflags=3D0) at /home/rharper/work/git/qemu/exec.c:913 #3 0x00000000004d849c in tb_find_slow (pc=3D4294967280, cs_base=3D429490= 1760, flags=3D68) 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=3D0x2180ed0) at /home/rharpe= r/work/git/qemu/cpu-exec.c:579 #6 0x000000000040d686 in qemu_cpu_exec (env=3D0x2180ed0) at /home/rharpe= r/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=3D3, argv=3D0x7fff5782ab08, envp=3D0= x7fff5782ab28) at /home/rharper/work/git/qemu/vl.c:6102 >=20 >=20 > > Signed-off-by: Ryan Harper > > --- > > vl.c | 6 ++++++ > > 1 files changed, 6 insertions(+), 0 deletions(-) > >=20 > > 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); > > + } > > } > > =20 > > if (qemu_init_main_loop()) { >=20 >=20 > --=20 > 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 --=20 Ryan Harper Software Engineer; Linux Technology Center IBM Corp., Austin, Tx ryanh@us.ibm.com