|
|
Log in / Subscribe / Register

Enable testing small DMA segment sizes

From:  Bart Van Assche <bvanassche-AT-acm.org>
To:  Jens Axboe <axboe-AT-kernel.dk>
Subject:  [PATCH v3 0/6] Enable testing small DMA segment sizes
Date:  Fri, 27 Mar 2026 14:13:40 -0700
Message-ID:  <20260327211349.2239633-1-bvanassche@acm.org>
Cc:  linux-block-AT-vger.kernel.org, Christoph Hellwig <hch-AT-lst.de>, Damien Le Moal <dlemoal-AT-kernel.org>, Ming Lei <ming.lei-AT-redhat.com>, Bart Van Assche <bvanassche-AT-acm.org>
Archive-link:  Article

Hi Jens,

About one year ago support was merged for DMA segment sizes smaller than
the virtual memory page size. No blktests exist yet for the new codepaths
related to small segment size support. This patch series makes it possible
to test these code paths on a system (e.g. a VM) with 4 KiB pages.

The corresponding blktest patch is available here:
https://lore.kernel.org/linux-block/20260323200751.123858...

Please consider this patch series for the next merge window.

Thanks,

Bart.

Changes compared to v2:
 - Wrapped an overly long line and fixed the "Fixes:" tag in patch 2.
 - Restored the seg_boundary_mask check in patch 3.
 - Moved the BLK_MIN_SEGMENT_SIZE constant to a public header file in patch 4.
 - Check the max_segment_size value before passing it to the block layer in
   patch 5.
 - Added a sixth patch for scsi_debug to this series. Because the scsi_debug
   patch uses the BLK_MIN_SEGMENT_SIZE constant, it depends on patch 3.

Changes compared to v1:
 - Addressed Damien's comment and made the null_blk kernel module parameter more
   clear.
 - Added three patches to this series: one patch that fixes a source code
   comment and two patches that reduce the number of users of the
   BLK_MIN_SEGMENT_SIZE constant.

Bart Van Assche (6):
  block: Fix a source code comment
  block: Fix the max_user_sectors lower bound
  block: Fix the DMA segment boundary mask check
  block: Reduce the minimum value for the maximum DMA segment size
  null_blk: Support configuring the maximum DMA segment size
  scsi_debug: Support configuring the maximum segment size

 block/blk-settings.c              | 15 ++++++-----
 block/blk.h                       |  1 -
 drivers/block/null_blk/main.c     | 43 +++++++++++++++++++++++++++++++
 drivers/block/null_blk/null_blk.h |  1 +
 drivers/scsi/scsi_debug.c         | 26 ++++++++++++++++++-
 include/linux/blkdev.h            |  1 +
 6 files changed, 78 insertions(+), 9 deletions(-)




Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds