From patchwork Thu May 4 04:54:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: develop--- via Libc-alpha X-Patchwork-Id: 55734 Return-Path: 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 D3D083856DDF for ; Thu, 4 May 2023 04:55:33 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D3D083856DDF DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1683176133; bh=aTZXG4q++9GGsJ7GQ2VYzz6G6h8VvZDK2a0KDoYRxsY=; h=To:Cc:Subject:Date:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=YqKtM3t8ZgLwbT+7y/hdqqYeibvZSokyVPLFpMZlxOKB8IaDEFswm5b1jwBOMPRv7 ASS68hRWINKIpQhi23ZUApd7uHD5UlLzT5gIIj4oOTLkXwUvfrLR60zT00gKu9C0w5 Fmh0aeudP+Fu1CZLE9kcgCE7+y1x8CiQO6YqKw4Y= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by sourceware.org (Postfix) with ESMTPS id C28233858C31 for ; Thu, 4 May 2023 04:55:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C28233858C31 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id C56B15C0462; Thu, 4 May 2023 00:55:08 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Thu, 04 May 2023 00:55:08 -0400 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrfedvledgkeekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvvefufffkofgggfestdekredtredttdenucfhrhhomhepmhgrlhhtvghs khgrrhhuphhkvgesfhgrshhtmhgrihhlrdhfmhenucggtffrrghtthgvrhhnpedvuddvff dtvefgkefgjeeuvdefffefleehheduveffjeeffedvffegheehkedtgeenucffohhmrghi nhepshhouhhrtggvfigrrhgvrdhorhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrg hrrghmpehmrghilhhfrhhomhepmhgrlhhtvghskhgrrhhuphhkvgesfhgrshhtmhgrihhl rdhfmh X-ME-Proxy: Feedback-ID: ifa6c408f:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 4 May 2023 00:55:08 -0400 (EDT) To: libc-alpha@sourceware.org Cc: Malte Skarupke Subject: [PATCH v2 0/9] Patch to fix glibc condition variable bug (BZ 25847) Date: Thu, 4 May 2023 00:54:54 -0400 Message-Id: <20230504045503.83276-1-malteskarupke@fastmail.fm> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Spam-Status: No, score=-6.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, 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.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: malteskarupke--- via Libc-alpha From: develop--- via Libc-alpha Reply-To: malteskarupke@fastmail.fm Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" From: Malte Skarupke This is v2 of the patches, v1 here: https://sourceware.org/pipermail/libc-alpha/2023-January/145023.html The only difference is using of release semantics in pthread_cond_common when writing to g_signals. Updating this one is a no-brainer because it was just incorrect. I did not update any other writes to g_signals because there is more of a debate there on whether pthread_cond_signal should synchronize with pthread_cond_wait. It does not in the old implementation, which relies on the fact that condition variables are always used together with mutexes. Frank Barrus (1): pthreads NPTL: lost wakeup fix 2 Malte Skarupke (8): nptl: Update comments and indentation for new condvar implementation nptl: Remove unnecessary catch-all-wake in condvar group switch nptl: Remove unnecessary quadruple check in pthread_cond_wait nptl: Remove g_refs from condition variables nptl: Use a single loop in pthread_cond_wait instaed of a nested loop nptl: Fix indentation nptl: rename __condvar_quiesce_and_switch_g1 nptl: Use all of g1_start and g_signals nptl/pthread_cond_broadcast.c | 8 +- nptl/pthread_cond_common.c | 109 ++-------- nptl/pthread_cond_signal.c | 19 +- nptl/pthread_cond_wait.c | 278 +++++------------------- nptl/tst-cond22.c | 12 +- sysdeps/nptl/bits/thread-shared-types.h | 4 +- sysdeps/nptl/pthread.h | 2 +- 7 files changed, 100 insertions(+), 332 deletions(-)