From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.7 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C10E2C83B86 for ; Fri, 9 Oct 2020 19:51:52 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 6ED0422282 for ; Fri, 9 Oct 2020 19:51:52 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6ED0422282 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 3B34B6B00A1; Fri, 9 Oct 2020 15:51:51 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3399B6B009F; Fri, 9 Oct 2020 15:51:51 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 167736B00A1; Fri, 9 Oct 2020 15:51:51 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0216.hostedemail.com [216.40.44.216]) by kanga.kvack.org (Postfix) with ESMTP id D1C816B0098 for ; Fri, 9 Oct 2020 15:51:50 -0400 (EDT) Received: from smtpin15.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 70B5F1EE6 for ; Fri, 9 Oct 2020 19:51:50 +0000 (UTC) X-FDA: 77353432380.15.value69_4413e49271e3 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin15.hostedemail.com (Postfix) with ESMTP id 42CB01814B0C1; Fri, 9 Oct 2020 19:51:50 +0000 (UTC) X-HE-Tag: value69_4413e49271e3 X-Filterd-Recvd-Size: 8800 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by imf03.hostedemail.com (Postfix) with ESMTP; Fri, 9 Oct 2020 19:51:48 +0000 (UTC) IronPort-SDR: i3Cl3g49iOfIHaPi8WPoJ/UkwgZga/gA3tN75F28014Uky3CMWpyZXvg4G7h60CUpr18imQelg niz4DVVjmOlw== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="162067893" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="162067893" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:47 -0700 IronPort-SDR: vdHXKYZiEWUJ0fN4OExd2VqdiXE9aYdlaLF6p7mD2X3g24JwvvcNWIkVlfM1uW7/GA3kn+ap6+ Rex2Wyxl2AaA== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="298531066" Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:47 -0700 From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Ryusuke Konishi , x86@kernel.org, Dave Hansen , Dan Williams , Fenghua Yu , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-nvdimm@lists.01.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, kexec@lists.infradead.org, linux-bcache@vger.kernel.org, linux-mtd@lists.infradead.org, devel@driverdev.osuosl.org, linux-efi@vger.kernel.org, linux-mmc@vger.kernel.org, linux-scsi@vger.kernel.org, target-devel@vger.kernel.org, linux-nfs@vger.kernel.org, ceph-devel@vger.kernel.org, linux-ext4@vger.kernel.org, linux-aio@kvack.org, io-uring@vger.kernel.org, linux-erofs@lists.ozlabs.org, linux-um@lists.infradead.org, linux-ntfs-dev@lists.sourceforge.net, reiserfs-devel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, linux-nilfs@vger.kernel.org, cluster-devel@redhat.com, ecryptfs@vger.kernel.org, linux-cifs@vger.kernel.org, linux-btrfs@vger.kernel.org, linux-afs@lists.infradead.org, linux-rdma@vger.kernel.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, drbd-dev@lists.linbit.com, linux-block@vger.kernel.org, xen-devel@lists.xenproject.org, linux-cachefs@redhat.com, samba-technical@lists.samba.org, intel-wired-lan@lists.osuosl.org Subject: [PATCH RFC PKS/PMEM 17/58] fs/nilfs2: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:49:52 -0700 Message-Id: <20201009195033.3208459-18-ira.weiny@intel.com> X-Mailer: git-send-email 2.28.0.rc0.12.gb6a658bd00c9 In-Reply-To: <20201009195033.3208459-1-ira.weiny@intel.com> References: <20201009195033.3208459-1-ira.weiny@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: From: Ira Weiny The kmap() calls in this FS are localized to a single thread. To avoid the over head of global PKRS updates use the new kmap_thread() call. Cc: Ryusuke Konishi Signed-off-by: Ira Weiny --- fs/nilfs2/alloc.c | 34 +++++++++++++++++----------------- fs/nilfs2/cpfile.c | 4 ++-- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/fs/nilfs2/alloc.c b/fs/nilfs2/alloc.c index adf3bb0a8048..2aa4c34094ef 100644 --- a/fs/nilfs2/alloc.c +++ b/fs/nilfs2/alloc.c @@ -524,7 +524,7 @@ int nilfs_palloc_prepare_alloc_entry(struct inode *in= ode, ret =3D nilfs_palloc_get_desc_block(inode, group, 1, &desc_bh); if (ret < 0) return ret; - desc_kaddr =3D kmap(desc_bh->b_page); + desc_kaddr =3D kmap_thread(desc_bh->b_page); desc =3D nilfs_palloc_block_get_group_desc( inode, group, desc_bh, desc_kaddr); n =3D nilfs_palloc_rest_groups_in_desc_block(inode, group, @@ -536,7 +536,7 @@ int nilfs_palloc_prepare_alloc_entry(struct inode *in= ode, inode, group, 1, &bitmap_bh); if (ret < 0) goto out_desc; - bitmap_kaddr =3D kmap(bitmap_bh->b_page); + bitmap_kaddr =3D kmap_thread(bitmap_bh->b_page); bitmap =3D bitmap_kaddr + bh_offset(bitmap_bh); pos =3D nilfs_palloc_find_available_slot( bitmap, group_offset, @@ -547,21 +547,21 @@ int nilfs_palloc_prepare_alloc_entry(struct inode *= inode, desc, lock, -1); req->pr_entry_nr =3D entries_per_group * group + pos; - kunmap(desc_bh->b_page); - kunmap(bitmap_bh->b_page); + kunmap_thread(desc_bh->b_page); + kunmap_thread(bitmap_bh->b_page); =20 req->pr_desc_bh =3D desc_bh; req->pr_bitmap_bh =3D bitmap_bh; return 0; } - kunmap(bitmap_bh->b_page); + kunmap_thread(bitmap_bh->b_page); brelse(bitmap_bh); } =20 group_offset =3D 0; } =20 - kunmap(desc_bh->b_page); + kunmap_thread(desc_bh->b_page); brelse(desc_bh); } =20 @@ -569,7 +569,7 @@ int nilfs_palloc_prepare_alloc_entry(struct inode *in= ode, return -ENOSPC; =20 out_desc: - kunmap(desc_bh->b_page); + kunmap_thread(desc_bh->b_page); brelse(desc_bh); return ret; } @@ -605,10 +605,10 @@ void nilfs_palloc_commit_free_entry(struct inode *i= node, spinlock_t *lock; =20 group =3D nilfs_palloc_group(inode, req->pr_entry_nr, &group_offset); - desc_kaddr =3D kmap(req->pr_desc_bh->b_page); + desc_kaddr =3D kmap_thread(req->pr_desc_bh->b_page); desc =3D nilfs_palloc_block_get_group_desc(inode, group, req->pr_desc_bh, desc_kaddr); - bitmap_kaddr =3D kmap(req->pr_bitmap_bh->b_page); + bitmap_kaddr =3D kmap_thread(req->pr_bitmap_bh->b_page); bitmap =3D bitmap_kaddr + bh_offset(req->pr_bitmap_bh); lock =3D nilfs_mdt_bgl_lock(inode, group); =20 @@ -620,8 +620,8 @@ void nilfs_palloc_commit_free_entry(struct inode *ino= de, else nilfs_palloc_group_desc_add_entries(desc, lock, 1); =20 - kunmap(req->pr_bitmap_bh->b_page); - kunmap(req->pr_desc_bh->b_page); + kunmap_thread(req->pr_bitmap_bh->b_page); + kunmap_thread(req->pr_desc_bh->b_page); =20 mark_buffer_dirty(req->pr_desc_bh); mark_buffer_dirty(req->pr_bitmap_bh); @@ -646,10 +646,10 @@ void nilfs_palloc_abort_alloc_entry(struct inode *i= node, spinlock_t *lock; =20 group =3D nilfs_palloc_group(inode, req->pr_entry_nr, &group_offset); - desc_kaddr =3D kmap(req->pr_desc_bh->b_page); + desc_kaddr =3D kmap_thread(req->pr_desc_bh->b_page); desc =3D nilfs_palloc_block_get_group_desc(inode, group, req->pr_desc_bh, desc_kaddr); - bitmap_kaddr =3D kmap(req->pr_bitmap_bh->b_page); + bitmap_kaddr =3D kmap_thread(req->pr_bitmap_bh->b_page); bitmap =3D bitmap_kaddr + bh_offset(req->pr_bitmap_bh); lock =3D nilfs_mdt_bgl_lock(inode, group); =20 @@ -661,8 +661,8 @@ void nilfs_palloc_abort_alloc_entry(struct inode *ino= de, else nilfs_palloc_group_desc_add_entries(desc, lock, 1); =20 - kunmap(req->pr_bitmap_bh->b_page); - kunmap(req->pr_desc_bh->b_page); + kunmap_thread(req->pr_bitmap_bh->b_page); + kunmap_thread(req->pr_desc_bh->b_page); =20 brelse(req->pr_bitmap_bh); brelse(req->pr_desc_bh); @@ -754,7 +754,7 @@ int nilfs_palloc_freev(struct inode *inode, __u64 *en= try_nrs, size_t nitems) /* Get the first entry number of the group */ group_min_nr =3D (__u64)group * epg; =20 - bitmap_kaddr =3D kmap(bitmap_bh->b_page); + bitmap_kaddr =3D kmap_thread(bitmap_bh->b_page); bitmap =3D bitmap_kaddr + bh_offset(bitmap_bh); lock =3D nilfs_mdt_bgl_lock(inode, group); =20 @@ -800,7 +800,7 @@ int nilfs_palloc_freev(struct inode *inode, __u64 *en= try_nrs, size_t nitems) entry_start =3D rounddown(group_offset, epb); } while (true); =20 - kunmap(bitmap_bh->b_page); + kunmap_thread(bitmap_bh->b_page); mark_buffer_dirty(bitmap_bh); brelse(bitmap_bh); =20 diff --git a/fs/nilfs2/cpfile.c b/fs/nilfs2/cpfile.c index 86d4d850d130..402ab8bfce29 100644 --- a/fs/nilfs2/cpfile.c +++ b/fs/nilfs2/cpfile.c @@ -235,11 +235,11 @@ int nilfs_cpfile_get_checkpoint(struct inode *cpfil= e, ret =3D nilfs_cpfile_get_checkpoint_block(cpfile, cno, create, &cp_bh); if (ret < 0) goto out_header; - kaddr =3D kmap(cp_bh->b_page); + kaddr =3D kmap_thread(cp_bh->b_page); cp =3D nilfs_cpfile_block_get_checkpoint(cpfile, cno, cp_bh, kaddr); if (nilfs_checkpoint_invalid(cp)) { if (!create) { - kunmap(cp_bh->b_page); + kunmap_thread(cp_bh->b_page); brelse(cp_bh); ret =3D -ENOENT; goto out_header; --=20 2.28.0.rc0.12.gb6a658bd00c9