On Thu, Mar 12, 2020 at 09:21:11PM +0800, Feng Li wrote: > Hi Ming, > Thanks. > I have tested kernel '5.4.0-rc6+', which includes 07173c3ec276. > But the virtio is still be filled with single page by page. Hello, Could you share your test script? BTW, it depends if fs layer passes contiguous pages to block layer. You can dump each bvec of the bio, and see if they are contiguous physically. Thanks, Ming > > Ming Lei <ming.lei@xxxxxxxxxx> 于2020年3月12日周四 下午8:34写道: > > > > On Thu, Mar 12, 2020 at 07:13:28PM +0800, Feng Li wrote: > > > Hi experts, > > > > > > May I ask a question about block layer? > > > When running fio in guest os, I find a 256k IO is split into the page > > > by page in bio, saved in bvecs. > > > And virtio-blk just put the bio_vec one by one in the available > > > descriptor table. > > > > > > So if my backend device does not support iovector > > > opertion(preadv/pwritev), then IO is issued to a low layer page by > > > page. > > > My question is: why doesn't the bio save multi-pages in one bio_vec? > > > > We start multipage bvec since v5.1, especially since 07173c3ec276 > > ("block: enable multipage bvecs"). > > > > Thanks, > > Ming > > > -- Ming