[PATCH 3/6] blk-merge: split bio by max_segment_size, not PAGE_SIZE

John Garry john.g.garry at oracle.com
Wed May 15 08:21:54 PDT 2024


On 15/05/2024 06:29, Hannes Reinecke wrote:
>>
>> I suspect that you would need to also change the PAGE_SIZE check in 
>> __blk_bios_map_sg() also. However, I am not confident that the change 
>> below is ok to begin with...
>>
>> BTW, scsi_debug does use an insane max_segment_size of -1
>>
> Can you try with this patch?

It's scsi_debug, anyone can try it.

As for Luis' original issue, I did not see a proper explanation why the 
crash occurred. The splitting code should consider max segment size 
already, AFAICS. We seem to be slicing off less than LBS, which means 
bytes = 0 after the rounddown, which crashes. why?

I think that all request_queue limits should really be double-checked 
for this LBS on NVMe. The virtual_boundary_mask is still 4K, which 
should be ok.





More information about the Linux-nvme mailing list