On Tue, Oct 01, 2019 at 10:25:00AM +0300, Denis Plotnikov wrote: > Some linux kernels has a performance flaw in virtio block device access. > On some frequent disk access patterns, e.g. 1M read, the kernel produces > more block requests than needed. This happens because of virtio seg_max > parameter set to 126 (virtqueue_size - 2) which limits the maximum block > request to 516096 (126 * 4096_PAGE_SIZE). > > Setting seg_max > 126 fixes the issue, however, not all linux kernels > allow that. The old ones have a restriction virtqueue_size >= seg_max. > This restriction is hardcoded and the kernel crashes in case of violation. > The restriction is relaxed in the recent kernels. Windows kernels don't > have such a restriction. > > To increse seg_max and not to break the restriction, one can increase the > virtqueue size to 256 and seg_max to 254. To do that, seabios support of > 256 virtqueue size is needed.
--verbose please. Do you talk about guest kernels? Or host kernels? Why does changing seabios fix the kernel bug? Is this just a performance issue (first paragraph sounds like it is, and that would not be that much of a problem IMO given that virtio-blk isn't tweaked for performance anyway)? Or something more serious? cheers, Gerd _______________________________________________ SeaBIOS mailing list -- seabios@seabios.org To unsubscribe send an email to seabios-le...@seabios.org