Message ID | 20240325182927.914830-1-mjeanson@efficios.com (mailing list archive) |
---|---|
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 1CFBC385842A for <patchwork@sourceware.org>; Mon, 25 Mar 2024 18:30:22 +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 78CDD3858401 for <libc-alpha@sourceware.org>; Mon, 25 Mar 2024 18:29:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 78CDD3858401 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 78CDD3858401 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=1711391385; cv=none; b=kURO7QeMEa4U538HhNfmWtWRp0zUdfolHMlEIX1qbiCHe1qs1z+HDM5WNpPLBMS0ZMrifzAQVV7a6kZAATHfcJC98d4SqgbCsJpbyYn9yzXNKSjBLumVkd2UJAOWQ1oY5cXJnD1njcqqptj/EI9eo4LsZEHI3L9AVM4izpXYP+M= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1711391385; c=relaxed/simple; bh=yvOPH5Aj0Wb1HuA+/R3jouZ3Ygw7kDeXqouk+xd4gvQ=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=MvfYrZxUMWUXDJStyrHBiYoKzXsn70P/kSGvftPh5XK9zVO4WBBZuNC9P5U2asDttjEIx8U66YBpS5o7q+bQdQM/vINC20vLXqaDO9Fgil97pqJID+W7fi6sqTWWxnQDqeYaSwZH2VxVzatsgX6Vi+3qA0j0dMruLynUCVBRBCQ= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=efficios.com; s=smtpout1; t=1711391381; bh=yvOPH5Aj0Wb1HuA+/R3jouZ3Ygw7kDeXqouk+xd4gvQ=; h=From:To:Cc:Subject:Date:From; b=vFi2iYvTPc/FA9y+iMaZdOcH7XPoBr2ie9HmSmS0H2r9A4OOY1A5cWRagl55+J7Qb AQ8cgTbcgFYK0clFuHdjPgzMtkR3lxw30r5BGRE8WkRKI000X1uGMD/AJHrojVufne 4vYJx61tT27Zq0fI30ZsPsUkKJdq0tW/1RXbtLRRxa44LWxG+no4zT+UWxXp09Veec Qe5aYswkJ6mZFpd2k8Sc48PMaec32glcnVPJe+nbvA/Z2UawYQTekF88VV4D2A+Wwu aV65AjVxD6iM1G6hZ2TjqnxUHyiymcXwKaVls3tng1g+EaX3XvMMkxxaOp5xNbavDX 6lSUDPimmeufw== 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 4V3M0j5MLXzmvQ; Mon, 25 Mar 2024 14:29:41 -0400 (EDT) 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 v10 0/4] Extend rseq support Date: Mon, 25 Mar 2024 14:29:23 -0400 Message-Id: <20240325182927.914830-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=-5.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, SPF_HELO_NONE, SPF_PASS, TXREP 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
March 25, 2024, 6:29 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 v9: - Rebased on current master Changes since v8: - Address review comments - Split the accelerated getcpu() implementation in a separate patch set Changes since v7: - Fix sorting of symbols in abilist files 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-03-25 14:29, 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. Hi Florian, You mentioned you planned to do a review of the ABI changes introduced by this series. Are we still on track to integrate those changes before the July ABI freeze ? Thanks, Mathieu > > 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 v9: > - Rebased on current master > Changes since v8: > - Address review comments > - Split the accelerated getcpu() implementation in a separate patch set > Changes since v7: > - Fix sorting of symbols in abilist files > > 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 >