public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/7] scsi: scsi_debug: Add more tape support
@ 2025-02-13  9:26 Kai Mäkisara
  2025-02-13  9:26 ` [PATCH v2 1/7] scsi: scsi_debug: First fixes for tapes Kai Mäkisara
                   ` (10 more replies)
  0 siblings, 11 replies; 21+ messages in thread
From: Kai Mäkisara @ 2025-02-13  9:26 UTC (permalink / raw)
  To: linux-scsi, dgilbert
  Cc: martin.petersen, James.Bottomley, jmeneghi, Kai Mäkisara

Currently, the scsi_debug driver can create tape devices and the st
driver attaches to those. Nothing much can be done with the tape devices
because scsi_debug does not have support for the tape-specific commands
and features. These patches add some more tape support to the scsi_debug
driver. The end result is simulated drives with a tape having one or two
partitions (one partition is created initially).

The tape is implemented as fixed number (10 000) of 8-byte units.
The first four bytes of a unit contain the type of the unit (data
block, filemark or end-of-data mark). If the units is a data block,
the first four bytes also contain the block length and the remaining
four bytes the first bytes of written data. This allows the user
to use tags to see that the read block is what it was supposed to be.

The following SCSI operations are added or modified:
FORMAT MEDIUM
- added
LOCATE
- added
MODE SELECT
- modified to allow use without page(s) (just header and block descriptor)
  - store density and block size
- partition page added
MODE SENSE
- modified to allow use without page(s) (just header and block descriptor)
  - set density and block size
- partition page added
READ BLOCK LIMITS
- added
READ POSITION
- added
READ
- added tape support for READ (6)
REWIND
- modified to set the tape position
SPACE
- added
START STOP (LOAD)
- modified to return New Medium Unit Attention if tape loaded (not
  according to the standard, but enables testing this UA)
WRITE
- added tape support for WRITE (6)
WRITE FILEMARKS
- added

Changes RFC -> v1:
- rebased to v6.14-rc1
- virtual tape initialization is rewritten and the tape is made shorter
  (10 000 units)
- only one partition is created initially
- tape block allocation is moved to sdev_configure()
- tape blocks are freed in sdev_destroy()
- block size must be multiple of four (SSC standard)
- granularity set to four in READ BLOCK LIMITS
- long LBA not allowed for tapes in MODE SELECT/SENSE
- READ POSITION checks allocation length
- new patch 7 adds support for re-partitioning the tape

Changes v1 -> v2:
- Fixes for bugs reported by the Kernel Test Robot:
  2/7: changed 'len +=' to 'len =' in resp_mode_sense()
  3/7: changed 'for (;' to 'for (i = 0;' in partition_tape()
  4/7: initialized i to zero in resp_space()

Kai Mäkisara (7):
  scsi: scsi_debug: First fixes for tapes
  scsi: scsi_debug: Add READ BLOCK LIMITS and modify LOAD for tapes
  scsi: scsi_debug: Add write support with block lengths  and 4 bytes of
    data
  scsi: scsi_debug: Add read support and update locate for tapes
  scsi: scsi_debug: Add compression mode page for tapes
  scsi: scsi_debug: Reset tape setting at device reset
  scsi: scsi_debug: Add support for partitioning the tape

 drivers/scsi/scsi_debug.c | 775 +++++++++++++++++++++++++++++++++++++-
 1 file changed, 761 insertions(+), 14 deletions(-)

-- 
2.43.0


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

end of thread, other threads:[~2025-03-04  3:19 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-13  9:26 [PATCH v2 0/7] scsi: scsi_debug: Add more tape support Kai Mäkisara
2025-02-13  9:26 ` [PATCH v2 1/7] scsi: scsi_debug: First fixes for tapes Kai Mäkisara
2025-02-19 16:03   ` John Meneghini
2025-02-13  9:26 ` [PATCH v2 2/7] scsi: scsi_debug: Add READ BLOCK LIMITS and modify LOAD " Kai Mäkisara
2025-02-19 21:16   ` John Meneghini
2025-02-13  9:26 ` [PATCH v2 3/7] scsi: scsi_debug: Add write support with block lengths and 4 bytes of data Kai Mäkisara
2025-02-19 21:45   ` John Meneghini
2025-02-13  9:26 ` [PATCH v2 4/7] scsi: scsi_debug: Add read support and update locate for tapes Kai Mäkisara
2025-02-19 21:56   ` John Meneghini
2025-02-13  9:26 ` [PATCH v2 5/7] scsi: scsi_debug: Add compression mode page " Kai Mäkisara
2025-02-19 21:58   ` John Meneghini
2025-02-13  9:26 ` [PATCH v2 6/7] scsi: scsi_debug: Reset tape setting at device reset Kai Mäkisara
2025-02-19 21:58   ` John Meneghini
2025-02-13  9:26 ` [PATCH v2 7/7] scsi: scsi_debug: Add support for partitioning the tape Kai Mäkisara
2025-02-19 22:17   ` John Meneghini
2025-02-13 16:12 ` [PATCH v2 0/7] scsi: scsi_debug: Add more tape support John Meneghini
2025-02-19 22:32 ` John Meneghini
2025-02-24  3:19 ` Martin K. Petersen
2025-02-24 15:13   ` "Kai Mäkisara (Kolumbus)"
2025-02-25  1:44     ` Martin K. Petersen
2025-03-04  3:19 ` Martin K. Petersen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox