From: "Arnd Bergmann" <arnd@arndb.de>
To: "Thomas Weißschuh" <thomas.weissschuh@linutronix.de>
Cc: "Andy Lutomirski" <luto@kernel.org>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Vincenzo Frascino" <vincenzo.frascino@arm.com>,
shuah <shuah@kernel.org>,
linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org
Subject: Re: [PATCH v2 03/14] selftests: vDSO: Introduce vdso_syscalls.h
Date: Fri, 14 Nov 2025 10:16:01 +0100 [thread overview]
Message-ID: <22ec7315-49b2-4fde-bd2f-f24f2cfcec37@app.fastmail.com> (raw)
In-Reply-To: <20251114093245-04b5eb56-d3ed-486b-90ff-7c7ad5cfc7e7@linutronix.de>
On Fri, Nov 14, 2025, at 09:48, Thomas Weißschuh wrote:
> On Fri, Nov 14, 2025 at 09:13:02AM +0100, Arnd Bergmann wrote:
>> On Thu, Nov 13, 2025, at 16:30, Thomas Weißschuh wrote:
>>
>> __NR_clock_getres and vdso_clock_getres() both always return a
>> __kernel_old_timespec, so I now think it's best to return that from
>> sys_clock_getres() without the __NR_clock_getres_time64 alternative
>> here and not worry about whether that is a 32-bit or 64-bit type,
>>
>> I should have thought this through better in my comments to the
>> previous version.
>>
>> In kernels without CONFIG_COMPAT_32BIT_TIME, we currently leave
>> out the clock_getres/clock_gettime/gettimeofday/time syscalls,
>> but still provide the vdso interfaces. For consistency we should
>> probably leave out both syscall and vdso in that configuration,
>> and then we also don't need to compare the vdso_getres result
>> against sys_getres_time64.
>
> That sounds good. But today no vDSO provides clock_getres_time64,
> so removing clock_getres from the vDSO will affect users.
In what way? When we introduced the clock_gettime64()
vdso call, we debated also adding time64(), gettimeofday_time64()
and clock_getres_time64() but decided against that based on
the argument that the libc can implement all of these efficiently
with just clock_gettime64().
If you think that clock_getres_time64() is important, I don't
mind changing that, especially now that we have a shared vdso
for all architectures. The arguments here is a bit different,
since an efficient clock_getres() function in libc requires
caching the values in userspace, while an efficient gettimeofday()
is much simpler, by calling vdso_clock_gettime_time64()
> So we will end up with some sort of inconsistency in any case.
> While I agree that it would be nice if the type mangling was unnecessary,
> I prefer to correctly test what we have today. If we decide to simplify
> the vDSO itself then we have working tests.
Sorry, I'm not following. Do you mean we need the mangling since we
support the vdso for configurations without the direct syscalls, or
do you mean something else?
I don't think we can actually build a full userspace (other than nolibc)
that works with CONFIG_COMPAT_32BIT_TIME=n, so I'm not particularly
worried about testing the vdso for that case. You already skip
testing vdso_time() if sys_time() is unavailable, and I think
we can do it the exact same way for all five vdso calls.
> sys_clock_gettime() should probably be called sys_clock_gettime64(),
> as that is what it actually is.
That also seems wrong, as there is no clock_gettime64 on 64-bit
architectures, only clock_gettime.
> FYI: gettimeoday() seems to be available even in kernels without
> CONFIG_COMPAT_32BIT_TIME.
I see, that does sound like a mistake. It's relatively harmless,
but I think it would be safe to change this along with changing
the vdso to only expose the time32 interfaces when COMPAT_32BIT_TIME
is enabled.
Arnd
next prev parent reply other threads:[~2025-11-14 9:16 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-13 15:30 [PATCH v2 00/14] selftests: vDSO: Stop using libc types for vDSO calls Thomas Weißschuh
2025-11-13 15:30 ` [PATCH v2 01/14] Revert "selftests: vDSO: parse_vdso: Use UAPI headers instead of libc headers" Thomas Weißschuh
2025-11-13 15:30 ` [PATCH v2 02/14] selftests: vDSO: Introduce vdso_types.h Thomas Weißschuh
2025-11-13 15:30 ` [PATCH v2 03/14] selftests: vDSO: Introduce vdso_syscalls.h Thomas Weißschuh
2025-11-14 8:13 ` Arnd Bergmann
2025-11-14 8:48 ` Thomas Weißschuh
2025-11-14 9:16 ` Arnd Bergmann [this message]
2025-11-14 10:02 ` Thomas Weißschuh
2025-11-14 10:40 ` Arnd Bergmann
2025-11-18 14:22 ` Thomas Weißschuh
2025-11-18 21:40 ` Arnd Bergmann
2025-11-20 13:27 ` Thomas Weißschuh
2025-11-13 15:30 ` [PATCH v2 04/14] selftests: vDSO: vdso_test_gettimeofday: Remove nolibc checks Thomas Weißschuh
2025-11-13 15:30 ` [PATCH v2 05/14] selftests: vDSO: vdso_test_gettimeofday: Use types from vdso_types.h Thomas Weißschuh
2025-11-13 15:30 ` [PATCH v2 06/14] selftests: vDSO: vdso_test_abi: " Thomas Weißschuh
2025-11-13 15:30 ` [PATCH v2 07/14] selftests: vDSO: vdso_test_abi: Validate return value of syscall(clock_getres) Thomas Weißschuh
2025-11-13 15:30 ` [PATCH v2 08/14] selftests: vDSO: vdso_test_abi: Use system call wrappers from vdso_syscalls.h Thomas Weißschuh
2025-11-13 15:30 ` [PATCH v2 09/14] selftests: vDSO: vdso_test_correctness: Drop SYS_getcpu fallbacks Thomas Weißschuh
2025-11-13 15:30 ` [PATCH v2 10/14] selftests: vDSO: vdso_test_correctness: Make ts_leq() and tv_leq() more generic Thomas Weißschuh
2025-11-13 15:30 ` [PATCH v2 11/14] selftests: vDSO: vdso_test_correctness: Use types from vdso_types.h Thomas Weißschuh
2025-11-13 15:30 ` [PATCH v2 12/14] selftests: vDSO: vdso_test_correctness: Use system call wrappers from vdso_syscalls.h Thomas Weißschuh
2025-11-14 8:01 ` Arnd Bergmann
2025-11-13 15:30 ` [PATCH v2 13/14] selftests: vDSO: vdso_test_correctness: Use facilities from parse_vdso.c Thomas Weißschuh
2025-11-13 15:30 ` [PATCH v2 14/14] selftests: vDSO: vdso_test_correctness: Add a test for time() Thomas Weißschuh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=22ec7315-49b2-4fde-bd2f-f24f2cfcec37@app.fastmail.com \
--to=arnd@arndb.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=luto@kernel.org \
--cc=shuah@kernel.org \
--cc=tglx@linutronix.de \
--cc=thomas.weissschuh@linutronix.de \
--cc=vincenzo.frascino@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox