[dm-devel] further testing w/ multipath ... and bugs
Christophe Varoqui
christophe.varoqui at free.fr
Mon Jun 13 10:06:27 UTC 2005
Here is an additional one :
When at the end of the previous scenario, with a dd in D-state, I "dmsetup remove_all" ... it effectively accept to remove the maps. Exec'ing multipath again gives :
[<c027506c>] end_that_request_last+0xcc/0x100
[<c02b19ed>] scsi_end_request+0x9d/0xe0
[<c02b1d45>] scsi_io_completion+0x155/0x500
[<c0327643>] ip_rcv+0x3a3/0x560
[<c012c1de>] del_timer+0x5e/0x70
[<c02cdce4>] sd_rw_intr+0x164/0x320
[<c0149531>] mempool_free+0x81/0xa0
[<c02c60cd>] qla2x00_process_response_queue+0x14d/0x1d0
[<c02ac946>] scsi_finish_command+0x96/0xe0
[<c033f2e3>] tcp_write_timer+0x73/0xe0
[<c02ac836>] scsi_softirq+0xa6/0xe0
[<c01285b2>] __do_softirq+0x82/0x100
[<c0128665>] do_softirq+0x35/0x40
[<c010675b>] do_IRQ+0x3b/0x70
[<c0104c1e>] common_interrupt+0x1a/0x20
[<c0102030>] default_idle+0x0/0x30
[<c0102053>] default_idle+0x23/0x30
[<c0102104>] cpu_idle+0x64/0x80
[<c0462965>] start_kernel+0x185/0x1d0
[<c0462370>] unknown_bootoption+0x0/0x1e0
Code: 90 80 3e 00 7e f9 fa eb e8 89 d8 8b 74 24 0c 8b 5c 24 08 83 c4 10 c3 c7 04
24 c4 6a 38 c0 8b 44 24 10 89 44 24 04 e8 6d 30 db ff <0f> 0b 95 00 c2 62 38 c0
eb bc 8d 76 00 53 83 ec 08 89 c3 fa 81
<0>Kernel panic - not syncing: Fatal exception in interrupt
Regards,
cvaroqui
On Mon, Jun 13, 2005 at 10:11:54AM +0200, Christophe Varoqui wrote:
> Hello,
>
> I'm testing Mike Christie's START_STOP hwhandler and discovered a bunch of new, interesting, phenomenons :
>
> A little context first :
> o kernel 2.6.12-rc6 + qlogic discovery patch
> o qla2342 (dual 2GB)
> o EVA5000, Solaris-tagged connections
>
> Here is a map create by multipath, fresh from boot :
>
> eva1_lun2 (3600508b400014ba7000120000cf00000)
> [size=50 GB][features="1 queue_if_no_path"][hwhandler="1 hp_sw"]
> \_ round-robin 0 [active][best]
> \_ 0:0:0:2 sdb 8:16 [ready ][active]
> \_ 1:0:0:2 sdf 8:80 [ready ][active]
> \_ round-robin 0 [enabled]
> \_ 0:0:1:2 sdd 8:48 [faulty][active]
> \_ 1:0:1:2 sdh 8:112 [faulty][active]
>
> Start a background stream read with dd on that map.
>
> Do a port disable on the FC switch port connected to HBA 0
> Consistently at this moment I get the following in the logs :
>
> qla2300 0000:05:0d.0: LOOP DOWN detected.
> Debug: sleeping function called from invalid context at include/linux/rwsem.h:43
> in_atomic():1, irqs_disabled():1
> [<c0120a74>] __might_sleep+0xa4/0xc0
> [<c026a466>] device_for_each_child+0x26/0x80
> [<c02b3180>] target_block+0x0/0x30
> [<c02bbdae>] fc_remote_port_block+0x2e/0x60
> [<c02bdbf5>] qla2x00_mark_all_devices_lost+0x55/0x60
> [<c02c597e>] qla2x00_async_event+0x83e/0xd60
> [<c011dd2b>] find_busiest_group+0xbb/0x310
> [<c02cdce4>] sd_rw_intr+0x164/0x320
> [<c02c4e37>] qla2300_intr_handler+0x77/0x240
> [<c0144882>] handle_IRQ_event+0x32/0x70
> [<c0144997>] __do_IRQ+0xd7/0x140
> [<c0106756>] do_IRQ+0x36/0x70
> [<c0104c1e>] common_interrupt+0x1a/0x20
> [<c0102030>] default_idle+0x0/0x30
> [<c0102053>] default_idle+0x23/0x30
> [<c0102104>] cpu_idle+0x64/0x80
>
> If I wait long enough, I then get the following :
>
> rport-0:0-0: blocked FC remote port time out: removing target
> rport-0:0-1: blocked FC remote port time out: removing target
>
> ... which is rather new to me.
>
> As a side effect, all sd associated are removed, uevents are sent signaling the disks have gone. This triggers checker removal on multipathd side in the current implementation.
>
> Then, upon port reenable, sd are registred again with different minor than before. uevent adds get sent, multipath reconfigures the maps and ...
>
> Unable to handle kernel NULL pointer dereference at virtual address 00000000
> printing eip:
> f8b0d29f
> *pde = 08e4d001
> Oops: 0000 [#1]
> SMP
> Modules linked in: dm_round_robin dm_hp_sw dm_multipath md5 ipv6 parport_pc lp parport autofs4 i2c_dev i2c_core sunrpc video button battery ac ohci_hcd tg3 floppy dm_mod qla6312
> CPU: 2
> EIP: 0060:[<f8b0d29f>] Not tainted VLI
> EFLAGS: 00010086 (2.6.12-rc6)
> EIP is at rr_select_path+0xf/0x60 [dm_round_robin]
> eax: f6a989cc ebx: 00000000 ecx: f6a978c0 edx: f7f1e77c
> esi: f7f1e77c edi: 00000000 ebp: 00000001 esp: f65d1f00
> ds: 007b es: 007b ss: 0068
> Process kmpathd/2 (pid: 4564, threadinfo=f65d0000 task=f6708aa0)
> Stack: f6a989c0 f7f1e740 f8ae3bc2 f7f1e740 f7f1e740 f8ae3c90 f7f1e740 f7f1e740
> 00000000 f7f1e74c f8ae3f9c 00000286 00000000 f7f1e754 f7f1e740 f7f34100
> f7f1e790 00000282 c01339a2 00000000 000f42b4 f6cdfe5c f7f34128 f7f34110
> Call Trace:
> [<f8ae3bc2>] __choose_path_in_pg+0x12/0x40 [dm_multipath]
> [<f8ae3c90>] __choose_pgpath+0xa0/0xb0 [dm_multipath]
> [<f8ae3f9c>] process_queued_ios+0x7c/0xf0 [dm_multipath]
> [<c01339a2>] worker_thread+0x1c2/0x250
> [<f8ae3f20>] process_queued_ios+0x0/0xf0 [dm_multipath]
> [<c011eaa0>] default_wake_function+0x0/0x10
> [<c011eaa0>] default_wake_function+0x0/0x10
> [<c01337e0>] worker_thread+0x0/0x250
> [<c0137c65>] kthread+0xa5/0xf0
> [<c0137bc0>] kthread+0x0/0xf0
> [<c0102445>] kernel_thread_helper+0x5/0x10
> Code: 42 04 89 10 89 58 04 89 03 31 c0 5b c3 eb 0d 90 90 90 90 90 90 90 90 90 90 90 90 90 83 ec 08 89 74 24 04 89 d6 89 1c 24 8b 58 04 <8b> 03 39 d8 74 30 89 c1 8b 50 04 8b 00 85 c9 89 50 04 89 02 8b
>
> Here dd is now stuck in D-state.
>
> I Will post more as I continue my hammering.
>
> Regards,
> cvaroqui
>
> --
> dm-devel mailing list
> dm-devel at redhat.com
> https://www.redhat.com/mailman/listinfo/dm-devel
More information about the dm-devel
mailing list