Re: [PATCH v5 02/23] kernel: Define gettimeofday vdso common code
From: Thomas Gleixner <hidden>
Date: 2019-02-23 10:35:11
Also in:
linux-arch
On Fri, 22 Feb 2019, Vincenzo Frascino wrote:
quoted hunk ↗ jump to hunk
+static notrace int __cvdso_clock_getres(clockid_t clock, + struct __vdso_timespec *res) +{ + u64 sec, ns; + u32 msk; + + /* Check for negative values or invalid clocks */ + if (unlikely((u32) clock >= MAX_CLOCKS)) + goto fallback; + + /* + * Convert the clockid to a bitmask and use it to check which + * clocks are handled in the VDSO directly. + */ + msk = 1U << clock; + if (msk & VDSO_HRES) { + /* + * Preserves the behaviour of posix_get_hrtimer_res(). + */
So much for the theory.
+ sec = 0; + ns = MONOTONIC_RES_NSEC;
posix_get_hrtimer_res() does: sec = 0; ns = hrtimer_resolution; and hrtimer_resolution depends on the enablement of high resolution timers either compile or run time. So you need to have a copy of hrtimer_resolution in the vdso data and use that.
quoted hunk ↗ jump to hunk
+ } else if (msk & VDSO_COARSE) { + /* + * Preserves the behaviour of posix_get_coarse_res(). + */ + ns = LOW_RES_NSEC; + sec = __iter_div_u64_rem(ns, NSEC_PER_SEC, &ns);
Do we allow CONFIG_HZ = 1? Thanks, tglx _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel