2.6.0-test1-mm2 ext3 Oops and root mount issue
Hi!
@home on i845PE and @work on SiS730 I got ext3 Oopses on more than normal (not heavy) ide disk I/O:
kernel: Unable to handle kernel NULL pointer dereference at virtual address 00000014
kernel: printing eip:
kernel: c01d37ac
kernel: *pde = 00000000
kernel: Oops: 0000 [#1]
kernel: PREEMPT DEBUG_PAGEALLOC
kernel: CPU: 0
kernel: EIP: 0060:[journal_dirty_metadata+92/912] Not tainted VLI
kernel: EFLAGS: 00010246
kernel: EIP is at journal_dirty_metadata+0x5c/0x390
kernel: eax: 00000000 ebx: dac7f004 ecx: 00000000 edx: cb1a63b4
kernel: esi: c0f60f04 edi: 00000000 ebp: cb5b0004 esp: c53e9e5c
kernel: ds: 007b es: 007b ss: 0068
kernel: Process cvs (pid: 791, threadinfo=c53e8000 task=c0f4e000)
kernel: Stack: 00001000 dbaee658 c01732e7 dbaee658 c0170673 c0f60f04 c0f60f04 c0f60f04
kernel: cb1a63b4 00000001 ca7720c4 c01c272c cb1a63b4 c0f60f04 00000000 00001000
kernel: c53e9eac 00000001 00000001 00000000 00000030 ca772040 c01c0cda da5e7d04
kernel: Call Trace:
kernel: [__getblk+55/112] __getblk+0x37/0x70
kernel: [wake_up_buffer+19/64] wake_up_buffer+0x13/0x40
kernel: [ext3_getblk+252/688] ext3_getblk+0xfc/0x2b0
kernel: [ext3_new_inode+442/2144] ext3_new_inode+0x1ba/0x860
kernel: [kmem_cache_alloc+156/432] kmem_cache_alloc+0x9c/0x1b0
kernel: [ext3_bread+51/192] ext3_bread+0x33/0xc0
kernel: [ext3_mkdir+212/720] ext3_mkdir+0xd4/0x2d0
kernel: [ext3_mkdir+0/720] ext3_mkdir+0x0/0x2d0
kernel: [vfs_mkdir+116/208] vfs_mkdir+0x74/0xd0
kernel: [sys_mkdir+183/256] sys_mkdir+0xb7/0x100
kernel: [sys_munmap+88/128] sys_munmap+0x58/0x80
kernel: [syscall_call+7/11] syscall_call+0x7/0xb
kernel:
kernel: Code: ff 40 14 0f ba 2e 10 19 c0 85 c0 74 1a 89 f6 0f ba 26 10 19 c0 85
c0 0f 85 36 03 00 00 0f ba 2e 10 19 c0 85 c0 75 e8 8b 54 24 30 <8b>
47 14 3b 02 0f 84 d1 02 00 00 b8 00 e0 ff ff 21 e0 ff 40 14
kernel: <6>note: cvs[791] exited with preempt_count 1
kernel: Debug: sleeping function called from invalid context at include/asm/semaphore.h:119
kernel: Call Trace:
kernel: [__might_sleep+95/112] __might_sleep+0x5f/0x70
kernel: [remove_shared_vm_struct+62/160] remove_shared_vm_struct+0x3e/0xa0
kernel: [exit_mmap+475/704] exit_mmap+0x1db/0x2c0
kernel: [do_page_fault+0/1155] do_page_fault+0x0/0x483
kernel: [mmput+197/368] mmput+0xc5/0x170
kernel: [do_exit+412/2368] do_exit+0x19c/0x940
kernel: [do_page_fault+0/1155] do_page_fault+0x0/0x483
kernel: [die+587/592] die+0x24b/0x250
kernel: [do_page_fault+300/1155] do_page_fault+0x12c/0x483
kernel: [ext3_mark_iloc_dirty+40/64] ext3_mark_iloc_dirty+0x28/0x40
kernel: [ext3_mark_inode_dirty+79/96] ext3_mark_inode_dirty+0x4f/0x60
kernel: [find_get_page+121/352] find_get_page+0x79/0x160
kernel: [bh_lru_install+168/224] bh_lru_install+0xa8/0xe0
kernel: [do_page_fault+0/1155] do_page_fault+0x0/0x483
kernel: [error_code+45/56] error_code+0x2d/0x38
kernel: [journal_dirty_metadata+92/912] journal_dirty_metadata+0x5c/0x390
kernel: [__getblk+55/112] __getblk+0x37/0x70
kernel: [wake_up_buffer+19/64] wake_up_buffer+0x13/0x40
kernel: [ext3_getblk+252/688] ext3_getblk+0xfc/0x2b0
kernel: [ext3_new_inode+442/2144] ext3_new_inode+0x1ba/0x860
kernel: [kmem_cache_alloc+156/432] kmem_cache_alloc+0x9c/0x1b0
kernel: [ext3_bread+51/192] ext3_bread+0x33/0xc0
kernel: [ext3_mkdir+212/720] ext3_mkdir+0xd4/0x2d0
kernel: [ext3_mkdir+0/720] ext3_mkdir+0x0/0x2d0
kernel: [vfs_mkdir+116/208] vfs_mkdir+0x74/0xd0
kernel: [sys_mkdir+183/256] sys_mkdir+0xb7/0x100
kernel: [sys_munmap+88/128] sys_munmap+0x58/0x80
kernel: [syscall_call+7/11] syscall_call+0x7/0xbkernel:
I too experinced that this kernel is not able too mount root at /dev/hda1 but giving him the devfs name of the partition helped :-)
Konsti
Signature · 5 lines
2.5.73-mm2 Konstantin Kletschke <[email protected]>, <[email protected]> GPG KeyID EF62FCEF Fingerprint: 13C9 B16B 9844 EC15 CC2E A080 1E69 3FDA EF62 FCEF keulator.homelinux.org up 39 min, 1
this is my stupid 'fix' in -mm2. sorry for this.
please, apply fix from Andrew
fs/ext3/inode.c renamed from fs/ext3/inode.c~ext3-getblk-race-fix +6 -8
@@ -936,14 +936,12 @@ struct buffer_head *ext3_getblk(handle_text3_get_block instead, so it's not a problem. */ lock_buffer (bh); -if (!buffer_uptodate (bh)) { -BUFFER_TRACE (bh,"call get_create_access" ); - fatal =ext3_journal_get_create_access (handle, bh); -if (!fatal) { -memset (bh->b_data,0 , - inode->i_sb->s_blocksize); -set_buffer_uptodate (bh); - } +BUFFER_TRACE (bh,"call get_create_access" ); + fatal =ext3_journal_get_create_access (handle, bh); +if (!fatal && !buffer_uptodate (bh)) { +memset (bh->b_data,0 , + inode->i_sb->s_blocksize); +set_buffer_uptodate (bh); }unlock_buffer (bh);BUFFER_TRACE (bh,"call ext3_journal_dirty_metadata" );
_
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Konstantin Kletschke (KK) writes:
KK> Hi!
KK> @home on i845PE and @work on SiS730 I got ext3 Oopses on more than KK> normal (not heavy) ide disk I/O:
KK> kernel: Unable to handle kernel NULL pointer dereference at virtual address 00000014 KK> kernel: printing eip: KK> kernel: c01d37ac KK> kernel: *pde = 00000000 KK> kernel: Oops: 0000 [#1] KK> kernel: PREEMPT DEBUG_PAGEALLOC KK> kernel: CPU: 0 KK> kernel: EIP: 0060:[journal_dirty_metadata+92/912] Not tainted VLI KK> kernel: EFLAGS: 00010246 KK> kernel: EIP is at journal_dirty_metadata+0x5c/0x390 KK> kernel: eax: 00000000 ebx: dac7f004 ecx: 00000000 edx: cb1a63b4 KK> kernel: esi: c0f60f04 edi: 00000000 ebp: cb5b0004 esp: c53e9e5c KK> kernel: ds: 007b es: 007b ss: 0068 KK> kernel: Process cvs (pid: 791, threadinfo=c53e8000 task=c0f4e000) KK> kernel: Stack: 00001000 dbaee658 c01732e7 dbaee658 c0170673 c0f60f04 c0f60f04 c0f60f04 KK> kernel: cb1a63b4 00000001 ca7720c4 c01c272c cb1a63b4 c0f60f04 00000000 00001000 KK> kernel: c53e9eac 00000001 00000001 00000000 00000030 ca772040 c01c0cda da5e7d04 KK> kernel: Call Trace: KK> kernel: [__getblk+55/112] __getblk+0x37/0x70 KK> kernel: [wake_up_buffer+19/64] wake_up_buffer+0x13/0x40 KK> kernel: [ext3_getblk+252/688] ext3_getblk+0xfc/0x2b0 KK> kernel: [ext3_new_inode+442/2144] ext3_new_inode+0x1ba/0x860 KK> kernel: [kmem_cache_alloc+156/432] kmem_cache_alloc+0x9c/0x1b0 KK> kernel: [ext3_bread+51/192] ext3_bread+0x33/0xc0 KK> kernel: [ext3_mkdir+212/720] ext3_mkdir+0xd4/0x2d0 KK> kernel: [ext3_mkdir+0/720] ext3_mkdir+0x0/0x2d0 KK> kernel: [vfs_mkdir+116/208] vfs_mkdir+0x74/0xd0 KK> kernel: [sys_mkdir+183/256] sys_mkdir+0xb7/0x100 KK> kernel: [sys_munmap+88/128] sys_munmap+0x58/0x80 KK> kernel: [syscall_call+7/11] syscall_call+0x7/0xb KK> kernel: KK> kernel: Code: ff 40 14 0f ba 2e 10 19 c0 85 c0 74 1a 89 f6 0f ba 26 10 19 c0 85 KK> c0 0f 85 36 03 00 00 0f ba 2e 10 19 c0 85 c0 75 e8 8b 54 24 30 <8b> KK> 47 14 3b 02 0f 84 d1 02 00 00 b8 00 e0 ff ff 21 e0 ff 40 14 KK> kernel: <6>note: cvs[791] exited with preempt_count 1 KK> kernel: Debug: sleeping function called from invalid context at include/asm/semaphore.h:119 KK> kernel: Call Trace: KK> kernel: [__might_sleep+95/112] __might_sleep+0x5f/0x70 KK> kernel: [remove_shared_vm_struct+62/160] remove_shared_vm_struct+0x3e/0xa0 KK> kernel: [exit_mmap+475/704] exit_mmap+0x1db/0x2c0 KK> kernel: [do_page_fault+0/1155] do_page_fault+0x0/0x483 KK> kernel: [mmput+197/368] mmput+0xc5/0x170 KK> kernel: [do_exit+412/2368] do_exit+0x19c/0x940 KK> kernel: [do_page_fault+0/1155] do_page_fault+0x0/0x483 KK> kernel: [die+587/592] die+0x24b/0x250 KK> kernel: [do_page_fault+300/1155] do_page_fault+0x12c/0x483 KK> kernel: [ext3_mark_iloc_dirty+40/64] ext3_mark_iloc_dirty+0x28/0x40 KK> kernel: [ext3_mark_inode_dirty+79/96] ext3_mark_inode_dirty+0x4f/0x60 KK> kernel: [find_get_page+121/352] find_get_page+0x79/0x160 KK> kernel: [bh_lru_install+168/224] bh_lru_install+0xa8/0xe0 KK> kernel: [do_page_fault+0/1155] do_page_fault+0x0/0x483 KK> kernel: [error_code+45/56] error_code+0x2d/0x38 KK> kernel: [journal_dirty_metadata+92/912] journal_dirty_metadata+0x5c/0x390 KK> kernel: [__getblk+55/112] __getblk+0x37/0x70 KK> kernel: [wake_up_buffer+19/64] wake_up_buffer+0x13/0x40 KK> kernel: [ext3_getblk+252/688] ext3_getblk+0xfc/0x2b0 KK> kernel: [ext3_new_inode+442/2144] ext3_new_inode+0x1ba/0x860 KK> kernel: [kmem_cache_alloc+156/432] kmem_cache_alloc+0x9c/0x1b0 KK> kernel: [ext3_bread+51/192] ext3_bread+0x33/0xc0 KK> kernel: [ext3_mkdir+212/720] ext3_mkdir+0xd4/0x2d0 KK> kernel: [ext3_mkdir+0/720] ext3_mkdir+0x0/0x2d0 KK> kernel: [vfs_mkdir+116/208] vfs_mkdir+0x74/0xd0 KK> kernel: [sys_mkdir+183/256] sys_mkdir+0xb7/0x100 KK> kernel: [sys_munmap+88/128] sys_munmap+0x58/0x80 KK> kernel: [syscall_call+7/11] syscall_call+0x7/0xb KK> kernel:
KK> I too experinced that this kernel is not able too mount root at KK> /dev/hda1 but giving him the devfs name of the partition helped :-)
KK> Konsti
KK> --
KK> 2.5.73-mm2
KK> Konstantin Kletschke <[email protected]>, <[email protected]> KK> GPG KeyID EF62FCEF
KK> Fingerprint: 13C9 B16B 9844 EC15 CC2E A080 1E69 3FDA EF62 FCEF KK> keulator.homelinux.org up 39 min, 1
KK> -
KK> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in KK> the body of a message to [email protected]
KK> More majordomo info at http://vger.kernel.org/majordomo-info.html
KK> Please read the FAQ at http://www.tux.org/lkml/
Quoted 3 lines · Alex Tomas
this is my stupid 'fix' in -mm2. sorry for this.
please, apply fix from Andrew
Aha... OK, shit happens :)
Konsti
Signature · 5 lines
2.5.73-mm2 Konstantin Kletschke <[email protected]>, <[email protected]> GPG KeyID EF62FCEF Fingerprint: 13C9 B16B 9844 EC15 CC2E A080 1E69 3FDA EF62 FCEF keulator.homelinux.org up 1:42, 7 users