On Fri, Jan 24, 2025 at 10:48:29PM +0000, Matthew Wilcox (Oracle) wrote: > Postgres sees significant contention on the hashed folio waitqueue lock > when performing direct I/O to 1GB hugetlb pages. This is because we > mark the destination pages as dirty, and the locks end up 512x more > contended with 1GB pages than with 2MB pages. > > We can skip the locking if the folio is already marked as dirty. > The writeback path clears the dirty flag before commencing writeback, > if we see the dirty flag set, the data written to the folio will be > written back. > > In one test, throughput increased from 18GB/s to 20GB/s and moved the > bottleneck elsewhere. > > Reported-by: Andres Freund <andres@xxxxxxxxxxx> > Signed-off-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> ... this is the wrong version of the patch *facepalm*