[RFC,00/10] y2038: nptl: futex: Provide support for futex_time64
Message ID | 20200707150827.20899-1-lukma@denx.de |
---|---|
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 15AB03861838; Tue, 7 Jul 2020 15:08:51 +0000 (GMT) X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-out.m-online.net (mail-out.m-online.net [IPv6:2001:a60:0:28:0:1:25:1]) by sourceware.org (Postfix) with ESMTPS id 9167B3857C7C for <libc-alpha@sourceware.org>; Tue, 7 Jul 2020 15:08:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 9167B3857C7C Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=denx.de Authentication-Results: sourceware.org; spf=none smtp.mailfrom=lukma@denx.de Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 4B1Qn81bf5z1rx8b; Tue, 7 Jul 2020 17:08:44 +0200 (CEST) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 4B1Qn800yyz1r573; Tue, 7 Jul 2020 17:08:43 +0200 (CEST) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id 38YVXmlqic10; Tue, 7 Jul 2020 17:08:42 +0200 (CEST) X-Auth-Info: 3GnokEXIVHFVusw4wrCteZb/w+uiJ+ph/KF1YyS4/m0= Received: from localhost.localdomain (85-222-111-42.dynamic.chello.pl [85.222.111.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPSA; Tue, 7 Jul 2020 17:08:42 +0200 (CEST) From: Lukasz Majewski <lukma@denx.de> To: Joseph Myers <joseph@codesourcery.com>, Paul Eggert <eggert@cs.ucla.edu>, Adhemerval Zanella <adhemerval.zanella@linaro.org> Subject: [RFC 00/10] y2038: nptl: futex: Provide support for futex_time64 Date: Tue, 7 Jul 2020 17:08:17 +0200 Message-Id: <20200707150827.20899-1-lukma@denx.de> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00, KAM_DMARC_STATUS, KAM_LAZY_DOMAIN_SECURITY, KAM_NUMSUBJECT, RCVD_IN_BARRACUDACENTRAL, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=no 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> Cc: Florian Weimer <fweimer@redhat.com>, GNU C Library <libc-alpha@sourceware.org>, Andreas Schwab <schwab@suse.de>, Stepan Golosunov <stepan@golosunov.pp.ru>, Alistair Francis <alistair.francis@wdc.com> Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" <libc-alpha-bounces@sourceware.org> |
Message
Lukasz Majewski
July 7, 2020, 3:08 p.m. UTC
Please find this early RFC for converting 'futex' syscall based code (pthreads/nptl/sem/gai) to support 64 bit time. When applicable the futex_time64 syscall is used. The main purpose of this RFC is to assess if taken approach for conversion is correct and acceptable by the glibc community. Quesitons/issues: 1. This whole patch set shall be squashed into a single patch, otherwise, the glibc will not build between separate commits. I've divided it to separate patches on the purpose - to facilitate review. 2. Question about rewritting lll_* macros in lowlevel-*.h - I'm wondering if there is maybe a better way to do it. Please pay attention to the *_4 suffix. 3. What would be the best point in the glibc release cycle to apply this patch set as it convets the core functionality of the library? Just after the stable release? Lukasz Majewski (10): doc: Fix wording and formatting in ./support/README y2038: Convert timespec_* from posix-timer.h to be Y2038 safe y2038: Convert __lll_futex* functions to use futex_time64 when available y2038: Replace struct timespec with __timespec64 in futex-internal.h y2038: Convert pthread_* functions to support 64 bit time y2038: Convert sem_{timed|clock}wait to support 64 bit timeout y2038: Convert __lll_clocklock_wait function to support 64 bit time y2038: Convert aio_suspend to support 64 bit timeout y2038: Convert gai_suspend to support 64 bit timeout y2038: x86: Fix __lll_clocklock_elision to support 64 bit time nptl/lll_timedlock_wait.c | 6 +- nptl/pthreadP.h | 53 +++++++++++++- nptl/pthread_clockjoin.c | 22 +++++- nptl/pthread_cond_wait.c | 46 ++++++++++-- nptl/pthread_join_common.c | 11 +-- nptl/pthread_mutex_timedlock.c | 39 +++++++--- nptl/pthread_rwlock_clockrdlock.c | 21 +++++- nptl/pthread_rwlock_clockwrlock.c | 21 +++++- nptl/pthread_rwlock_common.c | 4 +- nptl/pthread_rwlock_timedrdlock.c | 21 +++++- nptl/pthread_rwlock_timedwrlock.c | 21 +++++- nptl/pthread_timedjoin.c | 20 +++++- nptl/sem_clockwait.c | 21 +++++- nptl/sem_timedwait.c | 18 ++++- nptl/sem_waitcommon.c | 4 +- nptl/semaphoreP.h | 12 ++++ resolv/gai_misc.h | 7 ++ resolv/gai_suspend.c | 33 +++++++-- support/README | 4 +- sysdeps/nptl/aio_misc.h | 11 ++- sysdeps/nptl/futex-internal.h | 10 +-- sysdeps/nptl/lowlevellock-futex.h | 80 +++++++++++++++++++-- sysdeps/nptl/lowlevellock.h | 2 +- sysdeps/pthread/aio_suspend.c | 36 ++++++++-- sysdeps/pthread/posix-timer.h | 11 +-- sysdeps/unix/sysv/linux/x86/elision-timed.c | 2 +- sysdeps/unix/sysv/linux/x86/lowlevellock.h | 2 +- 27 files changed, 462 insertions(+), 76 deletions(-)