Track spinlock delay in microsecond granularity.

Heikki Linnakangas <heikki.linnakangas@iki.fi>

Commit: 9e0bc7c1e84d7fffb93130f2b7d079a0853329ed
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date: 2013-06-28T09:39:55Z
Releases: 9.4.0
Track spinlock delay in microsecond granularity.

On many platforms the OS will round the sleep time to millisecond
resolution, but there is no reason for us to pre-emptively round the
argument to pg_usleep.

When the delay was measured in milliseconds and started from 1 ms, it
sometimes took many attempts until the logic that increases the delay by
multiplying with a random value between 1 and 2 actually managed to bump it
from 1 ms to 2 ms. That lead to a sequence of 1 ms waits until the delay
started to increase. This wasn't really a problem but it looked odd if you
observed the waits. There is no measurable difference in performance, but
it's more readable this way.

Jeff Janes

Files

PathChange+/−
src/backend/storage/lmgr/s_lock.c modified +6 −11