On Mon, Sep 24, 2018 at 07:55:02PM +0530, Joshi wrote: > > I changed all log wait queues (ic_force_wait, ic_write_wait, and > xc_commit_wait) into completion variables (despite knowing that it is > also implemented using wait_queue). > > Sorry, ignore this and subsequent part of the text. I think replacing > with completion requires more work than I did.Calling "complete_all" > is tricky, given the need of calling "reinit_completion" which may get > executed by multiple threads in this case. Yup. Perhaps you might like to look at this recent patch set aimed at reducing spurious wake-ups and lock contention in the log reservation code: https://marc.info/?l=linux-kernel&m=153531683127094&w=2 Not sure it applies to this case, but it still may be useful to you. BTW, when posting benchmark results, can you also include a baseline result from a completely unmodified kernel and the patches you are testing? Nobody can evaluate the correctness or effectiveness of the changes you are testing without these things.... Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx