[dm-devel] [PATCH] dm: rename max_io_len to io_boundary

Mikulas Patocka mpatocka at redhat.com
Fri Mar 22 13:21:02 UTC 2019



On Thu, 21 Mar 2019, John Dorminy wrote:

> I'm thankful for this change making it explicit that this parameter is
> not a max IO length but something else. I've been confused by the name
> more than once when trying to figure out why IOs weren't coming in as
> large as I expected. I wish there were a way for targets to say "I can
> accept IO of up to $len" without saying "I want my IO split if it
> crosses a multiple of $len, no matter what size it is", and I'm
> thankful for this step making it easier if I ever act on that wish...

If you want to limit the size of incoming bios, you can use 
dm_accept_partial_bio.

dm_accept_partial_bio accepts a bio and a length. It will reduce the bio 
to the specified length and send the rest of data in another bio.

See this piece of code in the function crypt_map:
        /*
         * Check if bio is too large, split as needed.
         */
        if (unlikely(bio->bi_iter.bi_size > (BIO_MAX_PAGES << PAGE_SHIFT)) &&
            (bio_data_dir(bio) == WRITE || cc->on_disk_tag_size))
                dm_accept_partial_bio(bio, ((BIO_MAX_PAGES << PAGE_SHIFT) >> SECTOR_SHIFT));


Mikulas




More information about the dm-devel mailing list