All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Stancek <jstancek@redhat.com>
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>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Anna-Maria Behnsen <anna-maria@linutronix.de>,
	Frederic Weisbecker <frederic@kernel.org>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Naveen N Rao <naveen@kernel.org>,
	Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Sven Schnelle <svens@linux.ibm.com>,
	Arnd Bergmann <arnd@arndb.de>,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org,
	linux-arch@vger.kernel.org, Nam Cao <namcao@linutronix.de>,
	jstancek@redhat.com
Subject: Re: [PATCH 08/19] vdso/gettimeofday: Prepare do_hres_timens() for introduction of struct vdso_clock
Date: Thu, 24 Apr 2025 16:10:04 +0200	[thread overview]
Message-ID: <aApGPAoctq_eoE2g@t14ultra> (raw)
In-Reply-To: <20250303-vdso-clock-v1-8-c1b5c69a166f@linutronix.de>

On Mon, Mar 03, 2025 at 12:11:10PM +0100, Thomas Weißschuh wrote:
>From: Anna-Maria Behnsen <anna-maria@linutronix.de>
>
>To support multiple PTP clocks, the VDSO data structure needs to be
>reworked. All clock specific data will end up in struct vdso_clock and in
>struct vdso_time_data there will be array of it. By now, vdso_clock is
>simply a define which maps vdso_clock to vdso_time_data.
>
>Prepare for the rework of these structures by adding struct vdso_clock
>pointer argument to do_hres_timens(), and replace the struct vdso_time_data
>pointer with the new pointer arugment whenever applicable.
>
>No functional change.
>
>Signed-off-by: Anna-Maria Behnsen <anna-maria@linutronix.de>
>Signed-off-by: Nam Cao <namcao@linutronix.de>
>Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
>---
> lib/vdso/gettimeofday.c | 35 ++++++++++++++++++-----------------
> 1 file changed, 18 insertions(+), 17 deletions(-)
>

Hi,

starting with this patch, I'm seeing user-space crashes when using clock_gettime():
   BAD  -> 83a2a6b8cfc5 vdso/gettimeofday: Prepare do_hres_timens() for introduction of struct vdso_clock
   GOOD -> 64c3613ce31a vdso/gettimeofday: Prepare do_hres() for introduction of struct vdso_clock

It appears to be unique to aarch64 with 64k pages, and can be reproduced with
LTP clock_gettime03 [1]:
   command: clock_gettime03 
   tst_kconfig.c:88: TINFO: Parsing kernel config '/lib/modules/6.15.0-0.rc3.20250423gitbc3372351d0c.30.eln147.aarch64+64k/build/.config'
   tst_test.c:1903: TINFO: LTP version: 20250130-231-gd02c2aea3
   tst_test.c:1907: TINFO: Tested kernel: 6.15.0-0.rc3.20250423gitbc3372351d0c.30.eln147.aarch64+64k #1 SMP PREEMPT_DYNAMIC Wed Apr 23 23:23:54 UTC 2025 aarch64
   tst_kconfig.c:88: TINFO: Parsing kernel config '/lib/modules/6.15.0-0.rc3.20250423gitbc3372351d0c.30.eln147.aarch64+64k/build/.config'
   tst_test.c:1720: TINFO: Overall timeout per run is 0h 05m 24s
   clock_gettime03.c:121: TINFO: Testing variant: vDSO or syscall with libc spec
   clock_gettime03.c:76: TPASS: Offset (CLOCK_MONOTONIC) is correct 10000ms
   clock_gettime03.c:86: TPASS: Offset (CLOCK_MONOTONIC) is correct 0ms
   clock_gettime03.c:76: TPASS: Offset (CLOCK_BOOTTIME) is correct 10000ms
   clock_gettime03.c:86: TPASS: Offset (CLOCK_BOOTTIME) is correct 0ms
   clock_gettime03.c:76: TPASS: Offset (CLOCK_MONOTONIC) is correct -10000ms
   clock_gettime03.c:86: TPASS: Offset (CLOCK_MONOTONIC) is correct 0ms
   clock_gettime03.c:76: TPASS: Offset (CLOCK_BOOTTIME) is correct -10000ms
   clock_gettime03.c:86: TPASS: Offset (CLOCK_BOOTTIME) is correct 0ms
   tst_test.c:438: TBROK: Child (233649) killed by signal SIGSEGV

