Hi Bart, On Thu, 2017-02-09 at 17:28 -0800, Bart Van Assche wrote: > The most important changes in this patch series are: > * ABORT and LUN RESET handling is made synchronous. > * LUN lookup during ABORT handling is moved from the tcm_qla2xxx > driver into the target core. > * A deadlock in the XCOPY implementation has been fixed. > * The SCSI target core is simplified significantly. > So these haven't been split into smaller independent series, per last evening's request. Care to do that next time to make it easier for list review..? Btw, I took a quick look at the series, but still don't see some of my review comments acknowledged or addressed. I'll go through them with a fine toothed comb again tomorrow, but keep in mind I'll continue to be repeating myself for alot of this stuff. > These patches have been tested against the iSCSI, ib_srpt and > tcm_qla2xxx target drivers. > Also, I grabbed patches #1-#6 and gave it a quick spin with another simple first order scenario where a IBLOCK backend device is not completing bios for a period of time (10 seconds). While a WRITE bio was outstanding to one SCSI device on the first target IQN, I manually issued a sg_reset -d to another SCSI device (same IBLOCK backend) on a second target IQN. Eg: multi-port LUN reset with outstanding I/O. It oopsed the very first try: [ 482.538113] BUG: unable to handle kernel NULL pointer dereference at 0000000000000001 [ 482.539571] IP: target_handle_abort+0xbd/0x12a [target_core_mod] [ 482.540581] PGD 77354067 [ 482.540582] PUD 34fbb067 [ 482.541048] PMD 0 [ 482.541485] [ 482.542047] Oops: 0002 [#1] SMP Entering kdb (current=0xffff88007d0f9540, pid 3) on processor 0 Oops: (null) due to oops @ 0xffffffffa03d67cf CPU: 0 PID: 3 Comm: kworker/0:0 Tainted: G W 4.10.0-rc7+ #36 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011 Workqueue: target_completion target_abort_work [target_core_mod] task: ffff88007d0f9540 task.stack: ffffc90000018000 RIP: 0010:target_handle_abort+0xbd/0x12a [target_core_mod] RSP: 0018:ffffc9000001bdf0 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffff880038a686d0 RCX: 0000000000000000 RDX: ffff88007fc10701 RSI: ffff88007fc0cb88 RDI: ffff880038a686d0 RBP: ffffc9000001be00 R08: 0000000000000001 R09: 0000000000000001 R10: 0000000000000001 R11: ffff88007ca38040 R12: 0000000001400109 R13: ffffe8ffffc00000 R14: 0000000000000000 R15: ffff880038a688a0 FS: 0000000000000000(0000) GS:ffff88007fc00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000001 CR3: 00000000737d6000 CR4: 00000000000006b0 Call Trace: target_abort_work+0x10/0x12 [target_core_mod] process_one_work+0x1ef/0x3a1 ? process_one_work+0x18a/0x3a1 worker_thread+0x277/0x386 ? process_scheduled_works+0x2e/0x2e kthread+0x121/0x129 ? __kthread_init_worker+0x64/0x64 ret_from_fork+0x31/0x40 Code: a0 48 8b 4b 08 0f b6 10 31 c0 e8 09 a0 e7 e0 48 8b 83 98 00 00 00 48 89 df ff 90 c8 00 00 00 [0]kdb> [ 482.538113] BUG: unable to handle kernel NULL pointer dereference at 0000000000000001 [ 482.539571] IP: target_handle_abort+0xbd/0x12a [target_core_mod] [ 482.540581] PGD 77354067 [ 482.540582] PUD 34fbb067 [ 482.541048] PMD 0 [ 482.541485] [ 482.542047] Oops: 0002 [#1] SMP [ 482.542047] Modules linked in: sg brd iscsi_target_mod usb_f_tcm tcm_loop tcm_qla2xxx ib_srpt tcm_fc vhost_scsi target_core_file target_core_iblock target_core_pscsi target_core_mod [ 482.544050] INFO: NMI handler (kgdb_nmi_handler) took too long to run: 7782.321 msecs [ 482.542047] libcomposite udc_core qla2xxx libfc scsi_transport_fc vhost ib_iser rdma_cm iw_cm ib_cm ib_core configfs iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi ipv6 loop nvme parport_pc parport nvme_core i2c_piix4 i2c_core button acpi_cpufreq floppy e1000 [last unloaded: target_core_mod] [ 482.542047] CPU: 0 PID: 3 Comm: kworker/0:0 Tainted: G W 4.10.0-rc7+ #36 [ 482.542047] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011 [ 482.542047] Workqueue: target_completion target_abort_work [target_core_mod] [ 482.542047] task: ffff88007d0f9540 task.stack: ffffc90000018000 [ 482.542047] RIP: 0010:target_handle_abort+0xbd/0x12a [target_core_mod] [ 482.542047] RSP: 0018:ffffc9000001bdf0 EFLAGS: 00010246 [ 482.542047] RAX: 0000000000000000 RBX: ffff880038a686d0 RCX: 0000000000000000 [ 482.542047] RDX: ffff88007fc10701 RSI: ffff88007fc0cb88 RDI: ffff880038a686d0 [ 482.542047] RBP: ffffc9000001be00 R08: 0000000000000001 R09: 0000000000000001 [ 482.542047] R10: 0000000000000001 R11: ffff88007ca38040 R12: 0000000001400109 [ 482.542047] R13: ffffe8ffffc00000 R14: 0000000000000000 R15: ffff880038a688a0 [ 482.542047] FS: 0000000000000000(0000) GS:ffff88007fc00000(0000) knlGS:0000000000000000 [ 482.542047] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 482.542047] CR2: 0000000000000001 CR3: 00000000737d6000 CR4: 00000000000006b0 [ 482.542047] Call Trace: [ 482.542047] target_abort_work+0x10/0x12 [target_core_mod] [ 482.542047] process_one_work+0x1ef/0x3a1 [ 482.542047] ? process_one_work+0x18a/0x3a1 [ 482.542047] worker_thread+0x277/0x386 [ 482.542047] ? process_scheduled_works+0x2e/0x2e [ 482.542047] kthread+0x121/0x129 [ 482.542047] ? __kthread_init_worker+0x64/0x64 [ 482.542047] ret_from_fork+0x31/0x40 [ 482.542047] Code: a0 48 8b 4b 08 0f b6 10 31 c0 e8 09 a0 e7 e0 48 8b 83 98 00 00 00 48 89 df ff 90 c8 00 00 00 eb 1b 48 8b 83 80 00 00 00 48 89 df <c6> 40 01 05 48 8b 83 98 00 00 00 ff 90 d0 00 00 00 45 31 e4 eb [ 482.542047] RIP: target_handle_abort+0xbd/0x12a [target_core_mod] RSP: ffffc9000001bdf0 [ 482.542047] CR2: 0000000000000001 [ 482.542047] ---[ end trace ab4e8e77cae4a815 ]--- -- To unsubscribe from this list: send the line "unsubscribe target-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html