Re: [PATCH v3 0/2] Ensure that the SCSI error handler gets woken up
On Thu, 2017-12-07 at 12:02 +, John Garry wrote: > On 07/12/2017 01:55, Martin K. Petersen wrote: > > > > Bart, > > > > > As reported by Pavel Tikhomirov it can happen that the SCSI error > > > handler does not get woken up. This is very annoying because it > > > results in a queue stall. The two patches in this series address this > > > issue without acquiring the SCSI host lock in the hot path. Please > > > consider these patches for kernel v4.16. > > > > Applied to 4.16/scsi-queue. Thank you! > > > > Is anyone finding a build error for this patch? I built allmodconfig on > Martin's 4.16/scsi-queue and I get this: > ERROR: "init_rcu_head" [drivers/scsi/scsi_mod.ko] undefined! > ERROR: "destroy_rcu_head" [drivers/scsi/scsi_mod.ko] undefined! > > Reverting fixes it. > > From a quick check, it seems the rcu funcitons are not exported, and > SCSI=m means hosts.c cannot reference it. Hello John, A discussion is ongoing about this issue on the linux-next mailing list. Paul E. McKenney proposed to export both the init_rcu_head() and destroy_rcu_head() functions. See also https://lkml.org/lkml/2017/12/6/1150. Bart.
Re: [PATCH v3 0/2] Ensure that the SCSI error handler gets woken up
On 07/12/2017 01:55, Martin K. Petersen wrote: Bart, As reported by Pavel Tikhomirov it can happen that the SCSI error handler does not get woken up. This is very annoying because it results in a queue stall. The two patches in this series address this issue without acquiring the SCSI host lock in the hot path. Please consider these patches for kernel v4.16. Applied to 4.16/scsi-queue. Thank you! Is anyone finding a build error for this patch? I built allmodconfig on Martin's 4.16/scsi-queue and I get this: ERROR: "init_rcu_head" [drivers/scsi/scsi_mod.ko] undefined! ERROR: "destroy_rcu_head" [drivers/scsi/scsi_mod.ko] undefined! Reverting fixes it. From a quick check, it seems the rcu funcitons are not exported, and SCSI=m means hosts.c cannot reference it. Cheers, John
Re: [PATCH v3 0/2] Ensure that the SCSI error handler gets woken up
Bart, > As reported by Pavel Tikhomirov it can happen that the SCSI error > handler does not get woken up. This is very annoying because it > results in a queue stall. The two patches in this series address this > issue without acquiring the SCSI host lock in the hot path. Please > consider these patches for kernel v4.16. Applied to 4.16/scsi-queue. Thank you! -- Martin K. Petersen Oracle Linux Engineering
[PATCH v3 0/2] Ensure that the SCSI error handler gets woken up
Hello Martin, As reported by Pavel Tikhomirov it can happen that the SCSI error handler does not get woken up. This is very annoying because it results in a queue stall. The two patches in this series address this issue without acquiring the SCSI host lock in the hot path. Please consider these patches for kernel v4.16. Thanks, Bart. Changes between v2 and v3: - Made it again safe to call scsi_eh_scmd_add() from interrupt context. Changes between v1 and v2: - Ensure that host_lock is held while checking host_failed. - Moved the lockdep_assert_held() change into a separate patch. Bart Van Assche (2): Ensure that the SCSI error handler gets woken up Convert a source code comment into a runtime check drivers/scsi/hosts.c | 6 ++ drivers/scsi/scsi_error.c | 21 ++--- drivers/scsi/scsi_lib.c | 39 --- include/scsi/scsi_host.h | 2 ++ 4 files changed, 54 insertions(+), 14 deletions(-) -- 2.15.0