Thread (8 messages) 8 messages, 4 authors, 2025-02-24

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 -22  
I'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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help