[PATCH 00/19] sg: v4 interface, rq sharing + multiple rqs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This patchset extends the SCSI generic (sg) driver found in lk 5.2 .
The sg driver has a version number which is visible via an ioctl()
and is bumped from 3.5.36 to 4.0.12 by this patchset.
The additions and changes are described in some detail on this
long webpage:
    http://sg.danny.cz/sg/sg_v40.html
and references are made in various patches to relevant sections in
that document.

This patchset restores some functionality that was in the v2 driver
version and has been broken by some external patch in the interim
period (20 years). That functionality (NO_DXFER) has found new
uses in request sharing. Also functionality that has been dropped
from the bsg driver over the last year is added to this driver in
this patchset (e.g. async/non-blocking v4 interface usage, and
multiple request support).

This patchset is big and can be regarded as a driver rewrite. The
number of lines increases from around 3000 to over 6000. The size
of the module doubles although that can be reduced by turning off
SCSI logging.

TODO: during development, this driver had its own version of
      tracing which has been removed from the final patchset.
      Curiously that tracing code was never used in anger for
      its intended purpose, but the revamped SG_LOG macro was
      used a lot.
      The intention is to add tracing via the 'standard' kernel
      code. The addition is somewhat invasive, both to the sg
      driver (e.g. some otherwise private structures need to
      be made public) and to the tracing subsystem.

Testing:
The sg3_utils package has several extensions in sg3_utils-1.45
beta (revision 824) to support and test the version 4 sg
driver presented in this patchset.
The new and revised testing utilities are outlined on the
same webpage as above in the second half of the section
titled: "15 Downloads and testing".

This patchset is against Martin Petersen's 5.3/scsi-queue
branch. It will also apply to lk 5.1 and probably lk 5.0 .

Douglas Gilbert (19):
  sg: move functions around
  sg: remove typedefs, type+formatting cleanup
  sg: sg_log and is_enabled
  sg: move header to uapi section
  sg: replace rq array with lists
  sg: sense buffer cleanup
  sg: add sg v4 interface support
  sg: add 8 byte SCSI LUN to sg_scsi_id
  sg: expand sg_comm_wr_t
  sg: add sg_ioabort ioctl
  sg: add sg_iosubmit_v3 and sg_ioreceive_v3 ioctls
  sg: add sg_set_get_extended ioctl
  sg: sgat_elem_sz and sum_fd_dlens
  sg: tag and more_async
  sg: add fd sharing , change, unshare
  sg: add shared requests
  sg: add multiple request support
  sg: add slave wait capability
  sg: table of error numbers with meanings

 drivers/scsi/sg.c      | 6790 ++++++++++++++++++++++++++++++----------
 include/scsi/sg.h      |  268 +-
 include/uapi/scsi/sg.h |  475 +++
 3 files changed, 5682 insertions(+), 1851 deletions(-)
 create mode 100644 include/uapi/scsi/sg.h

-- 
2.17.1




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux