From nobody Sat Mar 12 12:14:32 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 54E2E1A0493D; Sat, 12 Mar 2022 12:14:33 +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 4KG1vD4FPkz3Mfj; Sat, 12 Mar 2022 12:14:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1647087272; 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=gTtuBqSkwQ4/9O4gldLlY3ryaqZWSjCK4hAVOAhjBtg=; b=hoWHycimoeeeocKEemlb2DIzudOCYHakDYjyakPpEfO1Yw2g+nnSII8DP8LhJjZoGXF25f 4XBZCjMGDwnPQU4yMaxdde5XCYZtrMVHaYJioYaI79DFLQgnX/N7z4vOHFFoezW2qrfKuJ fePi/LGfnCzd1qUJHWZ1i0sDk+QDCHp7b1kBD3crboXQJDy2A39xqaLHmC4JCHfPPpM6Z0 tk9rAeH2G8ver4+1KpKNpAsLsDwoOp+LPDGqJYrjBC5zhLiHxa+BvUWIFil1I1opkkrnQc +oxiCMRBY2Gm0Wq22Mbk1xHKl6iXkuXTc6IBX8nWVliz01t+KpulDhOqJOajrw== 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 5D0522C97F; Sat, 12 Mar 2022 12:14:32 +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 22CCEWRR078785; Sat, 12 Mar 2022 12:14:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 22CCEWnT078784; Sat, 12 Mar 2022 12:14:32 GMT (envelope-from git) Date: Sat, 12 Mar 2022 12:14:32 GMT Message-Id: <202203121214.22CCEWnT078784@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Guzik Subject: git: 66b177e1b433 - main - vfs: reduce spurious zeroing in VOP_STAT 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: mjg X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 66b177e1b4330f7b26bfb4d73bb4cc6581721cc9 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1647087272; 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=gTtuBqSkwQ4/9O4gldLlY3ryaqZWSjCK4hAVOAhjBtg=; b=jVqvRMg3dISKSIiLlfXcBUB7NsNOx3m5i4pKDhwZhmsFpTUWnvBI5XFnviUzGK7T5bymWQ itAWg7gKBc5xJ8HNO6l+imM/54bCMl0/WGZzZVyfgQi1LJRiCqyf1cYIhvJrhjZUjoKLzA VUPfQyM2QnwwzqK5qWqyX8gACxMk2NB2/Cxw1LlcYIdCcOo7xrZ9ET/zfuvrtbqXd7IRCo J39AVTWmU7Pqp6BdO3cZ6lPPSRc38ZT5J1df169LqeyigtQFv7vXJcvRs39/qDiE6AvRcp l52hl0ubXUs+s1U4E/+j1ZkGjDAHaskB8+nkeZXh8a0nw6oJUuwUeKaAHMts9g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1647087272; a=rsa-sha256; cv=none; b=XY4X768gLip4pl8Ew/8hzupTtpxv0q7bno12Ov9bWAXCw2rkFhx4yLGvBlDFsjO9E+lPew HMJRWBUceFkE7Irq8LWWeiV85ifpjvlRk3CYovOz5CtQ9zW8dv9wXNXk7dmUm50rKPTZc1 RDqGG0uZND/cBIlIgo+8tSnR/HHhwQ1SEK+HLgirhMVXtKYp57czmMIuw0i+5iFMnh4TMY Xzxf/ueXqsF1RztASPx+lZcMAiwCPtbjPpCKdSYdDX5k3A9VSusIbYcNP3ZxGzGecNDhSX b35Gilugc9U93F6l8dMjAnRbdQGyS8Du+x7dl0KVeeF3ADr0cJbNp4t0iiGIow== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mjg: URL: https://cgit.FreeBSD.org/src/commit/?id=66b177e1b4330f7b26bfb4d73bb4cc6581721cc9 commit 66b177e1b4330f7b26bfb4d73bb4cc6581721cc9 Author: Mateusz Guzik AuthorDate: 2022-03-12 11:49:17 +0000 Commit: Mateusz Guzik CommitDate: 2022-03-12 12:05:37 +0000 vfs: reduce spurious zeroing in VOP_STAT clang fails to take advantage of the fact that majority of the struct gets written to in the routine and decides to bzero the entire thing. Explicitly zero padding and spare fields, relying on KMSAN to catch problems should anything pop up later which also needs explicit zeroing. fstat on tmpfs (ops/s): before: 8216636 after: 8508033 --- sys/sys/vnode.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sys/sys/vnode.h b/sys/sys/vnode.h index f595029bdd14..7bd483d2e17c 100644 --- a/sys/sys/vnode.h +++ b/sys/sys/vnode.h @@ -970,8 +970,11 @@ void vop_rename_fail(struct vop_rename_args *ap); int _error; \ AUDIT_ARG_VNODE1(ap->a_vp); \ _error = mac_vnode_check_stat(_ap->a_active_cred, _ap->a_file_cred, _ap->a_vp);\ - if (__predict_true(_error == 0)) \ - bzero(_ap->a_sb, sizeof(*_ap->a_sb)); \ + if (__predict_true(_error == 0)) { \ + ap->a_sb->st_padding0 = 0; \ + ap->a_sb->st_padding1 = 0; \ + bzero(_ap->a_sb->st_spare, sizeof(_ap->a_sb->st_spare)); \ + } \ _error; \ })