From nobody Mon Jan 31 02:46:54 2022 X-Original-To: dev-commits-src-all@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 086DC197F4AF; Mon, 31 Jan 2022 02:46:55 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4JnCBk5w3Pz3FKM; Mon, 31 Jan 2022 02:46:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1643597214; 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=/xJMyjFh9sX8FqH53aqCKu7y0M4NQYUlSa7pRr+gFUs=; b=DZnSBfYIh+vTx/zse30RKDTKT9cdHrtjjzzrFsWOo9DU7CQVGgdL8G8ijWqYDpLDBziYgG kzybTlxKTVOSBnjr3KHOpoiou3+17ljfjCv36CYFduPPBzmb7Wf1GY8bB0MCY05SFsRpc0 mjeP39UkwNNeXitgOBt4shKuDvxJ+tz3J1XKc162tim3ROknkuxyeQXQ9d1Zxe4HkQe5Bs bRuuW4eYQ1CPON3tT8jm0sYYe3r6cdhuDRpNNFh8XIFU8B6J616K7TF46iOgnS2oDLeLE8 9xka93ko1jvyqVK2gZWwvsXKmIpBBXhMxWiHAZsd17vx27tZdTJ7Ehk8KjuJog== 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 A030C1493B; Mon, 31 Jan 2022 02:46:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 20V2ks0K009066; Mon, 31 Jan 2022 02:46:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 20V2kso9009065; Mon, 31 Jan 2022 02:46:54 GMT (envelope-from git) Date: Mon, 31 Jan 2022 02:46:54 GMT Message-Id: <202201310246.20V2kso9009065@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: 5875b94c7493 - main - buf_alloc(): lock the buffer with LK_NOWAIT List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 5875b94c74935affb47c7e059011f80ee2f6bf67 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1643597214; 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=/xJMyjFh9sX8FqH53aqCKu7y0M4NQYUlSa7pRr+gFUs=; b=DZbDCLCMVmPfph+7CjrwxHS4IMcVL3I+o7JfPPDs3NNfKmpOUMa4qyes8h82GIebJdAkAI 0qXxs3roJuBdX2DypHe4jEK6+z0m21Y9tigHzObgsUM5sNa7GWquhwds+1f9LVtU6MZtYL zirdTdsLBAkciyaLKkiTYRqEp5kOVi3RlNC+dQylaMux2X9A7ka+qbbxb65lXkLixmOHX7 sZvBzDFoUS0pNcLys4jlRP/1Hj3rC/zYVstoUbs+FbvCx/NuZ46Jyg1pSQoXQmdAacOKMS cRwaO1TchNXvHE47mfKWTp8EPt0ubkIIdFYoUVUsJxMnAVOIJDxosnkv41SyHw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1643597214; a=rsa-sha256; cv=none; b=g949t4AvJXzziGa04aE/+KF76Z6r5FIivVKEKfUulx21ie7FEC371P65WlHmIGCsnptqKf 9puUcxdqf9eqG/nANBNIrc/EKsOHBpoLunzDrFemKbsaVAd1QBlHiH4ScDTUTB8ouEk/sO 2eTj4V9WsL3CWwomHHDvhBsOXFDIBT3a45wkL2Bho5kuVy8S+DJFybB2WjhhGcWbI6fEoH m7Saru8ElMwQ8pq3mGp8nUL3m5h6frPgjJl6ZPza2PauEIr/RBxroJJ8vlAZmWlPhvcytD l1DYuYlGqdDROQ2ev/jpr33oM6cppo6h/k4KdHDm+nb/sNaNwlRgjbGjTO0ijA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=5875b94c74935affb47c7e059011f80ee2f6bf67 commit 5875b94c74935affb47c7e059011f80ee2f6bf67 Author: Konstantin Belousov AuthorDate: 2022-01-18 01:39:05 +0000 Commit: Konstantin Belousov CommitDate: 2022-01-31 02:46:21 +0000 buf_alloc(): lock the buffer with LK_NOWAIT The buffer must not be accessed by any other thread, it is freshly allocated. As such, LK_NOWAIT should be nop but also it prevents recording the order between the buffer lock and any other locks we might own in the call to getnewbuf(). In particular, if we own FFS snap lock, it should avoid triggering false positive warning. Reviewed by: markj, mckusick Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D34072 --- sys/kern/vfs_bio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/kern/vfs_bio.c b/sys/kern/vfs_bio.c index 0cf02a95729c..cdb080688874 100644 --- a/sys/kern/vfs_bio.c +++ b/sys/kern/vfs_bio.c @@ -1718,7 +1718,7 @@ buf_alloc(struct bufdomain *bd) if (freebufs == bd->bd_lofreebuffers) bufspace_daemon_wakeup(bd); - error = BUF_LOCK(bp, LK_EXCLUSIVE, NULL); + error = BUF_LOCK(bp, LK_EXCLUSIVE | LK_NOWAIT, NULL); KASSERT(error == 0, ("%s: BUF_LOCK on free buf %p: %d.", __func__, bp, error)); (void)error;