From nobody Mon Feb 17 16:41:07 2025 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4YxT1b4zjZz5ns4T; Mon, 17 Feb 2025 16:41:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4YxT1b4L4vz45c0; Mon, 17 Feb 2025 16:41:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1739810467; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7v66nxGJ68aFj4+2XSHCJDDl23HOwK76y43VBmUHmr8=; b=VMf6JBtghFiKd7SfNFqJAxvSrOEAzP0w4IP6d3530wRWAIHr8AV7rD2qo0eOG2bQ/aONCx cXEt5TeU/XXg2ptnOoH6C/eMx0NCYj9jPtkQNvOWzlOK8EEfwFJW04187r/2JI7ZTNLYIs r3KI4OrsET6J3Lcnkmumr7vCKAenKpgy+rtAyeyCfmGnypcmSUb/qtCcGLP9oo/rNQCQ1K kusHXtCsxhD+mzKWBBcIjq86GZLqFuGZaGOy03o0yk6cG4WH7O/cXlWUhUZxFupC66pEtM 2G12M8eFJ0xTKDKSx6HknbQdR18ySbt4e7olyzbgkTjL6PBf8mtOXL9DLPGwEw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1739810467; a=rsa-sha256; cv=none; b=lscKU0Y67Uof7+JzqYdao9U8dIt558Anx5WMrTyqiz+2Qzb/qBQdzOWgIvRkZxuVoZQFEk +09cKThTbJl+jBzqRo0DoRjC+lsbKXVtll/sF0YG9bKUNP+Zar5lcermulNOgEBQjGkLLx hpED0+R/bBNlD90569zHbq0/bh+RpvUffGGzf7k8U5XyxRFuTu42Eq2VQxwsafKn/gxffk kgZSATaYXBEyqVFekUclB2MpaVc32OnTnacjlhrzF0QrVSGOIjzLE4iaE4s7nf174lcwWg hrOky/c9b99atARmQFMQE0/ksKoyCSwAVZxk4/Emuj4V5zWRsm6ysay9D0vThg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1739810467; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7v66nxGJ68aFj4+2XSHCJDDl23HOwK76y43VBmUHmr8=; b=AI+aqSU/vlAIBLfPHh3BHlU0aOBjqhi/1I5LQ8siYBsAiQMnZen37xHzJ6vvu0E3fiFvRc OvOdIW6yzjpIyo1QrAysthsFQt4Dhvq4RU6rLXbpgRUXipwSpjteae8v1o4IiUZ+zLPcIe CNdo5QPd6DiJ+pJ+zKYfQrZduJM/rU0uXDM3k0vCbFroKvfLp9KMiTzcMIWMltdQ7PMbCZ p8Z2FPoZV1MDkaB/OYymW4cgP2sHB+i3TBmneXgAYNr1u5dIzQnFEs/aFVAuFh2whavsF9 V8x0LUbalDnBw5gKg7aO5eM4t1eTSzlpeSEU0vUF3/srIbh/R494cxigu+34hw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4YxT1b3qbfzj7t; Mon, 17 Feb 2025 16:41:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 51HGf7EO094257; Mon, 17 Feb 2025 16:41:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 51HGf7d3094254; Mon, 17 Feb 2025 16:41:07 GMT (envelope-from git) Date: Mon, 17 Feb 2025 16:41:07 GMT Message-Id: <202502171641.51HGf7d3094254@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Bojan =?utf-8?Q?Novkovi=C4=87?= Subject: git: df436036e82b - main - umtx: Don't sleep after casueword32 failure in do_sem2_wake List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bnovkov X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: df436036e82b895a6233d803bc8bf14d2cfe90d7 Auto-Submitted: auto-generated The branch main has been updated by bnovkov: URL: https://cgit.FreeBSD.org/src/commit/?id=df436036e82b895a6233d803bc8bf14d2cfe90d7 commit df436036e82b895a6233d803bc8bf14d2cfe90d7 Author: Bojan Novković AuthorDate: 2025-01-30 15:10:04 +0000 Commit: Bojan Novković CommitDate: 2025-02-17 16:40:34 +0000 umtx: Don't sleep after casueword32 failure in do_sem2_wake When a casueword32 operation fails, 'do_sem2_wake' will call 'thread_check_susp' to avoid a potential livelock. However, it instructs 'thread_check_susp' to sleep while holding a previously busied umtxq key. This is explicitly discouraged by the comments in 'thread_check_susp' which state that a thread shouldn't sleep if it owns a kernel resource. Fix this by passing 'false' to 'thread_check_susp'. Reviewed by: kib PR: 282713 Differential Revision: https://reviews.freebsd.org/D48728 Sponsored by: Klara Inc. --- sys/kern/kern_umtx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c index a9294c324cb4..938dcf2ff1cb 100644 --- a/sys/kern/kern_umtx.c +++ b/sys/kern/kern_umtx.c @@ -3789,7 +3789,7 @@ do_sem2_wake(struct thread *td, struct _usem2 *sem) rv = casueword32(&sem->_count, count, &count, count & ~USEM_HAS_WAITERS); if (rv == 1) { - rv = thread_check_susp(td, true); + rv = thread_check_susp(td, false); if (rv != 0) break; }