Did you test this patch works like expected with non x86 platforms?


On 11/05/15 00:32, Mateusz Guzik wrote:
mtx_lock will unconditionally try to grab the lock and if that fails,
will call __mtx_lock_sleep which will immediately try to do the same
atomic op again.

So, the obvious microoptimization is to check the state in
__mtx_lock_sleep and avoid the operation if the lock is not free.

This gives me ~40% speedup in a microbenchmark of 40 find processes
traversing tmpfs and contending on mount mtx (only used as an easy
benchmark, I have WIP patches to get rid of it).

Second part of the patch is optional and just checks the state of the
lock prior to doing any atomic operations, but it gives a very modest
speed up when applied on top of the __mtx_lock_sleep change. As such,
I'm not going to defend this part.

freebsd-current@freebsd.org mailing list
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to