From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1CzedU-0007zz-UI for qemu-devel@nongnu.org; Fri, 11 Feb 2005 12:31:21 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1CzedT-0007yk-1v for qemu-devel@nongnu.org; Fri, 11 Feb 2005 12:31:20 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1CzedS-0007yD-TI for qemu-devel@nongnu.org; Fri, 11 Feb 2005 12:31:18 -0500 Received: from [128.8.10.163] (helo=po1.wam.umd.edu) by monty-python.gnu.org with esmtp (Exim 4.34) id 1CzePt-00009T-Rx for qemu-devel@nongnu.org; Fri, 11 Feb 2005 12:17:17 -0500 Received: from jbrown.mylinuxbox.org (jma-box.student.umd.edu [129.2.237.180]) by po1.wam.umd.edu (8.12.10/8.12.10) with ESMTP id j1BHHGj0017633 for ; Fri, 11 Feb 2005 12:17:17 -0500 (EST) Date: Fri, 11 Feb 2005 12:17:16 -0500 From: "Jim C. Brown" Subject: Re: [Qemu-devel] The QEMU Accelerator Module Message-ID: <20050211171716.GA5134@jbrown.mylinuxbox.org> References: <420BEEB7.1010906@bellard.org> <20050211160909.G12093@mrwint.cisco.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20050211160909.G12093@mrwint.cisco.com> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org On Fri, Feb 11, 2005 at 04:09:10PM +0000, Derek Fawcus wrote: > Well, > rather than whinging because Fabrice has not chosen to distribute his > work under your preferred licence. People could simply reimplement it. Or do as I am, and figure out how to mix plex86 with the open source part. Or even better, dig deep in your pockets and sponser Fabrice to completely open it up. > > Mind - this involves effort on their behalf, and some thinking. So it's > certainly easier to moan. However I suggest that such moaning is simply > a waste of time and effort. > > Now I don't know how Fabrice has done the kqemu module, but the obvious > approach that springs to mind is simply moving the qemu-fast processing > into the kernel with checks for the address boundary. So if I was to > attempt to reimplement it, my starting point would be to approach it > in that fashion. > > Namely placing a version of cpu_exec() and/or main_loop() into the kernel > together with the use of the USE_CODE_COPY facility and some bounds checks > such that if the machine being emulated attempted to have accessable memory > above 0xc0000000 it would fall back to the user-space SOFT_MMU emulation. > One could then manipulate the process space such that while the kernel > module was running user space code, it's process address space (< 0xc0000000) > reflected the emulated machine space. That wouldn't be complete, as kqemu uses virtalization as well. Also, it seems that a lot of the kernel MMU support is in the open source code. Only kqemu_delete, kqemu_exec, kqemu_get_cpu_state, and kqemu_init need to be reimplemented. -- Infinite complexity begets infinite beauty. Infinite precision begets infinite perfection.