This patchset doesn't actually implement the sg v4 interface
but does preparatory work to reach that goal in a later
pathset. The goal of this patchset is to collect more
reviews.

A major sticking point in the last patchset seems to be the
size and complexity of this item:
    [PATCH v4 11/22] sg: replace rq array with lists
Patches 13/23 through 22/23 in this series break down some
of that complexity. Rather than implement the rest of
"[PATCH v4 11/22] sg: replace rq array with lists" now in
this patchset, the author has decided to experiment with
replacing the doubly linked lists that hold together the
sg_fd and sg_request objects with XArrays. One earlier
reviewer commented that this may be a worthwhile direction
to pursue. So while that is happening, this abridged
patchset, with more but smaller patches, is being presented.

The full patchset, currently containing 34 patches on top
of the 23 presented here, is described here:
     http://sg.danny.cz/sg/sg_v40.html
The full 57 part patchset can be downloaded soon from there.


Changes since v4 (sent to linux-scsi list on 20190829)
  - remove much of the logic in the previous patchset
    series from and including:
        [PATCH v4 11/22] sg: replace rq array with lists
    to
        [PATCH v4 22/22] sg: bump version to 4.0.03
  - bump the driver version number from 3.5.36 to 3.9.01
    [20190606] reflecting that the v4 interface has not
    been implemented (in this patchset)
  - patches 13/23 through to 22/23 reduce the complexity
    of "[PATCH v4 11/22] sg: replace rq array with lists"
    measured in KiloBytes from about 130 KB to 80 KB.
  - various changes suggested by reviewers of the v4
    patchset have been implemented
  - change all %p descriptors (mainly in SG_LOG() macros)
    to %pK so that the debug output remains useful in
    recent kernels. Evidently sys admins can selectively
    turn on pointer obfuscation on %pK as required on
    secure systems.

Changes since v3 (sent to linux-scsi list on 20190807):
  - move __must_hold attributes into separate patch
  - move procfs and debugfs file scope definitions toward
    the end of sg.c to avoid forward declarations
  - move module_param* and MODULE_* macros to end of sg.c
  - expand debugfs support with snapshot_devs which allows
    filtering of snapshot output by sg device(s)
  - add a WARN_ONCE when write(2) is used with the sg v3
    interface. Suggest using SG_IOSUBMIT_V3 instead.
  - address more of the review comments from Hannes Reinecke
    and Christoph Hellwig
  - add various reviewed-by tags where appropriate

Changes since v2 (sent to linux-scsi list on 20190727):
  - address issues "Reported-by: kbuild test robot <l...@intel.com>".
    The main one was to change the bsg header included to:
    include/uapi/linux/bsg.h rather than include/linux/bsg.h
  - address some of the review comments from Hannes Reinecke;
    email responses have been sent for review comments that
    did not result in code changes

Changes since v1 (sent to linux-scsi list on 20190616):
  - change ktime_get_boot_ns() to ktime_get_boottime_ns() to reflect
    kernel API change first seen in lk 5.3.0-rc1


Douglas Gilbert (23):
  sg: move functions around
  sg: remove typedefs, type+formatting cleanup
  sg: sg_log and is_enabled
  sg: rework sg_poll(), minor changes
  sg: bitops in sg_device
  sg: make open count an atomic
  sg: move header to uapi section
  sg: speed sg_poll and sg_get_num_waiting
  sg: sg_allow_if_err_recovery and renames
  sg: remove access_ok functions
  sg: improve naming
  sg: change rwlock to spinlock
  sg: ioctl handling
  sg: split sg_read
  sg: sg_common_write add structure for arguments
  sg: rework sg_vma_fault
  sg: rework sg_mmap
  sg: replace sg_allow_access
  sg: rework scatter gather handling
  sg: introduce request state machine
  sg: sg_find_srp_by_id
  sg: sg_fill_request_element
  sg: printk change %p to %pK

 drivers/scsi/sg.c      | 2843 +++++++++++++++++++++++-----------------
 include/scsi/sg.h      |  268 +---
 include/uapi/scsi/sg.h |  329 +++++
 3 files changed, 1995 insertions(+), 1445 deletions(-)
 create mode 100644 include/uapi/scsi/sg.h

-- 
2.23.0

Reply via email to