On Wed, Jul 16, 2025 at 01:50:22PM +0100, Mark Brown wrote:
On Wed, Jul 16, 2025 at 02:34:52PM +0200, Thomas Weißschuh wrote:
On Wed, Jul 16, 2025 at 01:25:06PM +0100, Mark Brown wrote:
This issue has been present in -next for a week and is causing a bunch of disruption to tests that end up relying on the vDSO - do we have any news on getting a fix merged? Perhaps it makes sense for Marek to just send his patch so that it's there if needed?
That fix has been in -next since next-20250710. If you still have issues, I'll take a look.
Ah, sorry - I'd not seen followup mails in the thread and was still seeing issues that appeared at the same time that had previously bisected here. One is:
| INFO: Generating a skipfile based on /lava-4170058/1/tests/6_kselftest-dev-errlogs/automated/linux/kselftest/skipfile-lkft.yaml | fatal error: nanotime returning zero | goroutine 1 [running, locked to thread]: | runtime.throw(0x132d83, 0x17) | /usr/lib/golang/src/runtime/panic.go:774 +0x5c fp=0x42c7a4 sp=0x42c790 pc=0x3b740 | runtime.main() | /usr/lib/golang/src/runtime/proc.go:152 +0x350 fp=0x42c7e4 sp=0x42c7a4 pc=0x3d308 |A runtime.goexit() | /usr/lib/golang/src/runtime/asm_arm.s:868 +0x4 fp=0x42c7e4 sp=0x42c7e4 pc=0x645dc | ERROR: skipgen failed to generate a skipfile: 2
I'll just kick of a clean bisect for that and see what it comes up with.
Can you try the following? I missed this despite the double-checking after the last reported issue.
diff --git a/lib/vdso/gettimeofday.c b/lib/vdso/gettimeofday.c index 97aa9059a5c9..5e0106130e07 100644 --- a/lib/vdso/gettimeofday.c +++ b/lib/vdso/gettimeofday.c @@ -365,14 +365,14 @@ __cvdso_clock_gettime32_data(const struct vdso_time_data *vd, clockid_t clock, struct old_timespec32 *res) { struct __kernel_timespec ts; - int ret; + bool ok;
- ret = __cvdso_clock_gettime_common(vd, clock, &ts); + ok = __cvdso_clock_gettime_common(vd, clock, &ts);
- if (unlikely(ret)) + if (unlikely(!ok)) return clock_gettime32_fallback(clock, res);
- /* For ret == 0 */ + /* For ok == true */ res->tv_sec = ts.tv_sec; res->tv_nsec = ts.tv_nsec;
Sorry for all the breakage.
Thomas