Re: [PATCH v5 0/9] Support limits below the page size

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, May 22, 2023 at 3:25 PM Bart Van Assche <bvanassche@xxxxxxx> wrote:
>
> 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(-)
>
>
We have tested this series on Pixel 6 by applying to android common
kernel at [0] successfully with 16K page size.

Feel free to add
Tested-by: Sandeep Dhavale <dhavale@xxxxxxxxxx>

-Sandeep.

[0] https://android.googlesource.com/kernel/common/+/refs/heads/android14-6.1




[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux