From 2ff1a969f3040f27ac2610e9840a4e802bcc39cc Mon Sep 17 00:00:00 2001 From: Eugene Grebenschikov Date: Wed, 1 Apr 2026 11:03:21 -0700 Subject: Removed CLOCK_MONOTONIC_FAST support. CLOCK_MONOTONIC_FAST, like CLOCK_MONOTONIC_COARSE, has low accuracy. It shows noticeable timing variation for short intervals, which is visible in metrics like $upstream_response_time for fast upstream responses. This change complements the work started in commit f29d7ade5. In addition to the reasons described in f29d7ade5, the performance of CLOCK_MONOTONIC is good enough on modern hardware when using a TSC timecounter. This is especially true when it is accessed through a shared page, as implemented in FreeBSD 10.0 (see git commits 869fd80fd449 and aea810386d8e for details). Co-authored-by: Sergey Kandaurov --- src/core/ngx_times.c | 4 ---- 1 file changed, 4 deletions(-) (limited to 'src') diff --git a/src/core/ngx_times.c b/src/core/ngx_times.c index 16788c98c..b0057d2ab 100644 --- a/src/core/ngx_times.c +++ b/src/core/ngx_times.c @@ -198,11 +198,7 @@ ngx_monotonic_time(time_t sec, ngx_uint_t msec) #if (NGX_HAVE_CLOCK_MONOTONIC) struct timespec ts; -#if defined(CLOCK_MONOTONIC_FAST) - clock_gettime(CLOCK_MONOTONIC_FAST, &ts); -#else clock_gettime(CLOCK_MONOTONIC, &ts); -#endif sec = ts.tv_sec; msec = ts.tv_nsec / 1000000; -- cgit