From owner-dev-commits-src-branches@freebsd.org Sat Apr 10 06:02:14 2021 Return-Path: Delivered-To: dev-commits-src-branches@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E235E5CF9D2; Sat, 10 Apr 2021 06:02:14 +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 4FHPXk46gyz4R52; Sat, 10 Apr 2021 06:02:14 +0000 (UTC) (envelope-from git@FreeBSD.org) 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 6B4F440A3; Sat, 10 Apr 2021 06:02:14 +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 13A62Eia015353; Sat, 10 Apr 2021 06:02:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13A62Ef3015352; Sat, 10 Apr 2021 06:02:14 GMT (envelope-from git) Date: Sat, 10 Apr 2021 06:02:14 GMT Message-Id: <202104100602.13A62Ef3015352@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mateusz Guzik Subject: git: e9fc871b0dec - stable/13 - vfs: replace vfs_smr_quiesce with vfs_smr_synchronize 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/stable/13 X-Git-Reftype: branch X-Git-Commit: e9fc871b0dec47b943dd2d09688aa9fe867bfc9b Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-branches@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commits to the stable branches of the FreeBSD src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 10 Apr 2021 06:02:15 -0000 The branch stable/13 has been updated by mjg: URL: https://cgit.FreeBSD.org/src/commit/?id=e9fc871b0dec47b943dd2d09688aa9fe867bfc9b commit e9fc871b0dec47b943dd2d09688aa9fe867bfc9b Author: Mateusz Guzik AuthorDate: 2021-04-08 07:08:41 +0000 Commit: Mateusz Guzik CommitDate: 2021-04-10 05:57:56 +0000 vfs: replace vfs_smr_quiesce with vfs_smr_synchronize This ends up using a smr specific method. Suggested by: markj Tested by: pho (cherry picked from commit 72b3b5a941927f7a79611131f144eeb2dc9143c9) --- sys/kern/vfs_cache.c | 12 ++++++------ sys/sys/vnode.h | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/sys/kern/vfs_cache.c b/sys/kern/vfs_cache.c index ddeb87e269d7..b5fa21eea887 100644 --- a/sys/kern/vfs_cache.c +++ b/sys/kern/vfs_cache.c @@ -2678,7 +2678,7 @@ cache_vnode_init(struct vnode *vp) * * This will force a fs lookup. * - * Synchronisation is done in 2 steps, calling vfs_smr_quiesce each time + * Synchronisation is done in 2 steps, calling vfs_smr_synchronize each time * to observe all CPUs not performing the lookup. */ static void @@ -2694,14 +2694,14 @@ cache_changesize_set_temp(struct nchashhead *temptbl, u_long temphash) */ atomic_store_long(&nchash, temphash); atomic_thread_fence_rel(); - vfs_smr_quiesce(); + vfs_smr_synchronize(); /* * At this point everyone sees the updated hash value, but they still * see the old table. */ atomic_store_ptr(&nchashtbl, temptbl); atomic_thread_fence_rel(); - vfs_smr_quiesce(); + vfs_smr_synchronize(); /* * At this point everyone sees the updated table pointer and size pair. */ @@ -2724,14 +2724,14 @@ cache_changesize_set_new(struct nchashhead *new_tbl, u_long new_hash) */ atomic_store_ptr(&nchashtbl, new_tbl); atomic_thread_fence_rel(); - vfs_smr_quiesce(); + vfs_smr_synchronize(); /* * At this point everyone sees the updated pointer value, but they * still see the old size. */ atomic_store_long(&nchash, new_hash); atomic_thread_fence_rel(); - vfs_smr_quiesce(); + vfs_smr_synchronize(); /* * At this point everyone sees the updated table pointer and size pair. */ @@ -3876,7 +3876,7 @@ cache_fplookup_lockout(void) if (on) { atomic_store_char(&cache_fast_lookup_enabled, false); atomic_thread_fence_rel(); - vfs_smr_quiesce(); + vfs_smr_synchronize(); } } diff --git a/sys/sys/vnode.h b/sys/sys/vnode.h index e37302aeb379..d26c8aa70d8e 100644 --- a/sys/sys/vnode.h +++ b/sys/sys/vnode.h @@ -1109,7 +1109,7 @@ int vn_dir_check_exec(struct vnode *vp, struct componentname *cnp); #define VFS_SMR() vfs_smr #define vfs_smr_enter() smr_enter(VFS_SMR()) #define vfs_smr_exit() smr_exit(VFS_SMR()) -#define vfs_smr_quiesce() quiesce_all_critical() +#define vfs_smr_synchronize() smr_synchronize(VFS_SMR()) #define vfs_smr_entered_load(ptr) smr_entered_load((ptr), VFS_SMR()) #define VFS_SMR_ASSERT_ENTERED() SMR_ASSERT_ENTERED(VFS_SMR()) #define VFS_SMR_ASSERT_NOT_ENTERED() SMR_ASSERT_NOT_ENTERED(VFS_SMR())