From: Bart Van Assche <bvanassche@acm.org>
To: Jens Axboe <axboe@kernel.dk>
Cc: linux-block@vger.kernel.org, Christoph Hellwig <hch@lst.de>,
jyescas@google.com, mcgrof@kernel.org,
Bart Van Assche <bvanassche@acm.org>
Subject: [PATCH v5 0/9] Support limits below the page size
Date: Mon, 22 May 2023 15:25:32 -0700 [thread overview]
Message-ID: <20230522222554.525229-1-bvanassche@acm.org> (raw)
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 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 (9):
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
block: Add support for small segments in blk_rq_map_user_iov()
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 | 29 +++++++---
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 | 88 ++++++++++++++++++++++++++-----
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, 182 insertions(+), 29 deletions(-)
next reply other threads:[~2023-05-22 22:26 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-22 22:25 Bart Van Assche [this message]
2023-05-22 22:25 ` [PATCH v5 1/9] block: Use pr_info() instead of printk(KERN_INFO ...) Bart Van Assche
2023-05-22 23:10 ` Luis Chamberlain
2023-05-27 16:09 ` Bart Van Assche
2023-05-22 22:25 ` [PATCH v5 2/9] block: Prepare for supporting sub-page limits Bart Van Assche
2023-05-22 23:26 ` Luis Chamberlain
2023-05-22 22:25 ` [PATCH v5 3/9] block: Support configuring limits below the page size Bart Van Assche
2023-05-27 3:16 ` Luis Chamberlain
2023-05-27 16:20 ` Bart Van Assche
2023-05-28 20:33 ` Luis Chamberlain
2023-05-28 22:32 ` Bart Van Assche
2023-05-31 5:40 ` Luis Chamberlain
2023-05-22 22:25 ` [PATCH v5 4/9] block: Make sub_page_limit_queues available in debugfs Bart Van Assche
2023-05-27 3:17 ` Luis Chamberlain
2023-05-22 22:25 ` [PATCH v5 5/9] block: Support submitting passthrough requests with small segments Bart Van Assche
2023-05-22 22:25 ` [PATCH v5 6/9] block: Add support for filesystem requests and " Bart Van Assche
2023-05-22 22:25 ` [PATCH v5 7/9] block: Add support for small segments in blk_rq_map_user_iov() Bart Van Assche
2023-05-22 22:25 ` [PATCH v5 8/9] scsi_debug: Support configuring the maximum segment size Bart Van Assche
2023-05-24 20:50 ` Douglas Gilbert
2023-05-22 22:25 ` [PATCH v5 9/9] null_blk: " Bart Van Assche
2023-06-09 17:14 ` [PATCH v5 0/9] Support limits below the page size Sandeep Dhavale
2023-06-12 18:15 ` Bart Van Assche
2023-06-12 18:34 ` Sandeep Dhavale
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230522222554.525229-1-bvanassche@acm.org \
--to=bvanassche@acm.org \
--cc=axboe@kernel.dk \
--cc=hch@lst.de \
--cc=jyescas@google.com \
--cc=linux-block@vger.kernel.org \
--cc=mcgrof@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.