Message ID | 20240227155533.298617-1-mjeanson@efficios.com |
---|---|
Headers |
Return-Path: <libc-alpha-bounces+patchwork=sourceware.org@sourceware.org> X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 0EDC83858289 for <patchwork@sourceware.org>; Tue, 27 Feb 2024 15:56:15 +0000 (GMT) X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from smtpout.efficios.com (smtpout.efficios.com [IPv6:2607:5300:203:b2ee::31e5]) by sourceware.org (Postfix) with ESMTPS id 18EAD3858D20 for <libc-alpha@sourceware.org>; Tue, 27 Feb 2024 15:55:44 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 18EAD3858D20 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=efficios.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=efficios.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 18EAD3858D20 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:5300:203:b2ee::31e5 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709049346; cv=none; b=VexIVF2lqLDQcqEVV8sq3MJyyLs+dp7P2dMh0NSnaBBQHJzEgagb/SUhzD7Nf/hRo/XtS4WfL/zymqgfyONLNLTnnX+aKBFx/0nOZYXpsLhDLnTdfZMcaSgJBkc8R+a+/wRl/XJwzQ8DwkXX7xCAKuzxs4CBj7CCheZE3kjuAAY= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709049346; c=relaxed/simple; bh=+/HWjS2bVYRmfZ4vlP95BE2E5LPZhdl1sX589Y1v2+E=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=JC3vhTwVZuiC+iTzwxnnDsUiIHZ3YIO/f2cEx/HpdKszj42hKnqsJ9Kh9i/WYn3O2aahzxMcqnIGlFhXFGcgN+Xf5EFnkf/k4hCdTFRRo5X9/Wf2BmRmhrVlDOBI3wiLLZkdc+AXaQNWVkjzWHxLDBQI03UPgcKNfqLRd0Wc5zM= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=efficios.com; s=smtpout1; t=1709049342; bh=+/HWjS2bVYRmfZ4vlP95BE2E5LPZhdl1sX589Y1v2+E=; h=From:To:Cc:Subject:Date:From; b=ZmKFCnCF9m9D6xtQ3j7t30NwU0DLwG3+M4BoWXrDfaLMFf7T6IYkIQMAc++XsOQwv 9DrQRRYJ4mkXC/RTjKisD5df0Z7UX4iVD6W+oo2glMnQSBs5RMR9jzlYb4ASNUC1SK bDGTTKONxwlkCZN4tZZLsi5yh8bAKL3Kc+eXA+o3mpQARrXeXjH2xYbTy530X6V5Wj kiuV9HK/STa6aMAuSaEMGw0PoXJrwzlAC+BaEDY6M+cBsYrI4Mlx95v1ornoKyXOrd lG88mYSwM1GjGr0h4g93F2NMy9/1bWTQeZS32Rt+gV1FiKBkxBOmW4qhuOVl8imrWX fHIaQloqDDH8g== Received: from laptop-mjeanson.internal.efficios.com (192-222-143-198.qc.cable.ebox.net [192.222.143.198]) by smtpout.efficios.com (Postfix) with ESMTPSA id 4TkhsV2rpZzdLW; Tue, 27 Feb 2024 10:55:42 -0500 (EST) From: Michael Jeanson <mjeanson@efficios.com> To: libc-alpha@sourceware.org Cc: Michael Jeanson <mjeanson@efficios.com>, Florian Weimer <fweimer@redhat.com>, Carlos O'Donell <carlos@redhat.com>, DJ Delorie <dj@redhat.com>, Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Subject: [PATCH 0/4] Extend rseq support Date: Tue, 27 Feb 2024 10:55:29 -0500 Message-Id: <20240227155533.298617-1-mjeanson@efficios.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-6.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list <libc-alpha.sourceware.org> List-Unsubscribe: <https://sourceware.org/mailman/options/libc-alpha>, <mailto:libc-alpha-request@sourceware.org?subject=unsubscribe> List-Archive: <https://sourceware.org/pipermail/libc-alpha/> List-Post: <mailto:libc-alpha@sourceware.org> List-Help: <mailto:libc-alpha-request@sourceware.org?subject=help> List-Subscribe: <https://sourceware.org/mailman/listinfo/libc-alpha>, <mailto:libc-alpha-request@sourceware.org?subject=subscribe> Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org |
Series | Extend rseq support | |
Message
Michael Jeanson
Feb. 27, 2024, 3:55 p.m. UTC
This series rebases the standalone "Add rseq extensible ABI" patch on current master and addresses many review comments documented in each patch commit message. The accelerated getcpu() implementation using the rseq extensible ABI was split in a different patch series while we figure out the best way to interface with the librseq project as an upstream. Cc: Florian Weimer <fweimer@redhat.com> Cc: Carlos O'Donell <carlos@redhat.com> Cc: DJ Delorie <dj@redhat.com> Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> --- Changes since v7: - Fix sorting of symbols in abilist files Changes since v9: - Address review comments - Split the accelerated getcpu() implementation in a separate patch set Michael Jeanson (4): nptl: fix potential merge of __rseq_* relro symbols Add rseq extensible ABI support nptl: Add public __rseq_feature_size symbol nptl: Add features to internal 'struct rseq_area' csu/Makefile | 2 +- csu/libc-tls.c | 84 +++++++++++++++++-- csu/rseq-sizes.sym | 11 +++ elf/Makefile | 1 + elf/dl-rseq-symbols.S | 72 ++++++++++++++++ elf/dl-tls.c | 78 +++++++++++++++++ elf/rtld_static_init.c | 12 +++ manual/threads.texi | 9 ++ nptl/descr.h | 20 +---- nptl/pthread_create.c | 2 +- sysdeps/generic/dl-rseq.h | 26 ++++++ sysdeps/generic/ldsodefs.h | 12 +++ sysdeps/i386/nptl/tcb-access.h | 56 +++++++++++++ sysdeps/nptl/dl-tls_init_tp.c | 22 +++-- sysdeps/nptl/tcb-access.h | 5 ++ sysdeps/unix/sysv/linux/Makefile | 10 +++ sysdeps/unix/sysv/linux/Versions | 3 + sysdeps/unix/sysv/linux/aarch64/ld.abilist | 1 + sysdeps/unix/sysv/linux/alpha/ld.abilist | 1 + sysdeps/unix/sysv/linux/arc/ld.abilist | 1 + sysdeps/unix/sysv/linux/arm/be/ld.abilist | 1 + sysdeps/unix/sysv/linux/arm/le/ld.abilist | 1 + sysdeps/unix/sysv/linux/csky/ld.abilist | 1 + sysdeps/unix/sysv/linux/dl-parse_auxv.h | 6 ++ sysdeps/unix/sysv/linux/hppa/ld.abilist | 1 + sysdeps/unix/sysv/linux/i386/ld.abilist | 1 + .../unix/sysv/linux/loongarch/lp64/ld.abilist | 1 + .../unix/sysv/linux/m68k/coldfire/ld.abilist | 1 + .../unix/sysv/linux/m68k/m680x0/ld.abilist | 1 + sysdeps/unix/sysv/linux/microblaze/ld.abilist | 1 + .../unix/sysv/linux/mips/mips32/ld.abilist | 1 + .../sysv/linux/mips/mips64/n32/ld.abilist | 1 + .../sysv/linux/mips/mips64/n64/ld.abilist | 1 + sysdeps/unix/sysv/linux/nios2/ld.abilist | 1 + sysdeps/unix/sysv/linux/or1k/ld.abilist | 1 + .../sysv/linux/powerpc/powerpc32/ld.abilist | 1 + .../linux/powerpc/powerpc64/be/ld.abilist | 1 + .../linux/powerpc/powerpc64/le/ld.abilist | 1 + sysdeps/unix/sysv/linux/riscv/rv32/ld.abilist | 1 + sysdeps/unix/sysv/linux/riscv/rv64/ld.abilist | 1 + sysdeps/unix/sysv/linux/rseq-internal.h | 33 +++++++- .../unix/sysv/linux/s390/s390-32/ld.abilist | 1 + .../unix/sysv/linux/s390/s390-64/ld.abilist | 1 + sysdeps/unix/sysv/linux/sched_getcpu.c | 3 +- sysdeps/unix/sysv/linux/sh/be/ld.abilist | 1 + sysdeps/unix/sysv/linux/sh/le/ld.abilist | 1 + .../unix/sysv/linux/sparc/sparc32/ld.abilist | 1 + .../unix/sysv/linux/sparc/sparc64/ld.abilist | 1 + sysdeps/unix/sysv/linux/sys/rseq.h | 4 + .../unix/sysv/linux/tst-rseq-disable-static.c | 1 + sysdeps/unix/sysv/linux/tst-rseq-disable.c | 18 ++-- .../unix/sysv/linux/tst-rseq-nptl-static.c | 1 + sysdeps/unix/sysv/linux/tst-rseq-static.c | 1 + sysdeps/unix/sysv/linux/tst-rseq.c | 24 +++++- sysdeps/unix/sysv/linux/tst-rseq.h | 9 +- sysdeps/unix/sysv/linux/x86_64/64/ld.abilist | 1 + sysdeps/unix/sysv/linux/x86_64/x32/ld.abilist | 1 + sysdeps/x86_64/nptl/tcb-access.h | 56 +++++++++++++ 58 files changed, 557 insertions(+), 54 deletions(-) create mode 100644 csu/rseq-sizes.sym create mode 100644 elf/dl-rseq-symbols.S create mode 100644 sysdeps/generic/dl-rseq.h create mode 100644 sysdeps/unix/sysv/linux/tst-rseq-disable-static.c create mode 100644 sysdeps/unix/sysv/linux/tst-rseq-nptl-static.c create mode 100644 sysdeps/unix/sysv/linux/tst-rseq-static.c
Comments
On 2024-02-27 10:55, Michael Jeanson wrote: > This series rebases the standalone "Add rseq extensible ABI" patch on > current master and addresses many review comments documented in each > patch commit message. > > The accelerated getcpu() implementation using the rseq extensible ABI > was split in a different patch series while we figure out the best way > to interface with the librseq project as an upstream. This should be v9, sorry about the noise. Michael
On 2/27/24 10:55, Michael Jeanson wrote: > This series rebases the standalone "Add rseq extensible ABI" patch on > current master and addresses many review comments documented in each > patch commit message. Michael, Just a quick update here since we discussed this series in the weekly patch queue review. I'm looking to find a second reviewer for this series since it touches ABI artifacts that we want to get right. $ git-pw series apply 31373 Applying: nptl: fix potential merge of __rseq_* relro symbols Applying: Add rseq extensible ABI support Using index info to reconstruct a base tree... M sysdeps/generic/ldsodefs.h M sysdeps/unix/sysv/linux/dl-parse_auxv.h M sysdeps/unix/sysv/linux/sched_getcpu.c Falling back to patching base and 3-way merge... Auto-merging sysdeps/unix/sysv/linux/sched_getcpu.c Auto-merging sysdeps/unix/sysv/linux/dl-parse_auxv.h Auto-merging sysdeps/generic/ldsodefs.h Applying: nptl: Add public __rseq_feature_size symbol Applying: nptl: Add features to internal 'struct rseq_area' The series still applies, but there have been some changes here, would you mind posting a rebase to support the review?
On 2024-03-25 10:01, Carlos O'Donell wrote: > On 2/27/24 10:55, Michael Jeanson wrote: >> This series rebases the standalone "Add rseq extensible ABI" patch on >> current master and addresses many review comments documented in each >> patch commit message. > > Michael, > > Just a quick update here since we discussed this series in the weekly > patch queue review. > > I'm looking to find a second reviewer for this series since it touches > ABI artifacts that we want to get right. > > $ git-pw series apply 31373 > Applying: nptl: fix potential merge of __rseq_* relro symbols > Applying: Add rseq extensible ABI support > Using index info to reconstruct a base tree... > M sysdeps/generic/ldsodefs.h > M sysdeps/unix/sysv/linux/dl-parse_auxv.h > M sysdeps/unix/sysv/linux/sched_getcpu.c > Falling back to patching base and 3-way merge... > Auto-merging sysdeps/unix/sysv/linux/sched_getcpu.c > Auto-merging sysdeps/unix/sysv/linux/dl-parse_auxv.h > Auto-merging sysdeps/generic/ldsodefs.h > Applying: nptl: Add public __rseq_feature_size symbol > Applying: nptl: Add features to internal 'struct rseq_area' > > The series still applies, but there have been some changes here, > would you mind posting a rebase to support the review? > Hi Carlos, I've just sent v10 rebased on current master. Cheers, Michael