Subject: the problem about open file on ramdisk

From: "embedlf" <[email-masked]>
Date: Thu, 18 Sep 2003 9:22:23 +0800

linux-mips:
	 I use initrd ramdisk as rootfs on my mips cpu board.But after compiling kernel and download it to the board,that print the error message.Following is the message.

CPU revision is: 00001800

Primary instruction cache 64kb, linesize 16 bytes.

Primary data cache 16kb, linesize 16 bytes.

Linux version 2.4.18-MIPS-01.01 (l@l) (gcc version 2.96) #147 三 9月 17 15:21:28 CST 2003

Determined physical RAM map:

 memory: 04000000 @ 00000000 (usable)

Initial ramdisk at: 0x80270000 (1917091 bytes)

On node 0 totalpages: 16384

zone(0): 16384 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: 
Calibrating delay loop... 299.00 BogoMIPS
Memory: 59992k/65536k available (1281k kernel code, 5544k reserved, 1976k data, 72k init, 0k highmem)
Dentry-cache hash table entries: 8192 (order: 4, 65536 bytes)
Inode-cache hash table entries: 4096 (order: 3, 32768 bytes)
Mount-cache hash table entries: 1024 (order: 1, 8192 bytes)
Buffer-cache hash table entries: 4096 (order: 2, 16384 bytes)
Page-cache hash table entries: 16384 (order: 4, 65536 bytes)
Checking for 'wait' instruction...  available.
POSIX conformance testing by UNIFIX
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
Journalled Block Device driver loaded
Dummy keyboard driver installed.
Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI enabled
block: 128 slots per queue, batch=32
RAMDISK driver initialized: 16 RAM disks of 16384K size 1024 blocksize
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 4096 bind 4096)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.

RAMDISK: Compressed image found at block 0

Freeing initrd memory: 1872k freed

VFS: Mounted root (ext2 filesystem).
Freeing unused kernel memory: 72k freed
kernel BUG at traps.c:627!

Unable to handle kernel paging request at virtual address 00000000, epc == 80105088, ra == 80105088

Oops in fault.c:do_page_fault, line 205:

$0 : 00000000 10018000 0000001b 00000000 80262d10 00000001 00000001 00000000

$8 : 00001289 00001289 80450000 80448139 00000000 00000000 fffffff9 0000000a

$16: 80251000 8113bca8 00000440 8110e320 8116f660 00000000 00000000 00000000

$24: ffffffff 8113bb4a                   8113a000 8113bc88 80458538 80105088

Hi : 00000000

Lo : 00000200

epc  : 80105088    Not tainted

Status: 10018003

Cause : 0000000c

Process swapper (pid: 1, stackpage=8113a000)

Stack: 80229740 80229738 00000273 10018001 80251000 8116d000 00000440 80103f4c

       83a202a0 8013147c 83a20660 00000000 83a20660 80263dec 00000000 80252000

       80440000 8010a480 80251000 00000000 00000250 10018001 00000000 80225ad8

       00ff0000 000003e8 00000001 80232700 80254000 8116f260 80251000 8116d000

       00000440 8110e320 8116f660 00000000 00000000 00000000 00000400 81169000

       8046a8c0 ...

Call Trace:

Code: 24a59738  0c045adb  24060273 <ac000000> 8e2200ac  04410002  8e2400a0  24840004  24820004 

Kernel panic: Attempted to kill init!

 <0>Rebooting in 180 seconds..

At the address 80105088, there is the function do_ri() in traps.c. I found that this fault
was caused by "if (open("/dev/console", O_RDWR, 0) < 0)".Why?
	please help me to analyse this fault.How to conquer it?

　　　　　　　　embedlf
　　　　　　　　[email-masked]
　　　　　　　　　　2003-09-18

---

From: "Liu Hongming (Alan)" <[email-masked]>
Date: Thu, 18 Sep 2003 18:06:59 +0800

you cpu: 00001800

	RC32334 ??? I dont know it.

epc  : 80105088    Not tainted
	It is the exception VICTIM.Could you offer the instruction at
0x80105088?

Status: 10018003
	you can analysis this register for information,I dont know the cpu
type,so Status...
	
Cause : 0000000c
	in my cpu(r3000 similar) means ExcCode 3,TLB miss

It seems to me that NULL pointer has been refered in kernel,at 0x80105088.
you could change the kernel,or try to find out where the NULL pointer is
generated.

Just FYI.

-----Original Message-----
From: embedlf [mailto:[email-masked]]
Sent: Thursday, September 18, 2003 9:22 AM
To: [email-masked]
Subject: the problem about open file on ramdisk

linux-mips:
	 I use initrd ramdisk as rootfs on my mips cpu board.But after
compiling kernel and download it to the board,that print the error
message.Following is the message.

Linux version 2.4.18-MIPS-01.01 (l@l) (gcc version 2.96) #147 三 9月 17
15:21:28 CST 2003

zone(0): 16384 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: 
Memory: 59992k/65536k available (1281k kernel code, 5544k reserved, 1976k
data, 72k init, 0k highmem)
Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ
SERIAL_PCI enabled

Unable to handle kernel paging request at virtual address 00000000, epc ==
80105088, ra == 80105088

Hi : 00000000

Lo : 00000200

Status: 10018003

Cause : 0000000c

Stack: 80229740 80229738 00000273 10018001 80251000 8116d000 00000440
80103f4c

       83a202a0 8013147c 83a20660 00000000 83a20660 80263dec 00000000
80252000

       80440000 8010a480 80251000 00000000 00000250 10018001 00000000
80225ad8

       00ff0000 000003e8 00000001 80232700 80254000 8116f260 80251000
8116d000

       00000440 8110e320 8116f660 00000000 00000000 00000000 00000400
81169000

       8046a8c0 ...

Call Trace:

Code: 24a59738  0c045adb  24060273 <ac000000> 8e2200ac  04410002  8e2400a0
24840004  24820004 

At the address 80105088, there is the function do_ri() in traps.c. I found
that this fault
was caused by "if (open("/dev/console", O_RDWR, 0) < 0)".Why?
	please help me to analyse this fault.How to conquer it?

　　　　　　　　embedlf
　　　　　　　　[email-masked]
　　　　　　　　　　2003-09-18