> On 6/2/21 5:10 AM, Changheun Lee wrote: > > Set max_bio_bytes same with queue max sectors. It will lead to fast bio > > submit when bio size is over than queue max sectors. And it might be helpful > > to align submit bio size in some case. > > > > Signed-off-by: Changheun Lee <nanich.lee@xxxxxxxxxxx> > > --- > > drivers/scsi/scsi_lib.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c > > index 532304d42f00..f6269268b0e0 100644 > > --- a/drivers/scsi/scsi_lib.c > > +++ b/drivers/scsi/scsi_lib.c > > @@ -1837,6 +1837,8 @@ void __scsi_init_queue(struct Scsi_Host *shost, struct request_queue *q) > > blk_queue_virt_boundary(q, shost->virt_boundary_mask); > > dma_set_max_seg_size(dev, queue_max_segment_size(q)); > > > > + blk_queue_max_bio_bytes(q, queue_max_sectors(q)); > > + > > /* > > * Set a reasonable default alignment: The larger of 32-byte (dword), > > * which is a common minimum for HBAs, and the minimum DMA alignment, > > Has this patch been tested with dm-crypt on top of a SCSI device? I'm > concerned that this patch will trigger data corruption with dm-crypt on > top because the above change will make the following dm-crypt code fail > for a sufficiently large bio: > > bio_add_page(clone, page, len, 0); > > When testing dm-crypt on top of this patch series, please change the > above dm-crypt code into the following before running any tests: > > WARN_ON(bio_add_page(clone, page, len, 0) < len); > > Thanks, > > Bart. I think it will be OK if nr_iovecs is not over BIO_MAX_VECS in crypt_alloc_buffer(). Because page is added to bio in PAGE_SIZE as maximum, and the minimum of max_bio_bytes is "BIO_MAX_VECS * PAGE_SIZE". for (i = 0; i < nr_iovecs; i++) { page = mempool_alloc(&cc->page_pool, gfp_mask); if (!page) { crypt_free_buffer_pages(cc, clone); bio_put(clone); gfp_mask |= __GFP_DIRECT_RECLAIM; goto retry; } len = (remaining_size > PAGE_SIZE) ? PAGE_SIZE : remaining_size; bio_add_page(clone, page, len, 0); remaining_size -= len; } Anyway as your advise, I'm checking it in my test environment. There are no problem by now yet. I'm testing with 1MB max_bio_bytes of SCSI, and UINT_MAX max_bio_bytes of dm-crypt. Thank you, Changheun Lee.