linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/20] ALUA device handler update, part II
@ 2015-12-08  7:37 Hannes Reinecke
  2015-12-08  7:37 ` [PATCH 01/20] scsi_dh_alua: Pass buffer as function argument Hannes Reinecke
                   ` (20 more replies)
  0 siblings, 21 replies; 49+ messages in thread
From: Hannes Reinecke @ 2015-12-08  7:37 UTC (permalink / raw)
  To: Martin K. Petersen
  Cc: James Bottomley, Christoph Hellwig, Ewan Milne, Bart van Assche,
	linux-scsi, Hannes Reinecke

Hi all,

as promised here is now the second part of my ALUA device handler update.
This contains a major rework of the ALUA device handler as execution is
moved onto a workqueue. This has the advantage that we avoid having to
do multiple calls to the same LUN (as happens frequently when failing
over a LUN with several paths) and finally retries are handled correctly.
As some arrays are only capable of handling one STPG at a time I've added
a module parameter 'sync_stpg' which switches to a singlethreaded
workqueue, thereby effectively synchronize STPG handling.
Thanks to Bart for this suggestion.

As usual, comments and reviews are welcome.

Hannes Reinecke (20):
  scsi_dh_alua: Pass buffer as function argument
  scsi_dh_alua: separate out alua_stpg()
  scsi_dh_alua: Make stpg synchronous
  scsi_dh_alua: call alua_rtpg() if stpg fails
  scsi_dh_alua: switch to scsi_execute_req_flags()
  scsi_dh_alua: Use separate alua_port_group structure
  scsi_dh_alua: allocate RTPG buffer separately
  scsi_dh_alua: use unique device id
  scsi_dh_alua: simplify alua_initialize()
  revert commit a8e5a2d593cb ("[SCSI] scsi_dh_alua: ALUA handler attach
    should succeed while TPG is transitioning")
  scsi_dh_alua: Use workqueue for RTPG
  scsi_dh_alua: Allow workqueue to run synchronously
  scsi_dh_alua: Recheck state on unit attention
  scsi_dh_alua: update all port states
  scsi_dh_alua: Send TEST UNIT READY to poll for transitioning
  scsi_dh: add 'rescan' callback
  scsi: Add 'access_state' attribute
  scsi_dh_alua: use common definitions for ALUA state
  scsi_dh_alua: update 'access_state' field
  scsi_dh_alua: Update version to 2.0

 drivers/scsi/device_handler/scsi_dh_alua.c | 977 ++++++++++++++++++++---------
 drivers/scsi/scsi_lib.c                    |   1 +
 drivers/scsi/scsi_scan.c                   |   9 +-
 drivers/scsi/scsi_sysfs.c                  |  49 ++
 include/scsi/scsi_device.h                 |   1 +
 include/scsi/scsi_dh.h                     |   2 +
 include/scsi/scsi_proto.h                  |  13 +
 7 files changed, 745 insertions(+), 307 deletions(-)

-- 
1.8.5.6


^ permalink raw reply	[flat|nested] 49+ messages in thread

end of thread, other threads:[~2016-01-03 10:55 UTC | newest]

Thread overview: 49+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-12-08  7:37 [PATCH 00/20] ALUA device handler update, part II Hannes Reinecke
2015-12-08  7:37 ` [PATCH 01/20] scsi_dh_alua: Pass buffer as function argument Hannes Reinecke
2015-12-08  7:37 ` [PATCH 02/20] scsi_dh_alua: separate out alua_stpg() Hannes Reinecke
2015-12-30 11:06   ` Christoph Hellwig
2015-12-08  7:37 ` [PATCH 03/20] scsi_dh_alua: Make stpg synchronous Hannes Reinecke
2015-12-30 11:10   ` Christoph Hellwig
2015-12-08  7:37 ` [PATCH 04/20] scsi_dh_alua: call alua_rtpg() if stpg fails Hannes Reinecke
2015-12-30 11:10   ` Christoph Hellwig
2015-12-08  7:37 ` [PATCH 05/20] scsi_dh_alua: switch to scsi_execute_req_flags() Hannes Reinecke
2015-12-08  7:37 ` [PATCH 06/20] scsi_dh_alua: Use separate alua_port_group structure Hannes Reinecke
2015-12-30 11:17   ` Christoph Hellwig
2015-12-31 12:47     ` Hannes Reinecke
2015-12-08  7:37 ` [PATCH 07/20] scsi_dh_alua: allocate RTPG buffer separately Hannes Reinecke
2015-12-08  7:37 ` [PATCH 08/20] scsi_dh_alua: use unique device id Hannes Reinecke
2015-12-30 11:20   ` Christoph Hellwig
2015-12-31 12:53     ` Hannes Reinecke
2015-12-08  7:37 ` [PATCH 09/20] scsi_dh_alua: simplify alua_initialize() Hannes Reinecke
2015-12-30 11:21   ` Christoph Hellwig
2015-12-08  7:37 ` [PATCH 10/20] revert commit a8e5a2d593cb ("[SCSI] scsi_dh_alua: ALUA handler attach should succeed while TPG is transitioning") Hannes Reinecke
2015-12-30 11:22   ` Christoph Hellwig
2015-12-31 12:54     ` Hannes Reinecke
2015-12-08  7:37 ` [PATCH 11/20] scsi_dh_alua: Use workqueue for RTPG Hannes Reinecke
2015-12-30 13:19   ` Christoph Hellwig
2015-12-31 13:01     ` Hannes Reinecke
2016-01-03 10:53       ` Christoph Hellwig
2015-12-08  7:37 ` [PATCH 12/20] scsi_dh_alua: Allow workqueue to run synchronously Hannes Reinecke
2015-12-30 13:20   ` Christoph Hellwig
2015-12-31 13:54     ` Hannes Reinecke
2016-01-03 10:54       ` Christoph Hellwig
2015-12-08  7:37 ` [PATCH 13/20] scsi_dh_alua: Recheck state on unit attention Hannes Reinecke
2015-12-30 13:22   ` Christoph Hellwig
2015-12-31 14:02     ` Hannes Reinecke
2015-12-08  7:37 ` [PATCH 14/20] scsi_dh_alua: update all port states Hannes Reinecke
2015-12-30 13:23   ` Christoph Hellwig
2015-12-31 14:09     ` Hannes Reinecke
2015-12-08  7:37 ` [PATCH 15/20] scsi_dh_alua: Send TEST UNIT READY to poll for transitioning Hannes Reinecke
2015-12-30 13:24   ` Christoph Hellwig
2015-12-08  7:37 ` [PATCH 16/20] scsi_dh: add 'rescan' callback Hannes Reinecke
2015-12-30 13:24   ` Christoph Hellwig
2015-12-08  7:37 ` [PATCH 17/20] scsi: Add 'access_state' attribute Hannes Reinecke
2015-12-30 13:24   ` Christoph Hellwig
2015-12-30 13:26   ` Christoph Hellwig
2015-12-08  7:37 ` [PATCH 18/20] scsi_dh_alua: use common definitions for ALUA state Hannes Reinecke
2015-12-30 13:28   ` Christoph Hellwig
2015-12-08  7:37 ` [PATCH 19/20] scsi_dh_alua: update 'access_state' field Hannes Reinecke
2015-12-30 13:34   ` Christoph Hellwig
2015-12-31 14:15     ` Hannes Reinecke
2015-12-08  7:37 ` [PATCH 20/20] scsi_dh_alua: Update version to 2.0 Hannes Reinecke
2015-12-08 15:06 ` [PATCH 00/20] ALUA device handler update, part II Hannes Reinecke

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).