Message ID | 20200501021439.2456-1-mathieu.desnoyers@efficios.com |
---|---|
Headers |
Return-Path: <libc-alpha-bounces@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 853F6396E853; Fri, 1 May 2020 02:14:55 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 853F6396E853 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1588299295; bh=3gIpuBZzhRIJn6Rjz8KIP/hV11LffQbVn/0CdZ22974=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=uvrpmBAFyRiCuJHuftYJNZZBbxDt9J0xZCubx+7D+3Yn2lUOK33HHdWHgPp/Bi7Zb YIsAGSUUASdVDz/GamsF5V5h45FNIcBqv3ADXds/lzjhDn15JaYtMElIpYyRmNt0cW 6rivRpgDEZYIwA7y/itGkOGMz4Wq8iQIbPzxJR5E= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail.efficios.com (mail.efficios.com [167.114.26.124]) by sourceware.org (Postfix) with ESMTPS id 67A96385DC1C for <libc-alpha@sourceware.org>; Fri, 1 May 2020 02:14:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 67A96385DC1C Received: from localhost (localhost [127.0.0.1]) by mail.efficios.com (Postfix) with ESMTP id 0C71F2942C4; Thu, 30 Apr 2020 22:14:51 -0400 (EDT) Received: from mail.efficios.com ([127.0.0.1]) by localhost (mail03.efficios.com [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id krt8vP9MPjn9; Thu, 30 Apr 2020 22:14:50 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by mail.efficios.com (Postfix) with ESMTP id A1A5A29458F; Thu, 30 Apr 2020 22:14:50 -0400 (EDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.efficios.com A1A5A29458F X-Virus-Scanned: amavisd-new at efficios.com Received: from mail.efficios.com ([127.0.0.1]) by localhost (mail03.efficios.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id VvhMLSLG2fYQ; Thu, 30 Apr 2020 22:14:50 -0400 (EDT) Received: from localhost.localdomain (192-222-181-218.qc.cable.ebox.net [192.222.181.218]) by mail.efficios.com (Postfix) with ESMTPSA id 6CE9D293FE9; Thu, 30 Apr 2020 22:14:50 -0400 (EDT) To: Florian Weimer <fweimer@redhat.com> Subject: [PATCH glibc 0/3] Restartable Sequences enablement Date: Thu, 30 Apr 2020 22:14:36 -0400 Message-Id: <20200501021439.2456-1-mathieu.desnoyers@efficios.com> X-Mailer: git-send-email 2.17.1 X-Spam-Status: No, score=-17.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_3, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list <libc-alpha.sourceware.org> List-Unsubscribe: <http://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: <http://sourceware.org/mailman/listinfo/libc-alpha>, <mailto:libc-alpha-request@sourceware.org?subject=subscribe> From: Mathieu Desnoyers via Libc-alpha <libc-alpha@sourceware.org> Reply-To: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Cc: libc-alpha@sourceware.org, Joseph Myers <joseph@codesourcery.com>, Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" <libc-alpha-bounces@sourceware.org> |
Series | Restartable Sequences enablement | |
Message
Mathieu Desnoyers
May 1, 2020, 2:14 a.m. UTC
Hi, Please find the rseq enablement patchset for inclusion into glibc. Florian, if you find the patches OK and possibly with a bit of tweaking of the commit messages, can you please commit them to glibc ? Thanks for the feedback! Mathieu Mathieu Desnoyers (3): glibc: Perform rseq registration at C startup and thread creation (v19) glibc: sched_getcpu(): use rseq cpu_id TLS on Linux (v7) rseq registration tests (v10) NEWS | 10 + elf/libc_early_init.c | 4 + manual/threads.texi | 66 +++- nptl/pthread_create.c | 13 + sysdeps/generic/rseq-internal.h | 26 ++ sysdeps/unix/sysv/linux/Makefile | 11 +- sysdeps/unix/sysv/linux/Versions | 1 + sysdeps/unix/sysv/linux/aarch64/bits/rseq.h | 43 +++ sysdeps/unix/sysv/linux/aarch64/libc.abilist | 1 + sysdeps/unix/sysv/linux/alpha/libc.abilist | 1 + sysdeps/unix/sysv/linux/arm/be/libc.abilist | 1 + sysdeps/unix/sysv/linux/arm/bits/rseq.h | 83 +++++ sysdeps/unix/sysv/linux/arm/le/libc.abilist | 1 + sysdeps/unix/sysv/linux/bits/rseq.h | 29 ++ sysdeps/unix/sysv/linux/csky/libc.abilist | 1 + sysdeps/unix/sysv/linux/hppa/libc.abilist | 1 + sysdeps/unix/sysv/linux/i386/libc.abilist | 1 + sysdeps/unix/sysv/linux/ia64/libc.abilist | 1 + .../sysv/linux/m68k/coldfire/libc.abilist | 1 + .../unix/sysv/linux/m68k/m680x0/libc.abilist | 1 + .../sysv/linux/microblaze/be/libc.abilist | 1 + .../sysv/linux/microblaze/le/libc.abilist | 1 + sysdeps/unix/sysv/linux/mips/bits/rseq.h | 62 ++++ .../sysv/linux/mips/mips32/fpu/libc.abilist | 1 + .../sysv/linux/mips/mips32/nofpu/libc.abilist | 1 + .../sysv/linux/mips/mips64/n32/libc.abilist | 1 + .../sysv/linux/mips/mips64/n64/libc.abilist | 1 + sysdeps/unix/sysv/linux/nios2/libc.abilist | 1 + sysdeps/unix/sysv/linux/powerpc/bits/rseq.h | 37 ++ .../linux/powerpc/powerpc32/fpu/libc.abilist | 1 + .../powerpc/powerpc32/nofpu/libc.abilist | 1 + .../linux/powerpc/powerpc64/be/libc.abilist | 1 + .../linux/powerpc/powerpc64/le/libc.abilist | 1 + .../unix/sysv/linux/riscv/rv64/libc.abilist | 1 + sysdeps/unix/sysv/linux/rseq-internal.h | 73 ++++ sysdeps/unix/sysv/linux/rseq-sym.c | 26 ++ sysdeps/unix/sysv/linux/s390/bits/rseq.h | 37 ++ .../unix/sysv/linux/s390/s390-32/libc.abilist | 1 + .../unix/sysv/linux/s390/s390-64/libc.abilist | 1 + sysdeps/unix/sysv/linux/sched_getcpu.c | 27 +- sysdeps/unix/sysv/linux/sh/be/libc.abilist | 1 + sysdeps/unix/sysv/linux/sh/le/libc.abilist | 1 + .../sysv/linux/sparc/sparc32/libc.abilist | 1 + .../sysv/linux/sparc/sparc64/libc.abilist | 1 + sysdeps/unix/sysv/linux/sys/rseq.h | 207 +++++++++++ sysdeps/unix/sysv/linux/tst-rseq-nptl.c | 338 ++++++++++++++++++ sysdeps/unix/sysv/linux/tst-rseq.c | 108 ++++++ sysdeps/unix/sysv/linux/x86/bits/rseq.h | 30 ++ .../unix/sysv/linux/x86_64/64/libc.abilist | 1 + .../unix/sysv/linux/x86_64/x32/libc.abilist | 1 + 50 files changed, 1253 insertions(+), 8 deletions(-) create mode 100644 sysdeps/generic/rseq-internal.h create mode 100644 sysdeps/unix/sysv/linux/aarch64/bits/rseq.h create mode 100644 sysdeps/unix/sysv/linux/arm/bits/rseq.h create mode 100644 sysdeps/unix/sysv/linux/bits/rseq.h create mode 100644 sysdeps/unix/sysv/linux/mips/bits/rseq.h create mode 100644 sysdeps/unix/sysv/linux/powerpc/bits/rseq.h create mode 100644 sysdeps/unix/sysv/linux/rseq-internal.h create mode 100644 sysdeps/unix/sysv/linux/rseq-sym.c create mode 100644 sysdeps/unix/sysv/linux/s390/bits/rseq.h create mode 100644 sysdeps/unix/sysv/linux/sys/rseq.h create mode 100644 sysdeps/unix/sysv/linux/tst-rseq-nptl.c create mode 100644 sysdeps/unix/sysv/linux/tst-rseq.c create mode 100644 sysdeps/unix/sysv/linux/x86/bits/rseq.h
Comments
* Mathieu Desnoyers via Libc-alpha: > Florian, if you find the patches OK and possibly with a bit of > tweaking of the commit messages, can you please commit them > to glibc ? I had some final review comments, and I found a real bug: the uptr changes in <sys/rseq.h> are problematic. What do others think about the level of testing and documentation in these patches? Thanks, Florian
----- On May 20, 2020, at 7:44 AM, Florian Weimer fweimer@redhat.com wrote: > * Mathieu Desnoyers via Libc-alpha: > >> Florian, if you find the patches OK and possibly with a bit of >> tweaking of the commit messages, can you please commit them >> to glibc ? > > I had some final review comments, and I found a real bug: the uptr > changes in <sys/rseq.h> are problematic. Hi Florian, Can you share what issue you have found with the uptr changes ? Thanks, Mathieu > > What do others think about the level of testing and documentation in > these patches? > > Thanks, > Florian
* Mathieu Desnoyers: > ----- On May 20, 2020, at 7:44 AM, Florian Weimer fweimer@redhat.com wrote: > >> * Mathieu Desnoyers via Libc-alpha: >> >>> Florian, if you find the patches OK and possibly with a bit of >>> tweaking of the commit messages, can you please commit them >>> to glibc ? >> >> I had some final review comments, and I found a real bug: the uptr >> changes in <sys/rseq.h> are problematic. > > Hi Florian, > > Can you share what issue you have found with the uptr changes ? I thought I had written about something here: <https://sourceware.org/pipermail/libc-alpha/2020-May/114142.html> But it's not very explicit. I must have deleted it before sending it. The problem is that you made substantial changes to the fallback definitions compared to the kernel version. But those will never be used if the user has the appropriate kernel headers installed. The fallback part really has to be an almost-verbatim copy of the kernel definitions. Thanks, Florian