Skip to contentSkip to conversation

2.5 crash on boot

DISCUSSION Brian Murphy 3 participants 6 messages Jul 1, 2003 – Jul 2, 2003 1 message not in the archive MIPS

lore
Share & tools
lore
#0 lore raw

Hi,

I get this now when my system (working well with 2.4) attempts to read from the disk on my system:

Freeing unused kernel memory: 88k freed Unable to handle kernel paging request at virtual address 07cac000, epc == 8005c
Oops in arch/mips/mm/fault.c::do_page_fault, line 205[#1]: Cpu 0 $ 0 : 00000000 b0008400 00000000 fffffff4

$ 4 : 07cac000 00000000 00011000 000007df
$ 8 : 07cac000 801e4ab8 811375e0 00000001
$12 : 00000001 00100100 ffffffff 87fff284
$16 : 00000000 07cac000 00000000 87ce5e98
$20 : 00011000 ffffffbf 000007df 00008075
$24 : 87fff28c 00000001                  $28 : 87ce4000 87ce5de8 87f1c720 80059e2c
Hi      : 00000000                       Lo      : 00000000
epc   : 80059cb0    Not tainted
Status: b0008403               Cause : 00001008
KERNEL EXL IE Process swapon (pid: 19, stackpage=87d22ac0)
Stack:  8004ee28 80106b68 811377e8 00000000 00000000 801d7c00 00011000 ffc000000
       8006a2d8 87ce5e98 00000201 c0000000 801d7c00 c0011000 ffc00000 
87ce5e988
       87f0a120 00000044 87f0a120 87f0b4e0 00000011 000000d2 00000020 
000007df.
Call Trace:                                                                    [<8004ee28>] pte_alloc_kernel+0x74/0x158
[<80106b68>] blk_remove_plug+0x78/0x98  [<80059e2c>] map_area_pmd+0x84/0xd0   [<8006a2d8>] blkdev_readpage+0x0/0x28
[<80059f98>] map_vm_area+0x74/0xe0   [<8005a4f8>] __vmalloc+0x140/0x178
[<800228c0>] autoremove_wake_function+0x0/0x44
[<8006a150>] blkdev_get_block+0x0/0x74        [<8005a544>] vmalloc+0x14/0x20        [<8005e1bc>] sys_swapon+0x6ec/0x84c
[<8005dee4>] sys_swapon+0x414/0x84c
[<8021b000>] pci_scan_device+0xf0/0x1a8
[<8000cc20>] stack_done+0x18/0x34      [<80008413>] handle_ades_int+0x27/0x34
Code: 8fb30040  3c140040  2415ffbf <8e220000> 8e630000  3c04801b  2484cb6c  005

Any pointers? I'm running in 32 bit mode.

/Brian

#1 lore raw

This may be related to something I just found -- in pmd_populate_kernel, a physical address is installed in the pmd instead of a virtual address. The patch I sent Ralf 30 minutes ago is attached :-)

Kip

Quoted 50 lines · Brian Murphy

Hi,

I get this now when my system (working well with 2.4) attempts to read from the disk on my system:

Freeing unused kernel memory: 88k freed

Unable to handle kernel paging request at virtual address 07cac000, epc

