On Tue, 30 Apr 2024 15:16:24 -0600, Uday Shankar wrote: > ublk_drv currently creates block devices with the default max_segments > and max_segment_size limits of BLK_MAX_SEGMENTS (128) and > BLK_MAX_SEGMENT_SIZE (65536) respectively. These defaults can > artificially constrain the I/O size seen by the ublk server - for > example, suppose that the ublk server has configured itself to accept > I/Os up to 1M and the application is also issuing 1M sized I/Os. If the > I/O buffer used by the application is backed by 4K pages, the buffer > could consist of up to 1M / 4K = 256 physically discontiguous segments > (even if the buffer is virtually contiguous). As such, the I/O could > exceed the default max_segments limit and get split. This can cause > unnecessary performance issues if the ublk server is optimized to handle > 1M I/Os. The block layer's segment count/size limits exist to model > hardware constraints which don't exist in ublk_drv's case, so just > remove those limits for the block devices created by ublk_drv. > > [...] Applied, thanks! [1/1] ublk: remove segment count and size limits commit: eaf4a9b19b9961f8ca294c39c5f8984a4cf42212 Best regards, -- Jens Axboe