[v1 0/2] enable sector size > PAGE_SIZE for scsi

From: sw . prabhu6
Date: Tue Dec 09 2025 - 20:42:43 EST


From: Swarna Prabhu <sw.prabhu6@xxxxxxxxx>

Hi All,

This is non RFC v1 series sent based on the feedback received on RFC
v2 [1] and RFC v1 [2]. This patchset enables sector sizes > PAGE_SIZE for
sd driver and scsi_debug driver since block layer can support block
size > PAGE_SIZE. There was one issue with write_same16 and write_same10
command, which is fixed as a part of the series.

Motivation:
- While enabling LBS on ZoneFS, zonefs-tools tests were being skipped
for conventional zones when tested on nvme block device emulated using
QEMU. Hence there was a need to enable scsi with higher sector sizes
to run zonefs tests for conventional zones as well.

Changes since RFC v2:
- Replaced open coded check for enabling sdebug_sector_size > PAGE_SIZE
with blk_validate_block_size() in scsi_debug.
- Replaced open coded check for enabling sector_size > PAGE_SIZE
with blk_validate_block_size() in sd driver.
- Replaced 'struct request *rq' argument in 'sd_set_special_bvec()' to
'struct scsi_cmnd *cmnd' and used that to get SCSI device pointer
'struct scsi_device *sdp'.
- Slightly modified the commit title for scsi sd driver fix patch.
- Added "Cc: stable@xxxxxxxxxxxxxxx" tag to scsi sd driver fix patch.

Changes since RFC v1:
- Re organized the patch series into one patch for scsi_debug driver
and one patch for sd driver.
- Updated commit title and description to accommodate the above
re organization on commit titled - scsi: sd: fix write_same(16/10)
to enable sector size > PAGE_SIZE.
- Updated commit title and description to reflect the re organization
on commit titled - scsi: scsi_debug: enable sdebug_sector_size
> PAGE_SIZE.

Thanks to Bart for feedback on the RFC v1 and v2 series.

Testing:
-Test suite: xfs and generic from fstest + QEMU emulated block
device(scsi and nvme)
- fstest Config for patched xfs 16k block size [xfs_reflink_16k_scsi]
TEST_DEV=/dev/sda
SCRATCH_DEV_POOL="/dev/sdb"
MKFS_OPTIONS='-f -m reflink=1,rmapbt=1, -i sparse=1, -b size=16384,
-s size=16384'
- Generic test results
Baseline: 6.18.0-rc7 kernel + nvme 16k logical block size
Patched: 6.18 kernel + scsi 16k logical block size
5 failures seen on generic tests and the same seen on baseline
No regressions introduced by the patch.
- XFS tests results
Baseline: 6.18.0-rc7 kernel + nvme16k logical block size
Patched: 6.18 kernel + sci 16k logical block size
30 failures seen on patched and baseline
No regressions introduced by the patch
- Blktests results
scis and block layer tests with 16k and 32k logical block size.
config used:
TEST_DEVS=(/dev/sda)
EXCLUDE=(block/010 block/011) # these didn't run on baseline(nvme 16k)
All tests passed.

Link to RFC v2: https://lore.kernel.org/all/20251203230546.1275683-2-sw.prabhu6@xxxxxxxxx/ [1]
Link to RFC v1: https://lore.kernel.org/all/20251202021522.188419-1-sw.prabhu6@xxxxxxxxx/ [2]

Swarna Prabhu (2):
scsi: sd: fix write_same(16/10) to enable sector size > PAGE_SIZE
scsi: scsi_debug: enable sdebug_sector_size > PAGE_SIZE

drivers/scsi/scsi_debug.c | 8 +-------
drivers/scsi/sd.c | 27 +++++++++++++++++----------
2 files changed, 18 insertions(+), 17 deletions(-)

--
2.51.0