On Tue, Jan 23, 2024 at 10:34:15AM -0700, Jens Axboe wrote: > We do several stages of merging in the block layer - the most likely one > to work is also the cheap one, merging direct in the per-task plug when > IO is submitted. Getting merges outside of that is a lot less likely, > but IO schedulers may still maintain internal data structures to > facilitate merge lookups outside of the plug. > > Make mq-deadline skip expensive merge lookups if the queue lock is > already contended. The likelihood of getting a merge here is not very > high, hence it should not be a problem skipping the attempt in the also > unlikely event that the queue is already contended. I'm curious if you tried benchmarking just removing these extra merges entirely?