Re: [PATCH v3 0/2] Ensure that the SCSI error handler gets woken up

2017-12-07 Thread Bart Van Assche
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

2017-12-07 Thread John Garry

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

2017-12-06 Thread Martin K. Petersen

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

2017-12-04 Thread Bart Van Assche
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