From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.33) id 1Cfk0i-0007OS-Bz for qemu-devel@nongnu.org; Sat, 18 Dec 2004 14:13:00 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.33) id 1Cfk0h-0007Ny-C4 for qemu-devel@nongnu.org; Sat, 18 Dec 2004 14:12:59 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1Cfk0h-0007Nc-5b for qemu-devel@nongnu.org; Sat, 18 Dec 2004 14:12:59 -0500 Received: from [64.233.184.203] (helo=wproxy.gmail.com) by monty-python.gnu.org with esmtp (Exim 4.34) id 1Cfjo2-00056h-Hk for qemu-devel@nongnu.org; Sat, 18 Dec 2004 13:59:54 -0500 Received: by wproxy.gmail.com with SMTP id 63so28274wri for ; Sat, 18 Dec 2004 10:59:53 -0800 (PST) Message-ID: Date: Sat, 18 Dec 2004 19:59:52 +0100 From: Magnus Damm Subject: Re: [Qemu-devel] softmmu thoughts In-Reply-To: Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit References: <1098217677.26133.26.camel@kubu.opensource.se> <4175B3CA.9050209@sti.net> <41765D06.4020006@bellard.org> Reply-To: Magnus Damm , qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Piotras Cc: qemu-devel@nongnu.org Hello, Your patch really rocks! I have applied the patch to CVS of today. The guest OS is custom linux-2.6.9 with serial console. The host is Gentoo Linux on Pentium M hardware, vanilla 2.6.9 kernel. Running the guest inside QEMU with 32MiB RAM and -nographic gives me the following performance gain compared to unpatched CVS of today: memory index: 40% up integer index: 36% up fp index: 2% up Thanks, keep up the good work! / magnus On Thu, 16 Dec 2004 13:22:41 +0100, Piotras wrote: > Hi! > > I updated the patch to solve problems reported by Jens Arm: > * compilation problem on Mandrake 9.1 > * SEGV problem when working with non-TLS glibc. > Jens, thanks for your help! > > I also cleaned-up the code and comments in several places (for > example page_unprotect). > > The patch should apply cleanly to recent CVS. It should work > with 0.6.1 without problems too. > > > Regards, > > Piotrek > > On Tue, 14 Dec 2004 18:54:04 +0100, Piotras wrote: > > Hi! > > > > I'm attaching a new patch based on your suggestions. On my machine > > nbench gives: > > memory index: 37% up > > integer index: 36% up > > fp index: 4% up > > > > The patch is divided in three files to simplify review. Part 1 contains > > mostly rearrangement existing code necessary for the patch. Part 2 > > adds the new mmu mode. Part 3 contains heuristic to optimize > > performance of iomem and self modifying code. > > > > To test the patch create a build directory and run: > > > tar -zxf _PATH_TO_qemu-0.6.1.tar.gz > > > tar -zxf _PATH_TO_linux-test-0.5.1.tar.gz > > > cd qemu-0.6.1 > > > ./configure --target-list=i386-softmmu > > > gunzip < _PATH_TO_mmu-part1.patch.gz | patch -p1 > > > gunzip < _PATH_TO_mmu-part2.patch.gz | patch -p1 > > > gunzip < _PATH_TO_mmu-part3.patch.gz | patch -p1 > > > make > > > ./i386-softmmu/qemu -m 64 -L pc-bios -hda ../linux-test/linux.img > > > > Last but not least. I'd like to acknowledge Magnus contribution -- VM > > setup code is derived from his work. > > > > Regards, > > > > Piotrek > > > > On Wed, 20 Oct 2004 14:41:42 +0200, Fabrice Bellard wrote: > > > Hi, > > > > > > The idea is interesting. Here are several suggestions: > > > > > > - It would be more efficient and simpler to map one 4KB host memory page > > > every 8 KB. Then you can have a fixed mmap() mapping (no syscall > > > overhead to change the mappings) and a simple way to handle unaligned > > > accesses. > > > - The critical point would be to keep standard soft MMU accesses for > > > device access. An architectural change is needed to do that, but it > > > seems easy to add. > > > - This patch should work with qemu, not qemu-fast. The future of > > > qemu-fast is to use a kernel module to have near native performances. It > > > is not worthwhile to invest time in soft MMU or dynamic translation when > > > you can just execute the code as is ! > > > > > > Fabrice. > > >