linux-block.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v6 0/8] Support limits below the page size
@ 2023-06-12 20:33 Bart Van Assche
  2023-06-12 20:33 ` [PATCH v6 1/8] block: Use pr_info() instead of printk(KERN_INFO ...) Bart Van Assche
                   ` (9 more replies)
  0 siblings, 10 replies; 24+ messages in thread
From: Bart Van Assche @ 2023-06-12 20:33 UTC (permalink / raw)
  To: Jens Axboe
  Cc: linux-block, Christoph Hellwig, Luis Chamberlain, Sandeep Dhavale,
	Juan Yescas, Bart Van Assche

Hi Jens,

We want to improve Android performance by increasing the page size from 4 KiB
to 16 KiB. However, some of the storage controllers we care about do not support
DMA segments larger than 4 KiB. Hence the need support for DMA segments that are
smaller than the size of one virtual memory page. This patch series implements
that support. Please consider this patch series for the next merge window.

Thanks,

Bart.

Changes compared to v5:
- Rebased the entire series on top of the block layer for-next branch.
- Dropped patch "block: Add support for small segments in blk_rq_map_user_iov()"
  because that patch prepares for a patch that has already been dropped.
- Modified a source code comment in patch 3/9 such that it fits in 80 columns.

Changes compared to v4:
- Fixed the debugfs patch such that the behavior for creating the block
  debugfs directory is retained.
- Made the description of patch "Support configuring limits below the page
  size" more detailed. Split that patch into two patches.
- Added patch "Use pr_info() instead of printk(KERN_INFO ...)".

Changes compared to v3:
- Removed CONFIG_BLK_SUB_PAGE_SEGMENTS and QUEUE_FLAG_SUB_PAGE_SEGMENTS.
  Replaced these by a new member in struct queue_limits and a static branch.
- The static branch that controls whether or not sub-page limits are enabled
  is set by the block layer core instead of by block drivers.
- Dropped the patches that are no longer needed (SCSI core and UFS Exynos
  driver).

Changes compared to v2:
- For SCSI drivers, only set flag QUEUE_FLAG_SUB_PAGE_SEGMENTS if necessary.
- In the scsi_debug patch, sorted kernel module parameters alphabetically.
  Only set flag QUEUE_FLAG_SUB_PAGE_SEGMENTS if necessary.
- Added a patch for the UFS Exynos driver that enables
  CONFIG_BLK_SUB_PAGE_SEGMENTS if the page size exceeds 4 KiB.

Changes compared to v1:
- Added a CONFIG variable that controls whether or not small segment support
  is enabled.
- Improved patch descriptions.

Bart Van Assche (8):
  block: Use pr_info() instead of printk(KERN_INFO ...)
  block: Prepare for supporting sub-page limits
  block: Support configuring limits below the page size
  block: Make sub_page_limit_queues available in debugfs
  block: Support submitting passthrough requests with small segments
  block: Add support for filesystem requests and small segments
  scsi_debug: Support configuring the maximum segment size
  null_blk: Support configuring the maximum segment size

 block/blk-core.c                  |  4 ++
 block/blk-map.c                   |  2 +-
 block/blk-merge.c                 |  8 ++-
 block/blk-mq-debugfs.c            |  9 +++
 block/blk-mq-debugfs.h            |  6 ++
 block/blk-mq.c                    |  2 +
 block/blk-settings.c              | 91 +++++++++++++++++++++++++++----
 block/blk.h                       | 39 +++++++++++--
 drivers/block/null_blk/main.c     | 19 ++++++-
 drivers/block/null_blk/null_blk.h |  1 +
 drivers/scsi/scsi_debug.c         |  4 ++
 include/linux/blkdev.h            |  2 +
 12 files changed, 163 insertions(+), 24 deletions(-)


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

end of thread, other threads:[~2023-08-04 23:11 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-12 20:33 [PATCH v6 0/8] Support limits below the page size Bart Van Assche
2023-06-12 20:33 ` [PATCH v6 1/8] block: Use pr_info() instead of printk(KERN_INFO ...) Bart Van Assche
2023-06-12 20:33 ` [PATCH v6 2/8] block: Prepare for supporting sub-page limits Bart Van Assche
2023-06-12 20:33 ` [PATCH v6 3/8] block: Support configuring limits below the page size Bart Van Assche
2023-06-12 20:33 ` [PATCH v6 4/8] block: Make sub_page_limit_queues available in debugfs Bart Van Assche
2023-06-12 20:33 ` [PATCH v6 5/8] block: Support submitting passthrough requests with small segments Bart Van Assche
2023-06-12 20:33 ` [PATCH v6 6/8] block: Add support for filesystem requests and " Bart Van Assche
2023-06-12 20:33 ` [PATCH v6 7/8] scsi_debug: Support configuring the maximum segment size Bart Van Assche
2023-06-12 20:33 ` [PATCH v6 8/8] null_blk: " Bart Van Assche
2023-06-12 22:17   ` Damien Le Moal
2023-06-13  0:44     ` Bart Van Assche
2023-06-13  6:47       ` Damien Le Moal
2023-06-13  6:52       ` Christoph Hellwig
2023-06-15  2:01 ` [PATCH v6 0/8] Support limits below the page size Bart Van Assche
2023-06-15  2:22 ` Jens Axboe
2023-06-15  4:15   ` Christoph Hellwig
2023-06-15 13:55     ` Bart Van Assche
2023-06-16  7:02       ` Christoph Hellwig
2023-06-16 20:26         ` Bart Van Assche
2023-06-16 21:48           ` Jens Axboe
2023-06-16 22:28             ` Bart Van Assche
2023-08-04 23:11         ` Juan Yescas
2023-06-15 14:16     ` Jens Axboe
2023-06-15 14:16   ` Bart Van Assche

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).