On 22/03/2020 19:09, Pavel Begunkov wrote: > On 19/03/2020 21:56, Jens Axboe wrote: >> We always punt async buffered writes to an io-wq helper, as the core >> kernel does not have IOCB_NOWAIT support for that. Most buffered async >> writes complete very quickly, as it's just a copy operation. This means >> that doing multiple locking roundtrips on the shared wqe lock for each >> buffered write is wasteful. Additionally, buffered writes are hashed >> work items, which means that any buffered write to a given file is >> serialized. >> >> When looking for a new work item, build a chain of identicaly hashed >> work items, and then hand back that batch. Until the batch is done, the >> caller doesn't have to synchronize with the wqe or worker locks again. I have an idea, how to do it a bit better. Let me try it. -- Pavel Begunkov