== 8005c
Oops in arch/mips/mm/fault.c::do_page_fault, line
205[#1]:
Cpu 0

$ 0 : 00000000 b0008400 00000000 fffffff4
$ 4 : 07cac000 00000000 00011000 000007df
$ 8 : 07cac000 801e4ab8 811375e0 00000001
$12 : 00000001 00100100 ffffffff 87fff284
$16 : 00000000 07cac000 00000000 87ce5e98
$20 : 00011000 ffffffbf 000007df 00008075
$24 : 87fff28c 00000001
$28 : 87ce4000 87ce5de8 87f1c720 80059e2c
Hi      : 00000000
Lo      : 00000000
epc   : 80059cb0    Not tainted
Status: b0008403
Cause : 00001008
KERNEL EXL IE Process swapon (pid: 19, stackpage=87d22ac0)
Stack:  8004ee28 80106b68 811377e8 00000000 00000000 801d7c00 00011000
ffc000000
        8006a2d8 87ce5e98 00000201 c0000000 801d7c00 c0011000 ffc00000
87ce5e988
        87f0a120 00000044 87f0a120 87f0b4e0 00000011 000000d2 00000020
000007df.
Call
Trace:
 [<8004ee28>] pte_alloc_kernel+0x74/0x158
 [<80106b68>] blk_remove_plug+0x78/0x98
 [<80059e2c>] map_area_pmd+0x84/0xd0
 [<8006a2d8>] blkdev_readpage+0x0/0x28
 [<80059f98>] map_vm_area+0x74/0xe0
 [<8005a4f8>] __vmalloc+0x140/0x178
 [<800228c0>] autoremove_wake_function+0x0/0x44
 [<8006a150>] blkdev_get_block+0x0/0x74
 [<8005a544>] vmalloc+0x14/0x20
 [<8005e1bc>] sys_swapon+0x6ec/0x84c
 [<8005dee4>] sys_swapon+0x414/0x84c
 [<8021b000>] pci_scan_device+0xf0/0x1a8
 [<8000cc20>] stack_done+0x18/0x34
 [<80008413>] handle_ades_int+0x27/0x34
Quoted 7 lines
Code: 8fb30040  3c140040  2415ffbf <8e220000> 8e630000  3c04801b

2484cb6c 005

Any pointers? I'm running in 32 bit mode.

/Brian

Index: include/asm-mips/pgalloc.h
===================================================================
RCS file: /home/cvs/linux/include/asm-mips/pgalloc.h,v retrieving revision 1.27

asm-mips/pgalloc.h +1 -1
diff -u -r1.27 pgalloc.h
@@ -17,7 +17,7 @@
 static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd,
 	pte_t *pte)
 {
-	set_pmd(pmd, __pmd(__pa(pte)));
+	set_pmd(pmd, __pmd((unsigned long)pte));
 }
 
 static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd,

Index: include/asm-mips64/pgalloc.h
===================================================================
RCS file: /home/cvs/linux/include/asm-mips64/pgalloc.h,v retrieving revision 1.29

asm-mips64/pgalloc.h +1 -1
diff -u -r1.29 pgalloc.h
@@ -19,7 +19,7 @@
 static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd,
 	pte_t *pte)
 {
-	set_pmd(pmd, __pmd(__pa(pte)));
+	set_pmd(pmd, __pmd((unsigned long)pte));
 }
 
 static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd,
#2 lore raw
Quoted 8 lines · Kip Walker

This may be related to something I just found -- in pmd_populate_kernel, a physical address is installed in the pmd instead of a virtual address. The patch I sent Ralf 30 minutes ago is attached :-)

Kip

With your patch I get a hang instead of a short hang and then the crash. On the other hand it manages to enable the swap partition before hanging:

EXT3-fs: mounted filesystem with ordered data mode. VFS: Mounted root (ext3 filesystem) readonly. Freeing unused kernel memory: 88k freed Adding 131532k swap on /dev/hda1. Priority:-1 extents:1

Has anyone booted 32 bit 2.5 fully into userspace?

/Brian

#3 lore raw
Quoted 1 line · Brian Murphy

Has anyone booted 32 bit 2.5 fully into userspace?

People have done it - but degree off success greatly varies. I'm optimistic to have 2.5 stable enough for basic use pretty soon.

Ralf

#4 lore raw
In reply to Kip Walker
Quoted 8 lines · Kip Walker

This may be related to something I just found -- in pmd_populate_kernel, a physical address is installed in the pmd instead of a virtual address. The patch I sent Ralf 30 minutes ago is attached :-)

Kip

Now (with the latest source) I get:

kjournald starting. Commit interval 5 seconds EXT3-fs: mounted filesystem with ordered data mode. VFS: Mounted root (ext3 filesystem) readonly. Freeing unused kernel memory: 88k freed Adding 131532k swap on /dev/hda1. Priority:-1 extents:1 EXT3 FS 2.4-0.9.16, 02 Dec 2001 on hda2, internal journal mount: Exception at [<800e5650>] (800e5830) mount: Exception at [<800e5650>] (800e5830) mount: Exception at [<800e5650>] (800e5830)

The error is in __copy_user (both_aligned), closer and closer...

/Brian

A message that is not in the archive (sent off-list or not yet received): [email protected]

#6 lore raw
Quoted 4 lines · J. Alexander Jacocks

Brian Murphy wrote:

<snip>

Quoted 10 lines
Quoted 4 lines

Any pointers? I'm running in 32 bit mode.

/Brian

On what platform?

LASAT - VR5000 / 1M chip controlled second level cache.

/Brian