Hi all,
here the next round of my update to the ALUA device handler. The main
features are:
- Topology discovery: the device handler creates a separate
port_group structure, which is used to update all paths to
the same port group. With that we achieve a significant
reduction of the number of RTPGs.
- Asynchronous state update: The ALUA state is now updated
from a workqueue item, so all concurrent RTPG calls are
coaleasced. The ALUA state update is also triggered by
sense codes indicating an ALUA state change.
- Use the existing vpd page 0x83 to detect device IDs
- Add generic 'access_state' attribute to discover the
current ALUA state from userspace.
The entire tree can be found at
kernel/hare/scsi-devel branch alua.v5
on git.kernel.org
As usual, reviews and comments are welcome.
Changes to v1:
- Split off rtpg workqueue into separate items
- User per-port workqueues
- Incorporate review from Bart
- Incorporate review from hch
Changes to v2:
- Fixup patch descriptions
- Split off 'Improve error handling' patch
Changes to v3:
- Implement generic 'scsi_vpd_lun_id()' function to parse vpd page 0x83
Changes to v4:
- Revert back to a single workqueue item
- Implement generic 'scsi_vpd_tpg_id()' function
- Add 'access_state' attribute to struct scsi_device
- Incorporate review from Ewan Milne
- Incorporate further reviews from hch
- Reshuffle patches
Hannes Reinecke (36):
scsi_dh: move 'dh_state' sysfs attribute to generic code
scsi: ignore errors from scsi_dh_add_device()
scsi_dh_alua: Disable ALUA handling for non-disk devices
scsi_dh_alua: Use vpd_pg83 information
scsi_dh_alua: improved logging
scsi_dh_alua: sanitze sense code handling
scsi_dh_alua: use standard logging functions
scsi_dh_alua: return standard SCSI return codes in submit_rtpg
scsi_dh_alua: fixup description of stpg_endio()
scsi: remove scsi_show_sense_hdr()
scsi_dh_alua: use flag for RTPG extended header
scsi_dh_alua: use unaligned access macros
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: rework alua_check_tpgs() to return the tpgs mode
scsi_dh_alua: Use separate alua_port_group structure
scsi_dh_alua: allocate RTPG buffer separately
scsi_dh_alua: simplify sense code handling
scsi: Add scsi_vpd_lun_id()
scsi_dh_alua: use unique device id
scsi: Add scsi_vpd_tpg_id()
scsi_dh_alua: simplify alua_initialize()
revert "scsi_dh_alua: ALUA hander attach should succeed while TPG is
transitioning"
scsi_dh_alua: Use workqueue for RTPG
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: rescan VPD attributes
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 | 1173 +++++++++++++++++-----------
drivers/scsi/scsi.c | 20 +-
drivers/scsi/scsi_dh.c | 68 +-
drivers/scsi/scsi_lib.c | 184 +++++
drivers/scsi/scsi_scan.c | 11 +
drivers/scsi/scsi_sysfs.c | 122 ++-
drivers/scsi/ses.c | 13 +-
include/scsi/scsi_dbg.h | 2 -
include/scsi/scsi_device.h | 4 +
include/scsi/scsi_dh.h | 2 +
include/scsi/scsi_proto.h | 13 +
11 files changed, 1081 insertions(+), 531 deletions(-)
--
1.8.5.6
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html