Re: [PATCH V4] block: make segment size limit workable for > 4K PAGE_SIZE
From: Ming Lei <hidden>
Date: 2025-02-24 01:48:22
On Sun, Feb 23, 2025 at 04:55:56PM -0800, Luis Chamberlain wrote:
On Fri, Feb 21, 2025 at 12:12:44PM -0800, Luis Chamberlain wrote:quoted
WARNING: CPU: 2 PID: 397 at block/blk-settings.c:339 blk_validate_limits+0x364/0x3c0 Modules linked in: mmc_block(+) rpmb_core crct10dif_ce ghash_ce sha2_ce dw_mmc_bluefield sha256_arm64 dw_mmc_pltfm sha1_ce dw_mmc mmc_core nfit i2c_mlxbf sbsa_gwdt gpio_mlxbf2 f_tmfifo dm_mirror dm_region_hash dm_log dm_mod CPU: 2 UID: 0 PID: 397 Comm: (udev-worker) Not tainted 6.12.0-39.el10.aarch64+64k #1 Hardware name: https://www.mellanox.com BlueField SoC/BlueField SoC, BIOS BlueField:3.5.1-1-g4078432 Jan 28 2021 ng pstate: 80000005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : blk_validate_limits+0x364/0x3c0 p.service lr : blk_set_default_limits+0x20/0x40 Setup... sp : ffff80008688f2d0 x29: ffff80008688f2d0 x28: ffff000082acb600 x27: ffff80007bef02a8 x26: ffff80007bef0000 x25: ffff80008688f58e x24: ffff80008688f450 x23: ffff80008301b000 x22: 00000000ffffffff x21: ffff800082c39950 x20: 0000000000000000 x19: ffff0000930169e0 x18: 0000000000000014 x17: 00000000767472b1 x16: 0000000005a697e6 x15: 0000000002f42ca4 x11: 00000000de7f0111 x10: 000000005285b53a x9 : ffff800080752908 x8 : 0000000000000001 x7 : 0000000000000000 x6 : 0000000000000200 x5 : 0000000000000000 x4 : 000000000000ffff x3 : 0000000000004000 x2 : 0000000000000200 x1 : 0000000000001000 x0 : ffff80008688f450 Call trace: blk_validate_limits+0x364/0x3c0 blk_set_default_limits+0x20/0x40 blk_alloc_queue+0x84/0x240 blk_mq_alloc_queue+0x80/0x118 __blk_mq_alloc_disk+0x28/0x198 mmc_alloc_disk+0xe0/0x260 [mmc_block] ... mmcblk mmc0:0001: probe with driver mmcblk failed with error -22I'm left still a bit perplexed with one question still, this is a known issue now with using large page systems with smaller DMA max segment sized devices either eMMC and Exynos UFS, does your patch just fix the probe issue on eMMC?
Yes.
What about functionality?
It works just fine, as you saw Paul's tested-by, or do you think there are other areas not covered by this patch.
What aspsect of Bart's series is now not needed?
You can see this single patch as Bart's next version because of block layer's evolution.
Bart's series were NACK'd as the changes were deemed too intrusive to maintain on the block layer, so I am curious what has changed here to enable eMMC.
Basically, the following patches help much on the progress:
commit 6aeb4f836480 ("block: remove bio_add_pc_page")
commit 02ee5d69e3ba ("block: remove blk_rq_bio_prep")
commit b7175e24d6ac ("block: add a dma mapping iterator")
They changes passthrough code path to use split, so Bart's original
change in passthrough part isn't necessary.
Will 16k page size systems with Exynos UFS work now?
It is supposed to be true. Thanks, Ming