Hi,
在 2025/04/29 2:07, Keith Busch 写道:
On Mon, Apr 28, 2025 at 07:09:50AM -0700, Christoph Hellwig wrote:
A lot of complexity in brd stems from the fact that it tries to handle
I/O spanning two backing pages. Instead limit the size of a single
bvec iteration so that it never crosses a page boundary and remove all
the now unneeded code.
Doesn't bio_for_each_segment() already limit bvecs on page boundaries?
You'd need to use bio_for_each_bvec() to get multi-page bvecs.
I think it only limit bvecs on page boundaries on the issue side, not
disk side.
For example, if user issue an IO (2k + 4k), will bio_for_each_segment()
split this IO into (2k + 2k) and (4k + 2k), I do not test yet, but I
think the answer is no.
Thanks,
Kuai
.