or with:
--------------------- 8< ----------------------
#define _GNU_SOURCE
#include <sched.h>
#include <time.h>
#include <unistd.h>                                                                                                                                                                                                                          #include <sys/wait.h>

int main(void)
{
         struct timespec tp;
         pid_t child;
         int status;

         unshare(CLONE_NEWTIME);

         child = fork();
         if (child == 0) {
                 clock_gettime(CLOCK_MONOTONIC_RAW, &tp);
         }

         wait(&status);
         return status;
}

# ./a.out ; echo $?
139
--------------------- >8 ----------------------

RPMs and configs can be found at Fedora koji, latest build is at [2] (look for kernel-64k).

Regards,
Jan

[1] https://github.com/linux-test-project/ltp/blob/master/testcases/kernel/syscalls/clock_gettime/clock_gettime03.c
[2] https://koji.fedoraproject.org/koji/buildinfo?buildID=2704401


  parent reply	other threads:[~2025-04-24 14:09 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-03 11:11 [PATCH 00/19] vdso: Rework struct vdso_time_data and introduce struct vdso_clock Thomas Weißschuh
2025-03-03 11:11 ` Thomas Weißschuh
2025-03-03 11:11 ` [PATCH 01/19] vdso: Introduce vdso/cache.h Thomas Weißschuh
2025-03-08 13:45   ` [tip: timers/vdso] " tip-bot2 for Thomas Weißschuh
2025-03-03 11:11 ` [PATCH 02/19] arm64: Make asm/cache.h compatible with vDSO Thomas Weißschuh
2025-03-08 13:45   ` [tip: timers/vdso] " tip-bot2 for Thomas Weißschuh
2025-03-03 11:11 ` [PATCH 03/19] vdso: Make vdso_time_data cacheline aligned Thomas Weißschuh
2025-03-08 13:45   ` [tip: timers/vdso] " tip-bot2 for Anna-Maria Behnsen
2025-03-03 11:11 ` [PATCH 04/19] vdso/datapage: Define for vdso_data to make rework of vdso possible Thomas Weißschuh
2025-03-08 13:45   ` [tip: timers/vdso] vdso/datapage: Define vdso_clock to prepare for multiple PTP clocks tip-bot2 for Anna-Maria Behnsen
2025-03-03 11:11 ` [PATCH 05/19] vdso/helpers: Prepare introduction of struct vdso_clock Thomas Weißschuh
2025-03-08 13:45   ` [tip: timers/vdso] " tip-bot2 for Anna-Maria Behnsen
2025-03-03 11:11 ` [PATCH 06/19] vdso/gettimeofday: " Thomas Weißschuh
2025-03-08 13:45   ` [tip: timers/vdso] " tip-bot2 for Anna-Maria Behnsen
2025-03-03 11:11 ` [PATCH 07/19] vdso/gettimeofday: Prepare do_hres() for " Thomas Weißschuh
2025-03-08 13:45   ` [tip: timers/vdso] " tip-bot2 for Anna-Maria Behnsen
2025-03-03 11:11 ` [PATCH 08/19] vdso/gettimeofday: Prepare do_hres_timens() " Thomas Weißschuh
2025-03-08 13:45   ` [tip: timers/vdso] " tip-bot2 for Anna-Maria Behnsen
2025-04-24 14:10   ` Jan Stancek [this message]
2025-04-24 15:43     ` [PATCH 08/19] " Thomas Weißschuh
2025-04-24 21:57       ` Jan Stancek
2025-04-25  8:58         ` Thomas Weißschuh
2025-04-25 10:03           ` Jan Stancek
2025-04-25 13:40             ` Thomas Weißschuh
2025-04-25 14:37               ` Jan Stancek
2025-04-25 15:34                 ` Thomas Weißschuh
2025-03-03 11:11 ` [PATCH 09/19] vdso/gettimeofday: Prepare do_coarse() " Thomas Weißschuh
2025-03-08 13:45   ` [tip: timers/vdso] " tip-bot2 for Anna-Maria Behnsen
2025-03-03 11:11 ` [PATCH 10/19] vdso/gettimeofday: Prepare do_coarse_timens() " Thomas Weißschuh
2025-03-08 13:45   ` [tip: timers/vdso] " tip-bot2 for Anna-Maria Behnsen
2025-03-03 11:11 ` [PATCH 11/19] vdso/gettimeofday: Prepare helper functions " Thomas Weißschuh
2025-03-08 13:45   ` [tip: timers/vdso] " tip-bot2 for Anna-Maria Behnsen
2025-03-03 11:11 ` [PATCH 12/19] vdso/vsyscall: Prepare " Thomas Weißschuh
2025-03-08 13:45   ` [tip: timers/vdso] " tip-bot2 for Anna-Maria Behnsen
2025-03-03 11:11 ` [PATCH 13/19] vdso/namespace: Rename timens_setup_vdso_data() to reflect new vdso_clock struct Thomas Weißschuh
2025-03-08 13:44   ` [tip: timers/vdso] " tip-bot2 for Anna-Maria Behnsen
2025-03-03 11:11 ` [PATCH 14/19] time/namespace: Prepare introduction of struct vdso_clock Thomas Weißschuh
2025-03-08 13:44   ` [tip: timers/vdso] " tip-bot2 for Anna-Maria Behnsen
2025-03-03 11:11 ` [PATCH 15/19] x86/vdso: " Thomas Weißschuh
2025-03-03 11:11   ` Thomas Weißschuh
2025-03-08 13:44   ` [tip: timers/vdso] " tip-bot2 for Anna-Maria Behnsen
2025-03-03 11:11 ` [PATCH 16/19] arm64/vdso: " Thomas Weißschuh
2025-03-03 11:11   ` Thomas Weißschuh
2025-03-08 13:44   ` [tip: timers/vdso] " tip-bot2 for Nam Cao
2025-03-03 11:11 ` [PATCH 17/19] powerpc/vdso: " Thomas Weißschuh
2025-03-03 11:11   ` Thomas Weißschuh
2025-03-08 13:44   ` [tip: timers/vdso] " tip-bot2 for Nam Cao
2025-03-03 11:11 ` [PATCH 18/19] vdso: Move arch related data before basetime Thomas Weißschuh
2025-03-08 13:44   ` [tip: timers/vdso] vdso: Move architecture related data before basetime data tip-bot2 for Anna-Maria Behnsen
2025-03-03 11:11 ` [PATCH 19/19] vdso: Rework struct vdso_time_data and introduce struct vdso_clock Thomas Weißschuh
2025-03-08 13:44   ` [tip: timers/vdso] " tip-bot2 for Anna-Maria Behnsen

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=aApGPAoctq_eoE2g@t14ultra \
    --to=jstancek@redhat.com \
    --cc=agordeev@linux.ibm.com \
    --cc=anna-maria@linutronix.de \
    --cc=arnd@arndb.de \
    --cc=borntraeger@linux.ibm.com \
    --cc=bp@alien8.de \
    --cc=catalin.marinas@arm.com \
    --cc=christophe.leroy@csgroup.eu \
    --cc=dave.hansen@linux.intel.com \
    --cc=frederic@kernel.org \
    --cc=gor@linux.ibm.com \
    --cc=hca@linux.ibm.com \
    --cc=hpa@zytor.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=luto@kernel.org \
    --cc=maddy@linux.ibm.com \
    --cc=mingo@redhat.com \
    --cc=mpe@ellerman.id.au \
    --cc=namcao@linutronix.de \
    --cc=naveen@kernel.org \
    --cc=npiggin@gmail.com \
    --cc=svens@linux.ibm.com \
    --cc=tglx@linutronix.de \
    --cc=thomas.weissschuh@linutronix.de \
    --cc=vincenzo.frascino@arm.com \
    --cc=will@kernel.org \
    --cc=x86@kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.