From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1DxNnH-0003f3-Vf for qemu-devel@nongnu.org; Tue, 26 Jul 2005 07:40:20 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1DxNnH-0003eh-22 for qemu-devel@nongnu.org; Tue, 26 Jul 2005 07:40:19 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1DxNg3-00028b-Hv for qemu-devel@nongnu.org; Tue, 26 Jul 2005 07:32:51 -0400 Received: from [65.19.178.186] (helo=pythonhacker.is-a-geek.net) by monty-python.gnu.org with esmtp (Exim 4.34) id 1DxNNy-0001ci-8x for qemu-devel@nongnu.org; Tue, 26 Jul 2005 07:14:10 -0400 Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by pythonhacker.is-a-geek.net (Postfix) with ESMTP id C5770405DC for ; Tue, 26 Jul 2005 07:03:01 -0400 (EDT) Subject: Re: [Qemu-devel] Unknown symbol __PAGE_KERNEL_EXEC From: Darryl Dixon In-Reply-To: References: <1122352134.13708.4.camel@unixadmindazfc2.chh.co.nz> Content-Type: multipart/alternative; boundary="=-aLy1XeLMlT7RjzXdB/u5" Date: Tue, 26 Jul 2005 23:10:51 +1200 Message-Id: <1122376251.4987.2.camel@darrylsfc3box> Mime-Version: 1.0 Reply-To: esrever_otua@pythonhacker.is-a-geek.net, 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 --=-aLy1XeLMlT7RjzXdB/u5 Content-Type: text/plain Content-Transfer-Encoding: 7bit Well, I can confirm that this works OK. Also, congrats Fabrice, this version of kqemu appears to work OK with Win 9x (I booted my Win98SE machine), and the games that I use QEMU to run (AoE2, Civ3, Baldurs Gate 2) all were noticeably quicker. The speedup didn't seem to be as dramatic as WinXP with/without kqemu, but it was definitely there. Cheers, D On Tue, 2005-07-26 at 07:56 +0200, Pascal Terjan wrote: > On 7/26/05, Darryl Dixon wrote: > > Hi All, Fabrice, > > > > Compiling the new kqemu-0.7.1 on Fedora Core 4 with kernel > > 2.6.12-1.1398_FC4 gives this error: > > > > -------------8<------------------- > > [dixond@unixadmindazfc2 kqemu]$ make > > make -C /lib/modules/2.6.12-1.1398_FC4/build M=`pwd` modules > > make[1]: Entering directory `/usr/src/kernels/2.6.12-1.1398_FC4-i686' > > CC [M] /opt/src/qemu-0.7.1/kqemu/kqemu-linux.o > > cp /opt/src/qemu-0.7.1/kqemu/kqemu-mod-i386.o /opt/src/qemu-0.7.1/kqemu/kqemu-mod.o > > LD [M] /opt/src/qemu-0.7.1/kqemu/kqemu.o > > Building modules, stage 2. > > MODPOST > > Warning: could not find /opt/src/qemu-0.7.1/kqemu/.kqemu-mod.o.cmd > > for /opt/src/qemu-0.7.1/kqemu/kqemu-mod.o > > *** Warning: "__PAGE_KERNEL_EXEC" [/opt/src/qemu-0.7.1/kqemu/kqemu.ko] > > undefined! > > CC /opt/src/qemu-0.7.1/kqemu/kqemu.mod.o > > LD [M] /opt/src/qemu-0.7.1/kqemu/kqemu.ko > > make[1]: Leaving directory `/usr/src/kernels/2.6.12-1.1398_FC4-i686' > > My understanding of the problem : > on i386, in pgtable.h we have > extern unsigned long long __PAGE_KERNEL, __PAGE_KERNEL_EXEC; > #define PAGE_KERNEL_EXEC __pgprot(__PAGE_KERNEL_EXEC) > > an there is EXPORT_SYMBOL(__PAGE_KERNEL) but not for __PAGE_KERNEL_EXEC > > on x86_64 : > #define __PAGE_KERNEL_EXEC \ > (_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY | _PAGE_ACCESSED) > #define MAKE_GLOBAL(x) __pgprot((x) | _PAGE_GLOBAL) > #define PAGE_KERNEL_EXEC MAKE_GLOBAL(__PAGE_KERNEL_EXEC) > > So, on i386 __PAGE_KERNEL_EXEC is an extern variable wich is not > exported and not a macro. > > I wrote a patch on > http://www.zarb.org/cgi-bin/viewcvs.cgi/plf/SPECS/non-free/dkms-kqemu/kqemu-0.7.1-PAGE_KERNEL_EXEC.patch?rev=1.1&view=markup > but I don't know much kernel stuff so I have no idea how much it is > broken :-) -- Darryl Dixon --=-aLy1XeLMlT7RjzXdB/u5 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 7bit Well, I can confirm that this works OK.

Also, congrats Fabrice, this version of kqemu appears to work OK with Win 9x (I booted my Win98SE machine), and the games that I use QEMU to run (AoE2, Civ3, Baldurs Gate 2) all were noticeably quicker.  The speedup didn't seem to be as dramatic as WinXP with/without kqemu, but it was definitely there.

Cheers,
D


On Tue, 2005-07-26 at 07:56 +0200, Pascal Terjan wrote:
On 7/26/05, Darryl Dixon <esrever_otua@pythonhacker.is-a-geek.net> wrote:
> Hi All, Fabrice,
> 
>     Compiling the new kqemu-0.7.1 on Fedora Core 4 with kernel
> 2.6.12-1.1398_FC4 gives this error:
> 
> -------------8<-------------------
> [dixond@unixadmindazfc2 kqemu]$ make
> make -C /lib/modules/2.6.12-1.1398_FC4/build M=`pwd` modules
> make[1]: Entering directory `/usr/src/kernels/2.6.12-1.1398_FC4-i686'
>   CC [M]  /opt/src/qemu-0.7.1/kqemu/kqemu-linux.o
> cp /opt/src/qemu-0.7.1/kqemu/kqemu-mod-i386.o /opt/src/qemu-0.7.1/kqemu/kqemu-mod.o
>   LD [M]  /opt/src/qemu-0.7.1/kqemu/kqemu.o
>   Building modules, stage 2.
>   MODPOST
> Warning: could not find /opt/src/qemu-0.7.1/kqemu/.kqemu-mod.o.cmd
> for /opt/src/qemu-0.7.1/kqemu/kqemu-mod.o
> *** Warning: "__PAGE_KERNEL_EXEC" [/opt/src/qemu-0.7.1/kqemu/kqemu.ko]
> undefined!
>   CC      /opt/src/qemu-0.7.1/kqemu/kqemu.mod.o
>   LD [M]  /opt/src/qemu-0.7.1/kqemu/kqemu.ko
> make[1]: Leaving directory `/usr/src/kernels/2.6.12-1.1398_FC4-i686'

My understanding of the problem :
on i386, in pgtable.h we have
extern unsigned long long __PAGE_KERNEL, __PAGE_KERNEL_EXEC;
#define PAGE_KERNEL_EXEC        __pgprot(__PAGE_KERNEL_EXEC)

an there is EXPORT_SYMBOL(__PAGE_KERNEL) but not for __PAGE_KERNEL_EXEC

on x86_64 :
#define __PAGE_KERNEL_EXEC \
        (_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY | _PAGE_ACCESSED)
#define MAKE_GLOBAL(x) __pgprot((x) | _PAGE_GLOBAL)
#define PAGE_KERNEL_EXEC MAKE_GLOBAL(__PAGE_KERNEL_EXEC)

So, on i386 __PAGE_KERNEL_EXEC is an extern variable wich is not
exported and not a macro.

I wrote a patch on
http://www.zarb.org/cgi-bin/viewcvs.cgi/plf/SPECS/non-free/dkms-kqemu/kqemu-0.7.1-PAGE_KERNEL_EXEC.patch?rev=1.1&view=markup
but I don't know much kernel stuff so I have no idea how much it is
broken :-)
--
Darryl Dixon <esrever_otua@pythonhacker.is-a-geek.net>
--=-aLy1XeLMlT7RjzXdB/u5--