From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.33) id 1CGK3c-0007Gw-V5 for qemu-devel@nongnu.org; Sat, 09 Oct 2004 12:26:57 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.33) id 1CGK3b-0007FR-I2 for qemu-devel@nongnu.org; Sat, 09 Oct 2004 12:26:55 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1CGK3b-0007FD-De for qemu-devel@nongnu.org; Sat, 09 Oct 2004 12:26:55 -0400 Received: from [193.170.194.10] (helo=zero.aec.at) by monty-python.gnu.org with esmtp (Exim 4.34) id 1CGJwe-0007I7-Uj for qemu-devel@nongnu.org; Sat, 09 Oct 2004 12:19:45 -0400 References: <1097175246.2833.51.camel@orion> From: Andi Kleen Date: Sat, 09 Oct 2004 18:19:37 +0200 In-Reply-To: (Karl Magdsick's message of "Fri, 8 Oct 2004 20:22:25 -0400") Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: [Qemu-devel] Re: qemu crashes and freezes on x86_64/amd64 host Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Karl Magdsick Cc: qemu-devel@nongnu.org Karl Magdsick writes: > What is your compiler target when creating the qemu executible? > > My understanding is that almost all of the instructions in 64-bit mode > are reverse-compatible with 32-bit mode, but a few have changed > slightly. If your qemu executible is compiled for 64-bit mode (and is > therefore being run in 64-bit usermode), but the jit is generating > 32-bit code, this could be problematic for a small number of > instructions. I have no direct knowledge of the differences between > the instruction encodings for 32-bit and 64-bit modes, just hearsay. That's basically correct, but x86-64 has a "compat mode" that executes old 32bit programs without changes. When qemu has been compiled as 32bit program it will run in compat mode. The main reason things crash there is that it gives these programs by default 4GB of address space. An i386 kernel defaults to 3GB. You can force the 3GB address space with linux32 --3gb ... I tested an older 32bit qemu version and it worked for me on an 64bit kernel. Wasn't able to compile a new one so far because someone added a bogus dependency on arts. -Andi