On 27/09/2022 15:05, Yu Kuai wrote:
However both 5.15 stable and 5.19 mainline include fce54ed02757 - it
was automatically backported for 5.15 stable. Please double check that.
And can you also check performance there for those kernels?
I'm pretty sure io split can decline performance, especially for HDD,
because blk-mq can't guarantee that split io can be dispatched to disk
sequentially. However, this is usually not common with proper
max_sectors_kb.
Here is an example that if max_sector_kb is 128k, performance will
drop a lot under high concurrency:
https://lore.kernel.org/all/20220408073916.1428590-1-yukuai3@xxxxxxxxxx/
Here I set max_sectors_kb to 128k manually, and 1m random io performance
will drop while io concurrency increase:
| numjobs | v5.18-rc1 |
| ------- | --------- |
| 1 | 67.7 |
| 2 | 67.7 |
| 4 | 67.7 |
| 8 | 67.7 |
| 16 | 64.8 |
| 32 | 59.8 |
| 64 | 54.9 |
| 128 | 49 |
| 256 | 37.7 |
| 512 | 31.8 |
Commit fce54ed02757 was to circumvent a terrible performance hit for
IOMMU enabled from 4e89dce72521 - have you ever tested with IOMMU enabled?
If fce54ed02757 really does cause a performance regression in some
scenarios, then we can consider reverting it from any stable kernel and
also backporting [0] when it is included in Linus' kernel
[0]
https://lore.kernel.org/linux-iommu/495de02c-59ce-917f-1cb4-5425a37063ed@xxxxxxxxxx/T/#m6a655d596fdf30e4e8b90100e16f75ae5d67341a
thanks,
John