All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 00/19] Use block pr_ops in LIO
@ 2022-10-26 23:19 ` Mike Christie
  0 siblings, 0 replies; 114+ messages in thread
From: Mike Christie @ 2022-10-26 23:19 UTC (permalink / raw)
  To: bvanassche, hch, martin.petersen, linux-scsi, james.bottomley,
	linux-block, dm-devel, snitzer, axboe, linux-nvme, chaitanyak,
	kbusch, target-devel

The following patches were built over Linus's tree and this patchset

https://lore.kernel.org/all/20221023030403.33845-24-michael.christie@oracle.com/t/

which allows the SCSI layer passthrough users to control retries for
commands like PRs used in this patchset.

The patches in this thread allow us to use the block pr_ops with LIO's
target_core_iblock module to support cluster applications in VMs.
Currently, to use windows clustering or linux clustering (pacemaker +
cluster labs scsi fence agents) in VMs with LIO and vhost-scsi, you have
to use tcmu or pscsi or use a cluster aware FS/framework for the LIO pr
file. Setting up a cluster FS/framework is pain and waste when your real
backend device is already a distributed device, and pscsi and tcmu are
nice for specific use cases, but iblock gives you the best performance and
allows you to use stacked devices like dm-multipath. So these patches
allow iblock to work like pscsi/tcmu where they can pass a PR command to
the backend module. And then iblock will use the pr_ops to pass the PR
command to the real devices similar to what we do for unmap today.

The patches are separated in the following groups:

patches 1 - 11
- Add callouts to read a reservation and it's keys.

patches 12 - 15
- Have pr_ops return a blk_status_t.

patches 16 - 19
- Support for target_core_iblock to bypass the emulate PR code and call
the pr_ops.

This patchset has been tested with the libiscsi PGR ops and with window's
failover cluster verification test.

v3:
- Fix patch subject formatting.
- Fix coding style.
- Rearrange patches so helpers are added with users to avoid compilation
errors.
- Move pr type conversion to array and add nvme_pr_type.
- Add Extended Data Structure control flag enum and use in code for checks.
- Move nvme pr code to new file.
- Add more info to patch subjects about why we need to add blk_status
to pr_ops.
- Use generic SCSI passthrough error handling interface.
- Fix checkpatch --strict errors. Note that I kept the existing coding
style that it complained about because it looked like it was the preferred
style for the code and I didn't want a mix and match.

v2:
- Drop BLK_STS_NEXUS rename changes. Will do separately.
- Add NVMe support.
- Fixed bug in target_core_iblock where a variable was not initialized
mentioned by Christoph.
- Fixed sd pr_ops UA handling issue found when running libiscsi PGR tests.
- Added patches to allow pr_ops to pass up a BLK_STS so we could return
a RESERVATION_CONFLICT status when a pr_ops callout fails.





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

end of thread, other threads:[~2022-11-07  9:16 UTC | newest]

Thread overview: 114+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-26 23:19 [PATCH v3 00/19] Use block pr_ops in LIO Mike Christie
2022-10-26 23:19 ` [dm-devel] " Mike Christie
2022-10-26 23:19 ` [PATCH v3 01/19] block: Add PR callouts for read keys and reservation Mike Christie
2022-10-26 23:19   ` [dm-devel] " Mike Christie
2022-11-02 22:50   ` Bart Van Assche
2022-11-02 22:50     ` [dm-devel] " Bart Van Assche
2022-11-03  1:54     ` Mike Christie
2022-11-03  1:54       ` [dm-devel] " Mike Christie
2022-11-02 22:53   ` Bart Van Assche
2022-11-02 22:53     ` [dm-devel] " Bart Van Assche
2022-11-03  2:25     ` Mike Christie
2022-11-03  2:25       ` [dm-devel] " Mike Christie
2022-10-26 23:19 ` [PATCH v3 02/19] scsi: Rename sd_pr_command Mike Christie
2022-10-26 23:19   ` [dm-devel] " Mike Christie
2022-11-01  5:33   ` Chaitanya Kulkarni
2022-11-01  5:33     ` [dm-devel] " Chaitanya Kulkarni
2022-10-26 23:19 ` [PATCH v3 03/19] scsi: Move sd_pr_type to header to share Mike Christie
2022-10-26 23:19   ` [dm-devel] " Mike Christie
2022-11-01  5:43   ` Chaitanya Kulkarni
2022-11-01  5:43     ` [dm-devel] " Chaitanya Kulkarni
2022-11-01 16:43     ` Mike Christie
2022-11-01 16:43       ` [dm-devel] " Mike Christie
2022-11-02 22:47   ` Bart Van Assche
2022-11-02 22:47     ` [dm-devel] " Bart Van Assche
2022-11-03  2:13     ` Mike Christie
2022-11-03  2:13       ` [dm-devel] " Mike Christie
2022-11-03 18:14       ` Bart Van Assche
2022-11-03 18:14         ` [dm-devel] " Bart Van Assche
2022-10-26 23:19 ` [PATCH v3 04/19] scsi: Add support for block PR read keys/reservation Mike Christie
2022-10-26 23:19   ` [dm-devel] " Mike Christie
2022-10-27  6:08   ` kernel test robot
2022-10-27  6:08     ` [dm-devel] " kernel test robot
2022-10-27  7:59   ` kernel test robot
2022-10-27  7:59     ` [dm-devel] " kernel test robot
2022-10-27 10:41   ` kernel test robot
2022-10-27 10:41     ` [dm-devel] " kernel test robot
2022-11-01  5:45   ` Chaitanya Kulkarni
2022-11-01  5:45     ` [dm-devel] " Chaitanya Kulkarni
2022-11-02 22:54   ` Bart Van Assche
2022-11-02 22:54     ` [dm-devel] " Bart Van Assche
2022-10-26 23:19 ` [PATCH v3 05/19] dm: " Mike Christie
2022-10-26 23:19   ` [dm-devel] " Mike Christie
2022-10-26 23:19 ` [PATCH v3 06/19] nvme: Fix reservation status related structs Mike Christie
2022-10-26 23:19   ` [dm-devel] " Mike Christie
2022-10-27 17:04   ` Keith Busch
2022-10-27 17:04     ` [dm-devel] " Keith Busch
2022-10-26 23:19 ` [PATCH v3 07/19] nvme: Don't hardcode the data len for pr commands Mike Christie
2022-10-26 23:19   ` [dm-devel] " Mike Christie
2022-10-27 17:05   ` Keith Busch
2022-10-27 17:05     ` [dm-devel] " Keith Busch
2022-11-01  5:29   ` Chaitanya Kulkarni
2022-11-01  5:29     ` [dm-devel] " Chaitanya Kulkarni
2022-10-26 23:19 ` [PATCH v3 08/19] nvme: Move pr code to it's own file Mike Christie
2022-10-26 23:19   ` [dm-devel] " Mike Christie
2022-10-27 17:06   ` Keith Busch
2022-10-27 17:06     ` [dm-devel] " Keith Busch
2022-10-28 16:06     ` Mike Christie
2022-10-28 16:06       ` [dm-devel] " Mike Christie
2022-10-28 16:38       ` Keith Busch
2022-10-28 16:38         ` [dm-devel] " Keith Busch
2022-10-30  8:06         ` Christoph Hellwig
2022-10-30  8:06           ` [dm-devel] " Christoph Hellwig
2022-11-01  5:25   ` Chaitanya Kulkarni
2022-11-01  5:25     ` [dm-devel] " Chaitanya Kulkarni
2022-10-26 23:19 ` [PATCH v3 09/19] nvme: Add pr_ops read_keys support Mike Christie
2022-10-26 23:19   ` [dm-devel] " Mike Christie
2022-10-30  8:17   ` Christoph Hellwig
2022-10-30  8:17     ` [dm-devel] " Christoph Hellwig
2022-10-30 20:47     ` Mike Christie
2022-10-30 20:47       ` [dm-devel] " Mike Christie
2022-10-26 23:19 ` [PATCH v3 10/19] nvme: Move NVMe and Block PR types to an array Mike Christie
2022-10-26 23:19   ` [dm-devel] " Mike Christie
2022-10-27 15:18   ` Keith Busch
2022-10-27 15:18     ` [dm-devel] " Keith Busch
2022-10-27 17:06     ` Mike Christie
2022-10-27 17:06       ` [dm-devel] " Mike Christie
2022-10-27 17:13       ` michael.christie
2022-10-27 17:13         ` [dm-devel] " michael.christie
2022-10-27 17:16         ` Keith Busch
2022-10-27 17:16           ` [dm-devel] " Keith Busch
2022-10-28 16:05           ` Mike Christie
2022-10-28 16:05             ` [dm-devel] " Mike Christie
2022-10-26 23:19 ` [PATCH v3 11/19] nvme: Add pr_ops read_reservation support Mike Christie
2022-10-26 23:19   ` [dm-devel] " Mike Christie
2022-10-30  8:18   ` Christoph Hellwig
2022-10-30  8:18     ` [dm-devel] " Christoph Hellwig
2022-10-30 20:54     ` Mike Christie
2022-10-30 20:54       ` [dm-devel] " Mike Christie
2022-10-26 23:19 ` [PATCH v3 12/19] block,nvme,scsi,dm: Add blk_status to pr_ops callouts Mike Christie
2022-10-26 23:19   ` [dm-devel] [PATCH v3 12/19] block, nvme, scsi, dm: " Mike Christie
2022-10-30  8:20   ` [PATCH v3 12/19] block,nvme,scsi,dm: " Christoph Hellwig
2022-10-30  8:20     ` [dm-devel] [PATCH v3 12/19] block, nvme, scsi, dm: " Christoph Hellwig
2022-10-30 23:05     ` [PATCH v3 12/19] block,nvme,scsi,dm: " Mike Christie
2022-10-30 23:05       ` [dm-devel] [PATCH v3 12/19] block, nvme, scsi, dm: " Mike Christie
2022-11-01 10:15       ` [PATCH v3 12/19] block,nvme,scsi,dm: " Christoph Hellwig
2022-11-01 10:15         ` [dm-devel] [PATCH v3 12/19] block, nvme, scsi, dm: " Christoph Hellwig
2022-11-05 18:36         ` [PATCH v3 12/19] block,nvme,scsi,dm: " Mike Christie
2022-11-05 18:36           ` [dm-devel] [PATCH v3 12/19] block, nvme, scsi, dm: " Mike Christie
2022-11-07  9:16           ` [PATCH v3 12/19] block,nvme,scsi,dm: " Christoph Hellwig
2022-11-07  9:16             ` [dm-devel] [PATCH v3 12/19] block, nvme, scsi, dm: " Christoph Hellwig
2022-10-26 23:19 ` [PATCH v3 13/19] nvme: Have NVMe pr_ops return a blk_status_t Mike Christie
2022-10-26 23:19   ` [dm-devel] " Mike Christie
2022-10-26 23:19 ` [PATCH v3 14/19] scsi: Export scsi_result_to_blk_status Mike Christie
2022-10-26 23:19   ` [dm-devel] " Mike Christie
2022-10-26 23:19 ` [PATCH v3 15/19] scsi: Have sd pr_ops return a blk_status_t Mike Christie
2022-10-26 23:19   ` [dm-devel] " Mike Christie
2022-10-26 23:19 ` [PATCH v3 16/19] scsi: target: Rename sbc_ops to exec_cmd_ops Mike Christie
2022-10-26 23:19   ` [dm-devel] " Mike Christie
2022-10-26 23:19 ` [PATCH v3 17/19] scsi: target: Allow backends to hook into PR handling Mike Christie
2022-10-26 23:19   ` [dm-devel] " Mike Christie
2022-10-26 23:19 ` [PATCH v3 18/19] scsi: target: Don't support SCSI-2 RESERVE/RELEASE Mike Christie
2022-10-26 23:19   ` [dm-devel] " Mike Christie
2022-10-26 23:19 ` [PATCH v3 19/19] scsi: target: Add block PR support to iblock Mike Christie
2022-10-26 23:19   ` [dm-devel] " Mike Christie

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.