Received: by oss.sgi.com id ; Sun, 9 Apr 2000 03:08:28 -0700 Received: from file.phys.tohoku.ac.jp ([130.34.117.125]:57067 "HELO file.phys.tohoku.ac.jp") by oss.sgi.com with SMTP id ; Sun, 9 Apr 2000 03:08:07 -0700 Received: (qmail 10138 invoked by uid 239); 9 Apr 2000 10:08:02 -0000 Message-ID: <20000409100802.10137.qmail@file.phys.tohoku.ac.jp> Date: Sun, 09 Apr 2000 19:08:02 +0900 From: suzukis@file.phys.tohoku.ac.jp To: linux-xfs@oss.sgi.com Subject: 486 and Linux-2.3.99pre2+XFS Mime-Version: 1.0 Content-type: text/plain; charset=ISO-2022-JP X-Mailer: addmail [version 2.0.12] Sender: owner-linux-xfs@oss.sgi.com Precedence: bulk Return-Path: X-Orcpt: rfc822;linux-xfs-outgoing # For first, I must apologize, # this is NOT related to the XFS implementation itself, # this is related to the kernel source publisized by SGI. # However, I wish, it's not completely-meaningless for # linux-xfs subscribers who failed to run on 486 PC. Hello, There's anybody who makes Linux-XFS kernel (by SGI) running on 486 PC? Yet I've not succeed to do it. Even if the kernel can run on 586 (and later) PCs, it fails on 486. Of course, I choose 386 + math emulation in kernel configuration. I receive following message. My environments are almost from RedHat Linux 6.2. gcc :egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) binutils :binutils-2.9.5.0.22 --------------------------------------------------------------------- zone(0): 4096 pages. zone(1): 12360 pages. zone(2): 0 pages. Initializing CPU#0 Console: colour VGA 80x25 Calibrating delay loop... 33.10 BogoMIPS Memory: 62076k/65824k available (1336k kernel code, 3360k reserved, 94k data, 192k init, 0k highmem) Checking if this processor honours the WP bit even in supervisor mode... invalid operand: 0000 CPU: 0 EIP: 0010:[] EFLAGS: 00010206 eax: 00101001 ebx: 00000530 ecx: 000001d9 edx: 00001000 esi: 00000100 edi: 00000014 ebp: 00000001 esp: c0267f98 Process swapper (pid: 0, stackpage=c0267000) Stack: 00101001 00001000 00000063 c0290003 c026bf1a c0260010 00010206 c026c11f 00000000 00092000 c0105000 00001ff0 0000f27c 00131560 00000002 00004048 00000002 00004048 00000348 c02689a5 00000000 c0267ff8 c01f3da0 00000000 Call Trace: [][][] Code 0f 32 03 e0 fe 0f 30 58 5a 59 68 c0 0f 11 cc0 e9 9c fe ff ff Kernel Panic: Attempted to kill the idle task! In idle task - not syncing --------------------------------------------------------------------- The error seems to be related to the SGI's modification of "page_fault" entry in arch/i386/kernel/entry.S. diff -x CVS -Nur linux-2.3.99pre2/arch/i386/kernel/entry.S linux-sgi/arch/i386/kernel/entry.S --- linux-2.3.99pre2/arch/i386/kernel/entry.S Sun Apr 2 16:26:51 2000 +++ linux-sgi/arch/i386/kernel/entry.S Sat Mar 25 09:41:33 2000 @@ -410,6 +432,16 @@ jmp error_code ENTRY(page_fault) + pushl %ecx + pushl %edx + pushl %eax + movl $473,%ecx + rdmsr + andl $0xfffffffe,%eax + wrmsr + popl %eax + popl %edx + popl %ecx pushl $ SYMBOL_NAME(do_page_fault) jmp error_code When I remove above additional instructions, the WP bit checking succeed. What the above instructions are to do, and what feature requests them, and it's possible to port on 386/486 PCs? suzuki