[LTP] [PATCH V2 2/2] syscalls/clock_gettime: Add test to check bug during successive readings
Arnd Bergmann
arnd@arndb.de
Thu Jun 11 15:05:52 CEST 2020
On Thu, Jun 11, 2020 at 10:34 AM Viresh Kumar <viresh.kumar@linaro.org> wrote:
> +static void find_vdso_helpers(void)
> +{
> + /*
> + * Some vDSO exports its clock_gettime() implementation with a different
> + * name and version from other architectures, so we need to handle it as
> + * a special case.
> + */
> +#if defined(__powerpc__) || defined(__powerpc64__)
> + const char *version = "LINUX_2.6.15";
> + const char *name = "__kernel_clock_gettime";
> +#elif defined(__aarch64__)
> + const char *version = "LINUX_2.6.39";
> + const char *name = "__kernel_clock_gettime";
> +#elif defined(__s390__)
> + const char *version = "LINUX_2.6.29";
> + const char *name = "__kernel_clock_gettime";
> +#else
> + const char *version = "LINUX_2.6";
> + const char *name = "__vdso_clock_gettime";
> +#endif
I see that risc-v uses version="LINUX_4.15", and nds32 uses "LINUX_4",
the other ones look correct.
> + ret = tv->gettime(clks[i], tst_ts_get(&ts));
> + if (ret) {
> + if (errno != ENOSYS) {
> + tst_res(TFAIL | TERRNO, "%s: clock_gettime() failed (%d)",
> + tst_clock_name(clks[i]), j);
> + }
> + continue;
> + }
Is this a test case failure, or does it still succeed after skipping a call?
When any of the variants (in particular vdso_clock_gettime64) don't
exist, I think you just need to continue without printing anything.
Note that older kernels before v5.1 don't have the clock_gettime64
syscall, while riscv and future architectures as well as kernels with
CONFIG_COMPAT_32BIT_TIME=n don't have clock_gettime(),
and some architectures don't have a vdso, or only the time32 version
of it.
Arnd
Arnd
More information about the ltp
mailing list