* [linux-lvm] linux-2.6.0 + reiser4 oops
@ 2004-01-16 20:45 ` markw
0 siblings, 0 replies; 9+ messages in thread
From: markw @ 2004-01-16 15:46 UTC (permalink / raw)
To: reiserfs-list; +Cc: linux-lvm
I was testing our DBT-2 workload on linux-2.6.0 with LVM2 and reiser4
and got the following oops when I attempted to create a database with
PostgreSQL. Let me know if I can provide any additional information:
Unable to handle kernel NULL pointer dereference at virtual address 00000000
printing eip:
c014c607
*pde = 00104001
*pte = 00000000
Oops: 0000 [#1]
CPU: 7
EIP: 0060:[<c014c607>] Not tainted
EFLAGS: 00010086
EIP is at page_address+0x17/0xd0
eax: 00000000 ebx: 00000000 ecx: ea5c58e0 edx: ea21bf20
esi: f69df200 edi: 00000000 ebp: 00000001 esp: f59abb84
ds: 007b es: 007b ss: 0068
Process ktxnmgrd:run (pid: 16798, threadinfo=f59aa000 task=f5983960)
Stack: 00000001 e8d77260 f69df200 00000000 00000001 c027fed6 00000000 ea5c58e0
00000020 00000000 00002980 00000000 00000000 00000008 00000020 e8d77260
f69df200 00000020 ea5c5be0 00000020 c02803ff f69df200 ea5c58e0 f7fc7260
Call Trace:
[<c027fed6>] __make_request+0x226/0x5e0
[<c02803ff>] generic_make_request+0x16f/0x1f0
[<c02f303d>] __map_bio+0x3d/0x120
[<c02f32f6>] __clone_and_map+0xc6/0x310
[<c011fae0>] autoremove_wake_function+0x0/0x50
[<c02f35c8>] __split_bio+0x88/0x100
[<c022000c>] try_by_label+0x2c/0x40
[<c02f3703>] dm_request+0xc3/0xe0
[<c02803ff>] generic_make_request+0x16f/0x1f0
[<c0165807>] bio_alloc+0xd7/0x1c0
[<c02804d4>] submit_bio+0x54/0xa0
[<c01ece88>] jnode_extent_write+0x3c8/0x430
[<c01ed157>] alloc_wandered_blocks+0x77/0xc0
[<c01ed5e2>] reiser4_write_logs+0x1b2/0x300
[<c01e464d>] commit_current_atom+0x17d/0x260
[<c01e50bd>] try_commit_txnh+0xed/0x1b0
[<c01e51b8>] commit_txnh+0x38/0xd0
[<c011f651>] .text.lock.sched+0x10f/0x12e
[<c01e385f>] txn_end+0x3f/0x50
[<c01e4b57>] commit_some_atoms+0x187/0x220
[<c01f38f6>] scan_mgr+0x36/0x57
[<c01f3528>] ktxnmgrd+0x1a8/0x290
[<c01f3380>] ktxnmgrd+0x0/0x290
[<c01072e9>] kernel_thread_helper+0x5/0xc
Code: 8b 03 a9 00 01 00 00 75 30 8b 0d 8c 33 4a c0 29 cb c1 fb 03
<6>note: ktxnmgrd:run[16798] exited with preempt_count 1
Debug: sleeping function called from invalid context at include/linux/rwsem.h:43
in_atomic():1, irqs_disabled():0
Call Trace:
[<c011f3eb>] __might_sleep+0xab/0xd0
[<c0122928>] printk+0x178/0x1d0
[<c0122ef0>] profile_exit_task+0x20/0x60
[<c0124a88>] do_exit+0x78/0x4b0
[<c010a8bc>] die+0xfc/0x100
[<c011a4a9>] do_page_fault+0x1f9/0x58f
[<c0143180>] __alloc_pages+0xc0/0x370
[<c0141c61>] mempool_alloc+0x91/0x190
[<c011fae0>] autoremove_wake_function+0x0/0x50
[<c0141c61>] mempool_alloc+0x91/0x190
[<c011fae0>] autoremove_wake_function+0x0/0x50
[<c011fae0>] autoremove_wake_function+0x0/0x50
[<c011a2b0>] do_page_fault+0x0/0x58f
[<c010a205>] error_code+0x2d/0x38
[<c014c607>] page_address+0x17/0xd0
[<c027fed6>] __make_request+0x226/0x5e0
[<c02803ff>] generic_make_request+0x16f/0x1f0
[<c02f303d>] __map_bio+0x3d/0x120
[<c02f32f6>] __clone_and_map+0xc6/0x310
[<c011fae0>] autoremove_wake_function+0x0/0x50
[<c02f35c8>] __split_bio+0x88/0x100
[<c022000c>] try_by_label+0x2c/0x40
[<c02f3703>] dm_request+0xc3/0xe0
[<c02803ff>] generic_make_request+0x16f/0x1f0
[<c0165807>] bio_alloc+0xd7/0x1c0
[<c02804d4>] submit_bio+0x54/0xa0
[<c01ece88>] jnode_extent_write+0x3c8/0x430
[<c01ed157>] alloc_wandered_blocks+0x77/0xc0
[<c01ed5e2>] reiser4_write_logs+0x1b2/0x300
[<c01e464d>] commit_current_atom+0x17d/0x260
[<c01e50bd>] try_commit_txnh+0xed/0x1b0
[<c01e51b8>] commit_txnh+0x38/0xd0
[<c011f651>] .text.lock.sched+0x10f/0x12e
[<c01e385f>] txn_end+0x3f/0x50
[<c01e4b57>] commit_some_atoms+0x187/0x220
[<c01f38f6>] scan_mgr+0x36/0x57
[<c01f3528>] ktxnmgrd+0x1a8/0x290
[<c01f3380>] ktxnmgrd+0x0/0x290
[<c01072e9>] kernel_thread_helper+0x5/0xc
--
Mark Wong - - markw@osdl.org
Open Source Development Lab Inc - A non-profit corporation
12725 SW Millikan Way - Suite 400 - Beaverton, OR 97005
(503) 626-2455 x 32 (office)
(503) 626-2436 (fax)
http://developer.osdl.org/markw/
^ permalink raw reply [flat|nested] 9+ messages in thread* linux-2.6.0 + reiser4 oops @ 2004-01-16 20:45 ` markw 0 siblings, 0 replies; 9+ messages in thread From: markw @ 2004-01-16 20:45 UTC (permalink / raw) To: reiserfs-list; +Cc: linux-lvm I was testing our DBT-2 workload on linux-2.6.0 with LVM2 and reiser4 and got the following oops when I attempted to create a database with PostgreSQL. Let me know if I can provide any additional information: Unable to handle kernel NULL pointer dereference at virtual address 00000000 printing eip: c014c607 *pde = 00104001 *pte = 00000000 Oops: 0000 [#1] CPU: 7 EIP: 0060:[<c014c607>] Not tainted EFLAGS: 00010086 EIP is at page_address+0x17/0xd0 eax: 00000000 ebx: 00000000 ecx: ea5c58e0 edx: ea21bf20 esi: f69df200 edi: 00000000 ebp: 00000001 esp: f59abb84 ds: 007b es: 007b ss: 0068 Process ktxnmgrd:run (pid: 16798, threadinfo=f59aa000 task=f5983960) Stack: 00000001 e8d77260 f69df200 00000000 00000001 c027fed6 00000000 ea5c58e0 00000020 00000000 00002980 00000000 00000000 00000008 00000020 e8d77260 f69df200 00000020 ea5c5be0 00000020 c02803ff f69df200 ea5c58e0 f7fc7260 Call Trace: [<c027fed6>] __make_request+0x226/0x5e0 [<c02803ff>] generic_make_request+0x16f/0x1f0 [<c02f303d>] __map_bio+0x3d/0x120 [<c02f32f6>] __clone_and_map+0xc6/0x310 [<c011fae0>] autoremove_wake_function+0x0/0x50 [<c02f35c8>] __split_bio+0x88/0x100 [<c022000c>] try_by_label+0x2c/0x40 [<c02f3703>] dm_request+0xc3/0xe0 [<c02803ff>] generic_make_request+0x16f/0x1f0 [<c0165807>] bio_alloc+0xd7/0x1c0 [<c02804d4>] submit_bio+0x54/0xa0 [<c01ece88>] jnode_extent_write+0x3c8/0x430 [<c01ed157>] alloc_wandered_blocks+0x77/0xc0 [<c01ed5e2>] reiser4_write_logs+0x1b2/0x300 [<c01e464d>] commit_current_atom+0x17d/0x260 [<c01e50bd>] try_commit_txnh+0xed/0x1b0 [<c01e51b8>] commit_txnh+0x38/0xd0 [<c011f651>] .text.lock.sched+0x10f/0x12e [<c01e385f>] txn_end+0x3f/0x50 [<c01e4b57>] commit_some_atoms+0x187/0x220 [<c01f38f6>] scan_mgr+0x36/0x57 [<c01f3528>] ktxnmgrd+0x1a8/0x290 [<c01f3380>] ktxnmgrd+0x0/0x290 [<c01072e9>] kernel_thread_helper+0x5/0xc Code: 8b 03 a9 00 01 00 00 75 30 8b 0d 8c 33 4a c0 29 cb c1 fb 03 <6>note: ktxnmgrd:run[16798] exited with preempt_count 1 Debug: sleeping function called from invalid context at include/linux/rwsem.h:43 in_atomic():1, irqs_disabled():0 Call Trace: [<c011f3eb>] __might_sleep+0xab/0xd0 [<c0122928>] printk+0x178/0x1d0 [<c0122ef0>] profile_exit_task+0x20/0x60 [<c0124a88>] do_exit+0x78/0x4b0 [<c010a8bc>] die+0xfc/0x100 [<c011a4a9>] do_page_fault+0x1f9/0x58f [<c0143180>] __alloc_pages+0xc0/0x370 [<c0141c61>] mempool_alloc+0x91/0x190 [<c011fae0>] autoremove_wake_function+0x0/0x50 [<c0141c61>] mempool_alloc+0x91/0x190 [<c011fae0>] autoremove_wake_function+0x0/0x50 [<c011fae0>] autoremove_wake_function+0x0/0x50 [<c011a2b0>] do_page_fault+0x0/0x58f [<c010a205>] error_code+0x2d/0x38 [<c014c607>] page_address+0x17/0xd0 [<c027fed6>] __make_request+0x226/0x5e0 [<c02803ff>] generic_make_request+0x16f/0x1f0 [<c02f303d>] __map_bio+0x3d/0x120 [<c02f32f6>] __clone_and_map+0xc6/0x310 [<c011fae0>] autoremove_wake_function+0x0/0x50 [<c02f35c8>] __split_bio+0x88/0x100 [<c022000c>] try_by_label+0x2c/0x40 [<c02f3703>] dm_request+0xc3/0xe0 [<c02803ff>] generic_make_request+0x16f/0x1f0 [<c0165807>] bio_alloc+0xd7/0x1c0 [<c02804d4>] submit_bio+0x54/0xa0 [<c01ece88>] jnode_extent_write+0x3c8/0x430 [<c01ed157>] alloc_wandered_blocks+0x77/0xc0 [<c01ed5e2>] reiser4_write_logs+0x1b2/0x300 [<c01e464d>] commit_current_atom+0x17d/0x260 [<c01e50bd>] try_commit_txnh+0xed/0x1b0 [<c01e51b8>] commit_txnh+0x38/0xd0 [<c011f651>] .text.lock.sched+0x10f/0x12e [<c01e385f>] txn_end+0x3f/0x50 [<c01e4b57>] commit_some_atoms+0x187/0x220 [<c01f38f6>] scan_mgr+0x36/0x57 [<c01f3528>] ktxnmgrd+0x1a8/0x290 [<c01f3380>] ktxnmgrd+0x0/0x290 [<c01072e9>] kernel_thread_helper+0x5/0xc -- Mark Wong - - markw@osdl.org Open Source Development Lab Inc - A non-profit corporation 12725 SW Millikan Way - Suite 400 - Beaverton, OR 97005 (503) 626-2455 x 32 (office) (503) 626-2436 (fax) http://developer.osdl.org/markw/ ^ permalink raw reply [flat|nested] 9+ messages in thread
* [linux-lvm] Re: linux-2.6.0 + reiser4 oops 2004-01-16 20:45 ` markw @ 2004-01-16 20:50 ` Hans Reiser -1 siblings, 0 replies; 9+ messages in thread From: Hans Reiser @ 2004-01-16 17:04 UTC (permalink / raw) To: markw; +Cc: reiserfs-list, linux-lvm, vs Thanks Mark, the weekend has already started here in Moscow, but Vladimir will look into this on Monday. Thanks for the report. Hans markw@osdl.org wrote: >I was testing our DBT-2 workload on linux-2.6.0 with LVM2 and reiser4 >and got the following oops when I attempted to create a database with >PostgreSQL. Let me know if I can provide any additional information: > >Unable to handle kernel NULL pointer dereference at virtual address 00000000 > printing eip: >c014c607 >*pde = 00104001 >*pte = 00000000 >Oops: 0000 [#1] >CPU: 7 >EIP: 0060:[<c014c607>] Not tainted >EFLAGS: 00010086 >EIP is at page_address+0x17/0xd0 >eax: 00000000 ebx: 00000000 ecx: ea5c58e0 edx: ea21bf20 >esi: f69df200 edi: 00000000 ebp: 00000001 esp: f59abb84 >ds: 007b es: 007b ss: 0068 >Process ktxnmgrd:run (pid: 16798, threadinfo=f59aa000 task=f5983960) >Stack: 00000001 e8d77260 f69df200 00000000 00000001 c027fed6 00000000 ea5c58e0 > 00000020 00000000 00002980 00000000 00000000 00000008 00000020 e8d77260 > f69df200 00000020 ea5c5be0 00000020 c02803ff f69df200 ea5c58e0 f7fc7260 >Call Trace: > [<c027fed6>] __make_request+0x226/0x5e0 > [<c02803ff>] generic_make_request+0x16f/0x1f0 > [<c02f303d>] __map_bio+0x3d/0x120 > [<c02f32f6>] __clone_and_map+0xc6/0x310 > [<c011fae0>] autoremove_wake_function+0x0/0x50 > [<c02f35c8>] __split_bio+0x88/0x100 > [<c022000c>] try_by_label+0x2c/0x40 > [<c02f3703>] dm_request+0xc3/0xe0 > [<c02803ff>] generic_make_request+0x16f/0x1f0 > [<c0165807>] bio_alloc+0xd7/0x1c0 > [<c02804d4>] submit_bio+0x54/0xa0 > [<c01ece88>] jnode_extent_write+0x3c8/0x430 > [<c01ed157>] alloc_wandered_blocks+0x77/0xc0 > [<c01ed5e2>] reiser4_write_logs+0x1b2/0x300 > [<c01e464d>] commit_current_atom+0x17d/0x260 > [<c01e50bd>] try_commit_txnh+0xed/0x1b0 > [<c01e51b8>] commit_txnh+0x38/0xd0 > [<c011f651>] .text.lock.sched+0x10f/0x12e > [<c01e385f>] txn_end+0x3f/0x50 > [<c01e4b57>] commit_some_atoms+0x187/0x220 > [<c01f38f6>] scan_mgr+0x36/0x57 > [<c01f3528>] ktxnmgrd+0x1a8/0x290 > [<c01f3380>] ktxnmgrd+0x0/0x290 > [<c01072e9>] kernel_thread_helper+0x5/0xc > >Code: 8b 03 a9 00 01 00 00 75 30 8b 0d 8c 33 4a c0 29 cb c1 fb 03 > <6>note: ktxnmgrd:run[16798] exited with preempt_count 1 >Debug: sleeping function called from invalid context at include/linux/rwsem.h:43 >in_atomic():1, irqs_disabled():0 >Call Trace: > [<c011f3eb>] __might_sleep+0xab/0xd0 > [<c0122928>] printk+0x178/0x1d0 > [<c0122ef0>] profile_exit_task+0x20/0x60 > [<c0124a88>] do_exit+0x78/0x4b0 > [<c010a8bc>] die+0xfc/0x100 > [<c011a4a9>] do_page_fault+0x1f9/0x58f > [<c0143180>] __alloc_pages+0xc0/0x370 > [<c0141c61>] mempool_alloc+0x91/0x190 > [<c011fae0>] autoremove_wake_function+0x0/0x50 > [<c0141c61>] mempool_alloc+0x91/0x190 > [<c011fae0>] autoremove_wake_function+0x0/0x50 > [<c011fae0>] autoremove_wake_function+0x0/0x50 > [<c011a2b0>] do_page_fault+0x0/0x58f > [<c010a205>] error_code+0x2d/0x38 > [<c014c607>] page_address+0x17/0xd0 > [<c027fed6>] __make_request+0x226/0x5e0 > [<c02803ff>] generic_make_request+0x16f/0x1f0 > [<c02f303d>] __map_bio+0x3d/0x120 > [<c02f32f6>] __clone_and_map+0xc6/0x310 > [<c011fae0>] autoremove_wake_function+0x0/0x50 > [<c02f35c8>] __split_bio+0x88/0x100 > [<c022000c>] try_by_label+0x2c/0x40 > [<c02f3703>] dm_request+0xc3/0xe0 > [<c02803ff>] generic_make_request+0x16f/0x1f0 > [<c0165807>] bio_alloc+0xd7/0x1c0 > [<c02804d4>] submit_bio+0x54/0xa0 > [<c01ece88>] jnode_extent_write+0x3c8/0x430 > [<c01ed157>] alloc_wandered_blocks+0x77/0xc0 > [<c01ed5e2>] reiser4_write_logs+0x1b2/0x300 > [<c01e464d>] commit_current_atom+0x17d/0x260 > [<c01e50bd>] try_commit_txnh+0xed/0x1b0 > [<c01e51b8>] commit_txnh+0x38/0xd0 > [<c011f651>] .text.lock.sched+0x10f/0x12e > [<c01e385f>] txn_end+0x3f/0x50 > [<c01e4b57>] commit_some_atoms+0x187/0x220 > [<c01f38f6>] scan_mgr+0x36/0x57 > [<c01f3528>] ktxnmgrd+0x1a8/0x290 > [<c01f3380>] ktxnmgrd+0x0/0x290 > [<c01072e9>] kernel_thread_helper+0x5/0xc > > > > -- Hans ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: linux-2.6.0 + reiser4 oops @ 2004-01-16 20:50 ` Hans Reiser 0 siblings, 0 replies; 9+ messages in thread From: Hans Reiser @ 2004-01-16 20:50 UTC (permalink / raw) To: markw; +Cc: reiserfs-list, linux-lvm, vs Thanks Mark, the weekend has already started here in Moscow, but Vladimir will look into this on Monday. Thanks for the report. Hans markw@osdl.org wrote: >I was testing our DBT-2 workload on linux-2.6.0 with LVM2 and reiser4 >and got the following oops when I attempted to create a database with >PostgreSQL. Let me know if I can provide any additional information: > >Unable to handle kernel NULL pointer dereference at virtual address 00000000 > printing eip: >c014c607 >*pde = 00104001 >*pte = 00000000 >Oops: 0000 [#1] >CPU: 7 >EIP: 0060:[<c014c607>] Not tainted >EFLAGS: 00010086 >EIP is at page_address+0x17/0xd0 >eax: 00000000 ebx: 00000000 ecx: ea5c58e0 edx: ea21bf20 >esi: f69df200 edi: 00000000 ebp: 00000001 esp: f59abb84 >ds: 007b es: 007b ss: 0068 >Process ktxnmgrd:run (pid: 16798, threadinfo=f59aa000 task=f5983960) >Stack: 00000001 e8d77260 f69df200 00000000 00000001 c027fed6 00000000 ea5c58e0 > 00000020 00000000 00002980 00000000 00000000 00000008 00000020 e8d77260 > f69df200 00000020 ea5c5be0 00000020 c02803ff f69df200 ea5c58e0 f7fc7260 >Call Trace: > [<c027fed6>] __make_request+0x226/0x5e0 > [<c02803ff>] generic_make_request+0x16f/0x1f0 > [<c02f303d>] __map_bio+0x3d/0x120 > [<c02f32f6>] __clone_and_map+0xc6/0x310 > [<c011fae0>] autoremove_wake_function+0x0/0x50 > [<c02f35c8>] __split_bio+0x88/0x100 > [<c022000c>] try_by_label+0x2c/0x40 > [<c02f3703>] dm_request+0xc3/0xe0 > [<c02803ff>] generic_make_request+0x16f/0x1f0 > [<c0165807>] bio_alloc+0xd7/0x1c0 > [<c02804d4>] submit_bio+0x54/0xa0 > [<c01ece88>] jnode_extent_write+0x3c8/0x430 > [<c01ed157>] alloc_wandered_blocks+0x77/0xc0 > [<c01ed5e2>] reiser4_write_logs+0x1b2/0x300 > [<c01e464d>] commit_current_atom+0x17d/0x260 > [<c01e50bd>] try_commit_txnh+0xed/0x1b0 > [<c01e51b8>] commit_txnh+0x38/0xd0 > [<c011f651>] .text.lock.sched+0x10f/0x12e > [<c01e385f>] txn_end+0x3f/0x50 > [<c01e4b57>] commit_some_atoms+0x187/0x220 > [<c01f38f6>] scan_mgr+0x36/0x57 > [<c01f3528>] ktxnmgrd+0x1a8/0x290 > [<c01f3380>] ktxnmgrd+0x0/0x290 > [<c01072e9>] kernel_thread_helper+0x5/0xc > >Code: 8b 03 a9 00 01 00 00 75 30 8b 0d 8c 33 4a c0 29 cb c1 fb 03 > <6>note: ktxnmgrd:run[16798] exited with preempt_count 1 >Debug: sleeping function called from invalid context at include/linux/rwsem.h:43 >in_atomic():1, irqs_disabled():0 >Call Trace: > [<c011f3eb>] __might_sleep+0xab/0xd0 > [<c0122928>] printk+0x178/0x1d0 > [<c0122ef0>] profile_exit_task+0x20/0x60 > [<c0124a88>] do_exit+0x78/0x4b0 > [<c010a8bc>] die+0xfc/0x100 > [<c011a4a9>] do_page_fault+0x1f9/0x58f > [<c0143180>] __alloc_pages+0xc0/0x370 > [<c0141c61>] mempool_alloc+0x91/0x190 > [<c011fae0>] autoremove_wake_function+0x0/0x50 > [<c0141c61>] mempool_alloc+0x91/0x190 > [<c011fae0>] autoremove_wake_function+0x0/0x50 > [<c011fae0>] autoremove_wake_function+0x0/0x50 > [<c011a2b0>] do_page_fault+0x0/0x58f > [<c010a205>] error_code+0x2d/0x38 > [<c014c607>] page_address+0x17/0xd0 > [<c027fed6>] __make_request+0x226/0x5e0 > [<c02803ff>] generic_make_request+0x16f/0x1f0 > [<c02f303d>] __map_bio+0x3d/0x120 > [<c02f32f6>] __clone_and_map+0xc6/0x310 > [<c011fae0>] autoremove_wake_function+0x0/0x50 > [<c02f35c8>] __split_bio+0x88/0x100 > [<c022000c>] try_by_label+0x2c/0x40 > [<c02f3703>] dm_request+0xc3/0xe0 > [<c02803ff>] generic_make_request+0x16f/0x1f0 > [<c0165807>] bio_alloc+0xd7/0x1c0 > [<c02804d4>] submit_bio+0x54/0xa0 > [<c01ece88>] jnode_extent_write+0x3c8/0x430 > [<c01ed157>] alloc_wandered_blocks+0x77/0xc0 > [<c01ed5e2>] reiser4_write_logs+0x1b2/0x300 > [<c01e464d>] commit_current_atom+0x17d/0x260 > [<c01e50bd>] try_commit_txnh+0xed/0x1b0 > [<c01e51b8>] commit_txnh+0x38/0xd0 > [<c011f651>] .text.lock.sched+0x10f/0x12e > [<c01e385f>] txn_end+0x3f/0x50 > [<c01e4b57>] commit_some_atoms+0x187/0x220 > [<c01f38f6>] scan_mgr+0x36/0x57 > [<c01f3528>] ktxnmgrd+0x1a8/0x290 > [<c01f3380>] ktxnmgrd+0x0/0x290 > [<c01072e9>] kernel_thread_helper+0x5/0xc > > > > -- Hans ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: linux-2.6.0 + reiser4 oops 2004-01-16 20:45 ` markw (?) (?) @ 2004-01-19 9:46 ` Nikita Danilov 2004-01-19 17:29 ` markw -1 siblings, 1 reply; 9+ messages in thread From: Nikita Danilov @ 2004-01-19 9:46 UTC (permalink / raw) To: markw; +Cc: reiserfs-list, linux-lvm markw@osdl.org writes: > I was testing our DBT-2 workload on linux-2.6.0 with LVM2 and reiser4 > and got the following oops when I attempted to create a database with > PostgreSQL. Let me know if I can provide any additional information: > > Unable to handle kernel NULL pointer dereference at virtual address 00000000 > printing eip: > c014c607 > *pde = 00104001 > *pte = 00000000 > Oops: 0000 [#1] This looks much like another bug report we had for reiser4-on-top-of-raid0. A fix (tentative) for that was to use bio_add_page() while constructing bios, and it will be included into next reiser4 snapshot (that, I hope, will be released to-day---2004.01.19). If you are interested, here is the patch (to be applied from fs/reiser4): ---------------------------------------------------------------------- ===== page_cache.c 1.265 vs edited ===== --- 1.265/page_cache.c Wed Dec 24 17:57:42 2003 +++ edited/page_cache.c Tue Jan 13 15:48:58 2004 @@ -499,17 +499,18 @@ assert("nikita-2275", blocknr != (reiser4_block_nr) 0); assert("nikita-2276", !blocknr_is_fake(&blocknr)); - bio->bi_sector = blocknr * (blksz >> 9); bio->bi_bdev = super->s_bdev; - bio->bi_io_vec[0].bv_page = page; - bio->bi_io_vec[0].bv_len = blksz; - bio->bi_io_vec[0].bv_offset = 0; - bio->bi_vcnt = 1; - /* bio -> bi_idx is filled by bio_init() */ - bio->bi_size = blksz; + if (!bio_add_page(bio, page, blksz, 0)) { + warning("nikita-3452", + "Single page bio cannot be constructed"); + return ERR_PTR(RETERR(-EINVAL)); + } - bio->bi_end_io = (rw == READ) ? end_bio_single_page_read : end_bio_single_page_write; + bio->bi_sector = blocknr * (blksz >> 9); + /* bio -> bi_idx is filled by bio_init() */ + bio->bi_end_io = (rw == READ) ? + end_bio_single_page_read : end_bio_single_page_write; return bio; } else ===== wander.c 1.229 vs edited ===== --- 1.229/wander.c Tue Jan 13 14:02:11 2004 +++ edited/wander.c Tue Jan 13 16:18:31 2004 @@ -527,6 +527,26 @@ return ret; } +static void +undo_bio(struct bio *bio) +{ + int i; + + for (i = 0; i < bio->bi_vcnt; ++i) { + struct page *pg; + jnode *node; + + pg = bio->bi_io_vec[i].bv_page; + ClearPageWriteback(pg); + node = jprivate(pg); + LOCK_JNODE(node); + JF_CLR(node, JNODE_WRITEBACK); + JF_SET(node, JNODE_DIRTY); + UNLOCK_JNODE(node); + } + bio_put(bio); +} + #if REISER4_COPY_ON_CAPTURE extern spinlock_t scan_lock; @@ -715,11 +735,7 @@ ON_TRACE (TRACE_IO_W, "write of %d blocks starting from %llu\n", nr, (unsigned long long)block); -#if REISER4_USER_LEVEL_SIMULATION - max_blocks = nr; -#else max_blocks = bdev_get_queue(super->s_bdev)->max_sectors >> (super->s_blocksize_bits - 9); -#endif while (nr > 0) { struct bio *bio; @@ -731,6 +747,7 @@ if (!bio) return RETERR(-ENOMEM); + bio->bi_bdev = super->s_bdev; for (nr_used = 0, i = 0; i < nr_blocks; i++) { struct page *pg; ON_DEBUG(int jnode_is_releasable(jnode *)); @@ -749,18 +766,27 @@ if (!JF_ISSET(cur, JNODE_WRITEBACK)) { assert("zam-912", !JF_ISSET(cur, JNODE_WRITEBACK)); assert("nikita-3165", !jnode_is_releasable(cur)); + UNLOCK_JNODE(cur); + if (!bio_add_page(bio, + pg, super->s_blocksize, 0)) + /* + * underlying device is satiated. Stop + * adding pages to the bio. + */ + break; + + LOCK_JNODE(cur); JF_SET(cur, JNODE_WRITEBACK); JF_CLR(cur, JNODE_DIRTY); UNLOCK_JNODE(cur); SetPageWriteback(pg); - + spin_lock(&pg->mapping->page_lock); -#if REISER4_STATS - if (!PageDirty(pg)) + if (REISER4_STATS && !PageDirty(pg)) reiser4_stat_inc(pages_clean); -#endif + /* don't check return value: submit page even if it wasn't dirty. */ test_clear_page_dirty(pg); @@ -771,10 +797,7 @@ spin_unlock(&pg->mapping->page_lock); unlock_page(pg); - - bio->bi_io_vec[nr_used].bv_page = pg; - bio->bi_io_vec[nr_used].bv_len = super->s_blocksize; - bio->bi_io_vec[nr_used].bv_offset = 0; + nr_used ++; } else { /* jnode being WRITEBACK might be replaced on ovrwr_nodes list with jnode CC. We just @@ -790,31 +813,18 @@ cur = capture_list_next(cur); if (!capture_list_end(head, cur)) JF_SET(cur, JNODE_SCANNED); - else { - /* end of overwrite list reached */ - assert("", i == nr_blocks - 1); - assert("", nr_used + 1 == nr); - } spin_unlock(&scan_lock); - nr_used ++; } if (nr_used > 0) { bio->bi_sector = block * (super->s_blocksize >> 9); - bio->bi_bdev = super->s_bdev; - bio->bi_size = super->s_blocksize * nr_used; - bio->bi_vcnt = nr_used; + assert("nikita-3455", + bio->bi_size = super->s_blocksize * nr_used); + assert("nikita-3456", bio->bi_vcnt == nr_used); /* Check if we are allowed to write at all */ - if ( super->s_flags & MS_RDONLY ) { - int i; - for ( i = 0; i < nr_used ; i++) { - struct page *pg = bio->bi_io_vec[i].bv_page; - ClearPageWriteback(pg); - JF_CLR((jnode *)pg->private, JNODE_WRITEBACK); - JF_SET((jnode *)pg->private, JNODE_DIRTY); - } - bio_put(bio); - } else { + if (super->s_flags & MS_RDONLY) + undo_bio(bio); + else { add_fq_to_bio(fq, bio); reiser4_submit_bio(WRITE, bio); } @@ -1142,11 +1152,7 @@ ON_TRACE (TRACE_IO_W, "write of %d blocks starting from %llu\n", nr, (unsigned long long)block); -#if REISER4_USER_LEVEL_SIMULATION - max_blocks = nr; -#else max_blocks = bdev_get_queue(super->s_bdev)->max_sectors >> (super->s_blocksize_bits - 9); -#endif while (nr > 0) { struct bio *bio; @@ -1158,6 +1164,7 @@ if (!bio) return RETERR(-ENOMEM); + bio->bi_bdev = super->s_bdev; for (nr_used = 0, i = 0; i < nr_blocks; i++) { struct page *pg; ON_DEBUG(int jnode_is_releasable(jnode *)); @@ -1169,6 +1176,13 @@ lock_and_wait_page_writeback(pg); + if (!bio_add_page(bio, pg, super->s_blocksize, 0)) + /* + * underlying device is satiated. Stop adding + * pages to the bio. + */ + break; + LOCK_JNODE(cur); ON_DEBUG_MODIFY(znode_set_checksum(cur, 1)); assert("nikita-3166", @@ -1183,10 +1197,9 @@ spin_lock(&pg->mapping->page_lock); -#if REISER4_STATS - if (!PageDirty(pg)) + if (REISER4_STATS && !PageDirty(pg)) reiser4_stat_inc(pages_clean); -#endif + /* don't check return value: submit page even if it wasn't dirty. */ test_clear_page_dirty(pg); @@ -1198,34 +1211,19 @@ unlock_page(pg); - bio->bi_io_vec[nr_used].bv_page = pg; - bio->bi_io_vec[nr_used].bv_len = super->s_blocksize; - bio->bi_io_vec[nr_used].bv_offset = 0; - cur = capture_list_next(cur); nr_used ++; } if (nr_used > 0) { bio->bi_sector = block * (super->s_blocksize >> 9); - bio->bi_bdev = super->s_bdev; - bio->bi_size = super->s_blocksize * nr_used; - bio->bi_vcnt = nr_used; + assert("nikita-3453", + bio->bi_size == super->s_blocksize * nr_used); + assert("nikita-3454", bio->bi_vcnt == nr_used); /* Check if we are allowed to write at all */ - if ( super->s_flags & MS_RDONLY ) { - int i; - for ( i = 0; i < nr_used ; i++) { - struct page *pg = bio->bi_io_vec[i].bv_page; - struct jnode *j; - - j = jprivate(pg); - ClearPageWriteback(pg); - JF_CLR(j, JNODE_WRITEBACK); - ON_DEBUG_MODIFY(znode_set_checksum(j, 1)); - JF_SET(j, JNODE_DIRTY); - } - bio_put(bio); - } else { + if (super->s_flags & MS_RDONLY) + undo_bio(bio); + else { add_fq_to_bio(fq, bio); reiser4_submit_bio(WRITE, bio); } ---------------------------------------------------------------------- > CPU: 7 > EIP: 0060:[<c014c607>] Not tainted > EFLAGS: 00010086 Nikita. ^ permalink raw reply [flat|nested] 9+ messages in thread
* [linux-lvm] Re: linux-2.6.0 + reiser4 oops 2004-01-19 9:46 ` Nikita Danilov @ 2004-01-19 17:29 ` markw 0 siblings, 0 replies; 9+ messages in thread From: markw @ 2004-01-19 12:30 UTC (permalink / raw) To: Nikita; +Cc: reiserfs-list, linux-lvm On 19 Jan, Nikita Danilov wrote: > markw@osdl.org writes: > > I was testing our DBT-2 workload on linux-2.6.0 with LVM2 and reiser4 > > and got the following oops when I attempted to create a database with > > PostgreSQL. Let me know if I can provide any additional information: > > > > Unable to handle kernel NULL pointer dereference at virtual address 00000000 > > printing eip: > > c014c607 > > *pde = 00104001 > > *pte = 00000000 > > Oops: 0000 [#1] > > This looks much like another bug report we had for > reiser4-on-top-of-raid0. A fix (tentative) for that was to use > bio_add_page() while constructing bios, and it will be included into > next reiser4 snapshot (that, I hope, will be released > to-day---2004.01.19). Hi Nikita, I ran the 2004.01.19 snapshot against 2.6.1 and now I get the following error when I attempt to mount the reiser4 parition: reiser4[mount(17176)]: _init_read_super (fs/reiser4/init_super.c:166)[nikita-2608]: WARNING: Wrong master super block magic. Thanks, Mark ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: linux-2.6.0 + reiser4 oops @ 2004-01-19 17:29 ` markw 0 siblings, 0 replies; 9+ messages in thread From: markw @ 2004-01-19 17:29 UTC (permalink / raw) To: Nikita; +Cc: reiserfs-list, linux-lvm On 19 Jan, Nikita Danilov wrote: > markw@osdl.org writes: > > I was testing our DBT-2 workload on linux-2.6.0 with LVM2 and reiser4 > > and got the following oops when I attempted to create a database with > > PostgreSQL. Let me know if I can provide any additional information: > > > > Unable to handle kernel NULL pointer dereference at virtual address 00000000 > > printing eip: > > c014c607 > > *pde = 00104001 > > *pte = 00000000 > > Oops: 0000 [#1] > > This looks much like another bug report we had for > reiser4-on-top-of-raid0. A fix (tentative) for that was to use > bio_add_page() while constructing bios, and it will be included into > next reiser4 snapshot (that, I hope, will be released > to-day---2004.01.19). Hi Nikita, I ran the 2004.01.19 snapshot against 2.6.1 and now I get the following error when I attempt to mount the reiser4 parition: reiser4[mount(17176)]: _init_read_super (fs/reiser4/init_super.c:166)[nikita-2608]: WARNING: Wrong master super block magic. Thanks, Mark ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: linux-2.6.0 + reiser4 oops 2004-01-19 17:29 ` markw @ 2004-01-20 8:42 ` Nikita Danilov -1 siblings, 0 replies; 9+ messages in thread From: Nikita Danilov @ 2004-01-19 17:35 UTC (permalink / raw) To: markw; +Cc: reiserfs-list, linux-lvm markw@osdl.org writes: > On 19 Jan, Nikita Danilov wrote: > > markw@osdl.org writes: > > > I was testing our DBT-2 workload on linux-2.6.0 with LVM2 and reiser4 > > > and got the following oops when I attempted to create a database with > > > PostgreSQL. Let me know if I can provide any additional information: > > > > > > Unable to handle kernel NULL pointer dereference at virtual address 00000000 > > > printing eip: > > > c014c607 > > > *pde = 00104001 > > > *pte = 00000000 > > > Oops: 0000 [#1] > > > > This looks much like another bug report we had for > > reiser4-on-top-of-raid0. A fix (tentative) for that was to use > > bio_add_page() while constructing bios, and it will be included into > > next reiser4 snapshot (that, I hope, will be released > > to-day---2004.01.19). > > Hi Nikita, > > I ran the 2004.01.19 snapshot against 2.6.1 and now I get the following > error when I attempt to mount the reiser4 parition: > > reiser4[mount(17176)]: _init_read_super (fs/reiser4/init_super.c:166)[nikita-2608]: > WARNING: Wrong master super block magic. I am afraid, you have to re-create reiser4 file systems with new progs. It was decided that we should change super block magic to be more "descriptive". By the way, it turned out, that 2004.01.19 snapshot contained a bug, so new snapshot will be released to-night. > Thanks, > Mark Nikita. ^ permalink raw reply [flat|nested] 9+ messages in thread
* [linux-lvm] Re: linux-2.6.0 + reiser4 oops @ 2004-01-20 8:42 ` Nikita Danilov 0 siblings, 0 replies; 9+ messages in thread From: Nikita Danilov @ 2004-01-20 8:42 UTC (permalink / raw) To: markw; +Cc: reiserfs-list, linux-lvm markw@osdl.org writes: > On 19 Jan, Nikita Danilov wrote: > > markw@osdl.org writes: > > > I was testing our DBT-2 workload on linux-2.6.0 with LVM2 and reiser4 > > > and got the following oops when I attempted to create a database with > > > PostgreSQL. Let me know if I can provide any additional information: > > > > > > Unable to handle kernel NULL pointer dereference at virtual address 00000000 > > > printing eip: > > > c014c607 > > > *pde = 00104001 > > > *pte = 00000000 > > > Oops: 0000 [#1] > > > > This looks much like another bug report we had for > > reiser4-on-top-of-raid0. A fix (tentative) for that was to use > > bio_add_page() while constructing bios, and it will be included into > > next reiser4 snapshot (that, I hope, will be released > > to-day---2004.01.19). > > Hi Nikita, > > I ran the 2004.01.19 snapshot against 2.6.1 and now I get the following > error when I attempt to mount the reiser4 parition: > > reiser4[mount(17176)]: _init_read_super (fs/reiser4/init_super.c:166)[nikita-2608]: > WARNING: Wrong master super block magic. I am afraid, you have to re-create reiser4 file systems with new progs. It was decided that we should change super block magic to be more "descriptive". By the way, it turned out, that 2004.01.19 snapshot contained a bug, so new snapshot will be released to-night. > Thanks, > Mark Nikita. ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2004-01-20 8:42 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2004-01-16 15:46 [linux-lvm] linux-2.6.0 + reiser4 oops markw 2004-01-16 20:45 ` markw 2004-01-16 17:04 ` [linux-lvm] " Hans Reiser 2004-01-16 20:50 ` Hans Reiser 2004-01-19 9:46 ` Nikita Danilov 2004-01-19 12:30 ` [linux-lvm] " markw 2004-01-19 17:29 ` markw 2004-01-19 17:35 ` Nikita Danilov 2004-01-20 8:42 ` [linux-lvm] " Nikita Danilov
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.