linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCHv2 00/22] ALUA device handler update, part II
@ 2016-01-12 15:40 Hannes Reinecke
  2016-01-12 15:40 ` [PATCHv2 01/22] scsi_dh_alua: Pass buffer as function argument Hannes Reinecke
                   ` (22 more replies)
  0 siblings, 23 replies; 38+ messages in thread
From: Hannes Reinecke @ 2016-01-12 15:40 UTC (permalink / raw)
  To: Martin K. Petersen
  Cc: James Bottomley, Christoph Hellwig, Bart von Assche, Ewan Milne,
	linux-scsi, Hannes Reinecke

(resending as I failed to include linux-scsi :-( )

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 second hardware handler parameter which then uses a singlethreaded
workqueue, thereby effectively synchronize STPG handling.
Thanks to Bart for this suggestion.

As usual, comments and reviews are welcome.

Changes to v1:
- Include reviews from hch
- Switch to hardware handler parameter instead of module option

Hannes Reinecke (22):
  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: allocate RTPG buffer separately
  scsi_dh_alua: Use separate alua_port_group structure
  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: move optimize_stpg evaluation
  scsi_dh_alua: remove 'rel_port' from alua_dh_data structure
  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 | 983 ++++++++++++++++++++---------
 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, 747 insertions(+), 311 deletions(-)

-- 
1.8.5.6


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

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

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

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).