From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273084; cv=none; d=zohomail.com; s=zohoarc; b=jOIMd2Jncs3UKJ06qD4nZFuck0ON6g/SK6FuB8QG81m9PscPc1+yKNu32AsZ1xQLJ+gN9K3+ysKELUg55pndtvriMcZPhn8weDdm3QcvaBbgOFh/EuDx7uyz7dx5ZJtBVhbTrS/OT1vDp6OebtEnc4KeH2lQkGevgujM4DTcYqM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273084; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=WtvYdAwF2d4KPs9UAW+6lv1+pENJFWimjOdMjg6arsY=; b=MwZPm7kmdI+22qW5HGqAqCrNQDlDHGtg1MPhPo8g6s3Yr7cB/F3S6LUAGT78Ln9fNB9E0NXnmkF7vwMOTXRQNlfXsUruntYOsUDAITugoYSDFuMsDvGDxxMbua/lOtyw/7WHLQKm4msuzewLW3Hdw+5nPjQ9Ih1QUQJJty9sMuI= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273084125148.29919126780703; Fri, 9 Oct 2020 12:51:24 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5047.12893 (Exim 4.92) (envelope-from ) id 1kQyPk-000186-GD; Fri, 09 Oct 2020 19:50:52 +0000 Received: by outflank-mailman (output) from mailman id 5047.12893; Fri, 09 Oct 2020 19:50:52 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyPk-00017z-CC; Fri, 09 Oct 2020 19:50:52 +0000 Received: by outflank-mailman (input) for mailman id 5047; Fri, 09 Oct 2020 19:50:51 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyPi-00017t-TP for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:50:50 +0000 Received: from mga09.intel.com (unknown [134.134.136.24]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 60c96da0-c715-4d4e-8d52-8466329b7084; Fri, 09 Oct 2020 19:50:48 +0000 (UTC) Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:50:46 -0700 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:50:46 -0700 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyPi-00017t-TP for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:50:50 +0000 Received: from mga09.intel.com (unknown [134.134.136.24]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 60c96da0-c715-4d4e-8d52-8466329b7084; Fri, 09 Oct 2020 19:50:48 +0000 (UTC) Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:50:46 -0700 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:50:46 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 60c96da0-c715-4d4e-8d52-8466329b7084 IronPort-SDR: aw8sfLkmi4c3ekkTAJj2we0xzco62FXv6FoN/FoZXqSZzZKvEosMmPZVBXEqVdUXVCHW4gkGcC eJWxftTpOzPw== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="165642809" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="165642809" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: qnBWOjzlCrAn0iz4juA1IxPDmIdlUS8zYMFKRiVxpP3UruuZtN+Up+nA/7WPjpw84o9yPhVhmH jUXVTF6t7/+g== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="298530884" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , 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 01/58] x86/pks: Add a global pkrs option Date: Fri, 9 Oct 2020 12:49:36 -0700 Message-Id: <20201009195033.3208459-2-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny Some users, such as kmap(), sometimes requires PKS to be global. However, updating all CPUs, and worse yet all threads is expensive. Introduce a global PKRS state which is checked at critical times to allow the state to enable access when global PKS is required. To accomplish this with minimal locking; the code is carefully designed with the following key concepts. 1) Borrow the idea of lazy TLB invalidations from the fault handler code. When enabling PKS access we anticipate that other threads are not yet running. However, if they are we catch the fault and clean up the MSR value. 2) When disabling PKS access we force all MSR values across all CPU's. This is required to block access as soon as possible.[1] However, it is key that we never attempt to update the per-task PKS values directly. See next point. 3) Per-task PKS values never get updated with global PKS values. This is key to prevent locking requirements and a nearly intractable problem of trying to update every task in the system. Here are a few key points. 3a) The MSR value can be updated with the global PKS value if that global value happened to change while the task was running. 3b) If the task was sleeping while the global PKS was updated then the global value is added in when task's are scheduled. 3c) If the global PKS value restricts access the MSR is updated as soon as possible[1] and the thread value is not updated which ensures the thread does not retain the elevated privileges after a context switch. 4) Follow on patches must be careful to preserve the separation of the thread PKRS value and the MSR value. 5) Access Disable on any individual pkey is turned into (Access Disable | Write Disable) to facilitate faster integration of the global value into the thread local MSR through a simple '&' operation. Doing otherwise would result in complicated individual bit manipulation for each pkey. [1] There is a race condition which is ignored which is required for performance issues. This potentially allows access to a thread until the end of it's time slice. After the context switch the global value will be restored. Signed-off-by: Ira Weiny --- Documentation/core-api/protection-keys.rst | 11 +- arch/x86/entry/common.c | 7 + arch/x86/include/asm/pkeys.h | 6 +- arch/x86/include/asm/pkeys_common.h | 8 +- arch/x86/kernel/process.c | 74 +++++++- arch/x86/mm/fault.c | 189 ++++++++++++++++----- arch/x86/mm/pkeys.c | 88 ++++++++-- include/linux/pkeys.h | 6 +- lib/pks/pks_test.c | 16 +- 9 files changed, 329 insertions(+), 76 deletions(-) diff --git a/Documentation/core-api/protection-keys.rst b/Documentation/cor= e-api/protection-keys.rst index c60366921d60..9e8a98653e13 100644 --- a/Documentation/core-api/protection-keys.rst +++ b/Documentation/core-api/protection-keys.rst @@ -121,9 +121,9 @@ mapping adds that mapping to the protection domain. int pks_key_alloc(const char * const pkey_user); #define PAGE_KERNEL_PKEY(pkey) #define _PAGE_KEY(pkey) - void pks_mknoaccess(int pkey); - void pks_mkread(int pkey); - void pks_mkrdwr(int pkey); + void pks_mknoaccess(int pkey, bool global); + void pks_mkread(int pkey, bool global); + void pks_mkrdwr(int pkey, bool global); void pks_key_free(int pkey); =20 pks_key_alloc() allocates keys dynamically to allow better use of the limi= ted @@ -141,7 +141,10 @@ _PAGE_KEY(). The pks_mk*() family of calls allows kernel users the ability to change the protections for the domain identified by the pkey specified. 3 states are available pks_mknoaccess(), pks_mkread(), and pks_mkrdwr() which set the a= ccess -to none, read, and read/write respectively. +to none, read, and read/write respectively. 'global' specifies that the +protection should be set across all threads (logical CPU's) not just the +current running thread/CPU. This increases the overhead of PKS and lessen= s the +protection so it should be used sparingly. =20 Finally, pks_key_free() allows a user to return the key to the allocator f= or use by others. diff --git a/arch/x86/entry/common.c b/arch/x86/entry/common.c index 324a8fd5ac10..86ad32e0095e 100644 --- a/arch/x86/entry/common.c +++ b/arch/x86/entry/common.c @@ -261,12 +261,19 @@ noinstr void idtentry_exit_nmi(struct pt_regs *regs, = irqentry_state_t *irq_state * current running value and set the default PKRS value for the duration o= f the * exception. Thus preventing exception handlers from having the elevated * access of the interrupted task. + * + * NOTE That the thread saved PKRS must be preserved separately to ensure + * global overrides do not 'stick' on a thread. */ noinstr void irq_save_pkrs(irqentry_state_t *state) { if (!cpu_feature_enabled(X86_FEATURE_PKS)) return; =20 + /* + * The thread_pkrs must be maintained separately to prevent global + * overrides from 'sticking' on a thread. + */ state->thread_pkrs =3D current->thread.saved_pkrs; state->pkrs =3D this_cpu_read(pkrs_cache); write_pkrs(INIT_PKRS_VALUE); diff --git a/arch/x86/include/asm/pkeys.h b/arch/x86/include/asm/pkeys.h index 79952216474e..cae0153a5480 100644 --- a/arch/x86/include/asm/pkeys.h +++ b/arch/x86/include/asm/pkeys.h @@ -143,9 +143,9 @@ u32 update_pkey_val(u32 pk_reg, int pkey, unsigned int = flags); int pks_key_alloc(const char *const pkey_user); void pks_key_free(int pkey); =20 -void pks_mknoaccess(int pkey); -void pks_mkread(int pkey); -void pks_mkrdwr(int pkey); +void pks_mknoaccess(int pkey, bool global); +void pks_mkread(int pkey, bool global); +void pks_mkrdwr(int pkey, bool global); =20 #endif /* CONFIG_ARCH_HAS_SUPERVISOR_PKEYS */ =20 diff --git a/arch/x86/include/asm/pkeys_common.h b/arch/x86/include/asm/pke= ys_common.h index 8961e2ddd6ff..e380679ba1bb 100644 --- a/arch/x86/include/asm/pkeys_common.h +++ b/arch/x86/include/asm/pkeys_common.h @@ -6,7 +6,12 @@ #define PKR_WD_BIT 0x2 #define PKR_BITS_PER_PKEY 2 =20 -#define PKR_AD_KEY(pkey) (PKR_AD_BIT << ((pkey) * PKR_BITS_PER_PKEY)) +/* + * We must define 11b as the default to make global overrides efficient. + * See arch/x86/kernel/process.c where the global pkrs is factored in duri= ng + * context switch. + */ +#define PKR_AD_KEY(pkey) ((PKR_WD_BIT | PKR_AD_BIT) << ((pkey) * PKR_BITS_= PER_PKEY)) =20 /* * Define a default PKRS value for each task. @@ -27,6 +32,7 @@ #define PKS_NUM_KEYS 16 =20 #ifdef CONFIG_ARCH_HAS_SUPERVISOR_PKEYS +extern u32 pkrs_global_cache; DECLARE_PER_CPU(u32, pkrs_cache); noinstr void write_pkrs(u32 new_pkrs); #else diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c index eb3a95a69392..58edd162d9cb 100644 --- a/arch/x86/kernel/process.c +++ b/arch/x86/kernel/process.c @@ -43,7 +43,7 @@ #include #include #include -#include +#include =20 #include "process.h" =20 @@ -189,15 +189,83 @@ int copy_thread(unsigned long clone_flags, unsigned l= ong sp, unsigned long arg, } =20 #ifdef CONFIG_ARCH_HAS_SUPERVISOR_PKEYS -DECLARE_PER_CPU(u32, pkrs_cache); static inline void pks_init_task(struct task_struct *tsk) { /* New tasks get the most restrictive PKRS value */ tsk->thread.saved_pkrs =3D INIT_PKRS_VALUE; } + +extern u32 pkrs_global_cache; + +/** + * The global PKRS value can only increase access. Because 01b and 11b bo= th + * disable access. The following truth table is our desired result for ea= ch of + * the pkeys when we add in the global permissions. + * + * 00 R/W - Write enabled (all access) + * 10 Read - write disabled (Read only) + * 01 NO Acc - access disabled + * 11 NO Acc - also access disabled + * + * local global desired required + * result operation + * 00 00 00 & + * 00 10 00 & + * 00 01 00 & + * 00 11 00 & + * + * 10 00 00 & + * 10 10 10 & + * 10 01 10 ^ special case + * 10 11 10 & + * + * 01 00 00 & + * 01 10 10 ^ special case + * 01 01 01 & + * 01 11 01 & + * + * 11 00 00 & + * 11 10 10 & + * 11 01 01 & + * 11 11 11 & + * + * In order to eliminate the need to loop through each pkey and deal with = the 2 + * above special cases we force all 01b values to 11b through the API thus + * resulting in the simplified truth table below. + * + * 00 R/W - Write enabled (all access) + * 10 Read - write disabled (Read only) + * 01 NO Acc - access disabled + * (Not allowed in the API always use 11) + * 11 NO Acc - access disabled + * + * local global desired effective + * result operation + * 00 00 00 & + * 00 10 00 & + * 00 11 00 & + * 00 11 00 & + * + * 10 00 00 & + * 10 10 10 & + * 10 11 10 & + * 10 11 10 & + * + * 11 00 00 & + * 11 10 10 & + * 11 11 11 & + * 11 11 11 & + * + * 11 00 00 & + * 11 10 10 & + * 11 11 11 & + * 11 11 11 & + * + * Thus we can simply 'AND' in the global pkrs value. + */ static inline void pks_sched_in(void) { - write_pkrs(current->thread.saved_pkrs); + write_pkrs(current->thread.saved_pkrs & pkrs_global_cache); } #else static inline void pks_init_task(struct task_struct *tsk) { } diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c index dd5af9399131..4b4ff9efa298 100644 --- a/arch/x86/mm/fault.c +++ b/arch/x86/mm/fault.c @@ -32,6 +32,8 @@ #include /* VMALLOC_START, ... */ #include /* kvm_handle_async_pf */ =20 +#include + #define CREATE_TRACE_POINTS #include =20 @@ -995,9 +997,124 @@ mm_fault_error(struct pt_regs *regs, unsigned long er= ror_code, } } =20 -static int spurious_kernel_fault_check(unsigned long error_code, pte_t *pt= e) +#ifdef CONFIG_ARCH_HAS_SUPERVISOR_PKEYS +/* + * check if we have had a 'global' pkey update. If so, handle this like a= lazy + * TLB; fix up the local MSR and return + * + * See arch/x86/kernel/process.c for the explanation on how global is hand= led + * with a simple '&' operation. + * + * Also we don't update the current thread saved_pkrs because we don't wan= t the + * global value to 'stick' with the thread. Rather we want this to be val= id + * only for the remainder of this time slice. For subsequent time slices = the + * global value will be factored in during schedule; see arch/x86/kernel/p= rocess.c + * + * Finally we have a trade off between performance and forcing a restricti= on of + * permissions across all CPUs on a global update. + * + * Given the following window. + * + * Global PKRS CPU #0 CPU #1 + * cache MSR MSR + * + * | | | + * Global |----------\ | | + * Restriction | ------------> read | = <=3D T1 + * (on CPU #0) | | | | + * ------\ | | | | + * ------>| | | | + * | | | | + * Update CPU #1 |--------\ | | | + * | --------------\ | | + * | | --|------------>| + * Global remote | | | | + * MSR update | | | | + * (CPU 2-n) | | | | + * |-----> CPU's | v | + * local | (2-N) | local --\ | + * update | | update ------>|(Update = <=3D T2 + * ----------------\ | | Incorrect) + * | -----------\ | | + * | --->|(Update OK) | + * Context | | | + * Switch |----------\ | | + * | ------------> read | + * | | | | + * | | | | + * | | v | + * | | local --\ | + * | | update ------>|(Update + * | | | Correct) + * + * We allow for a larger window of the global pkey being open because glob= al + * updates should be rare and we don't want to burden normal faults with h= aving + * to read the global state. + */ +static bool global_pkey_is_enabled(pte_t *pte, bool is_write, + irqentry_state_t *irq_state) +{ + u8 pkey =3D pte_flags_pkey(pte->pte); + int pkey_shift =3D pkey * PKR_BITS_PER_PKEY; + u32 mask =3D (((1 << PKR_BITS_PER_PKEY) - 1) << pkey_shift); + u32 global =3D READ_ONCE(pkrs_global_cache); + u32 val; + + /* Return early if global access is not valid */ + val =3D (global & mask) >> pkey_shift; + if ((val & PKR_AD_BIT) || (is_write && (val & PKR_WD_BIT))) + return false; + + irq_state->pkrs &=3D global; + + return true; +} + +#else /* !CONFIG_ARCH_HAS_SUPERVISOR_PKEYS */ +__always_inline bool global_pkey_is_enabled(pte_t *pte, bool is_write, + irqentry_state_t *irq_state) +{ + return false; +} +#endif /* CONFIG_ARCH_HAS_SUPERVISOR_PKEYS */ + +#ifdef CONFIG_PKS_TESTING +bool pks_test_callback(irqentry_state_t *irq_state); +static bool handle_pks_testing(unsigned long hw_error_code, irqentry_state= _t *irq_state) +{ + /* + * If we get a protection key exception it could be because we + * are running the PKS test. If so, pks_test_callback() will + * clear the protection mechanism and return true to indicate + * the fault was handled + */ + return pks_test_callback(irq_state); +} +#else /* !CONFIG_PKS_TESTING */ +static bool handle_pks_testing(unsigned long hw_error_code, irqentry_state= _t *irq_state) +{ + return false; +} +#endif /* CONFIG_PKS_TESTING */ + + +static int spurious_kernel_fault_check(unsigned long error_code, pte_t *pt= e, + irqentry_state_t *irq_state) { - if ((error_code & X86_PF_WRITE) && !pte_write(*pte)) + bool is_write =3D (error_code & X86_PF_WRITE); + + if (IS_ENABLED(CONFIG_ARCH_HAS_SUPERVISOR_PKEYS) && + error_code & X86_PF_PK) { + if (global_pkey_is_enabled(pte, is_write, irq_state)) + return 1; + + if (handle_pks_testing(error_code, irq_state)) + return 1; + + return 0; + } + + if (is_write && !pte_write(*pte)) return 0; =20 if ((error_code & X86_PF_INSTR) && !pte_exec(*pte)) @@ -1007,7 +1124,7 @@ static int spurious_kernel_fault_check(unsigned long = error_code, pte_t *pte) } =20 /* - * Handle a spurious fault caused by a stale TLB entry. + * Handle a spurious fault caused by a stale TLB entry or a lazy PKRS upda= te. * * This allows us to lazily refresh the TLB when increasing the * permissions of a kernel page (RO -> RW or NX -> X). Doing it @@ -1022,13 +1139,19 @@ static int spurious_kernel_fault_check(unsigned lon= g error_code, pte_t *pte) * There are no security implications to leaving a stale TLB when * increasing the permissions on a page. * + * Similarly, PKRS increases in permissions are done on a thread local lev= el. + * But if the caller indicates the permission should be allowd globaly we = can + * lazily update only those threads which fault and avoid a global IPI MSR + * update. + * * Returns non-zero if a spurious fault was handled, zero otherwise. * * See Intel Developer's Manual Vol 3 Section 4.10.4.3, bullet 3 * (Optional Invalidation). */ static noinline int -spurious_kernel_fault(unsigned long error_code, unsigned long address) +spurious_kernel_fault(unsigned long error_code, unsigned long address, + irqentry_state_t *irq_state) { pgd_t *pgd; p4d_t *p4d; @@ -1038,17 +1161,19 @@ spurious_kernel_fault(unsigned long error_code, uns= igned long address) int ret; =20 /* - * Only writes to RO or instruction fetches from NX may cause - * spurious faults. + * Only PKey faults or writes to RO or instruction fetches from NX may + * cause spurious faults. * * These could be from user or supervisor accesses but the TLB * is only lazily flushed after a kernel mapping protection * change, so user accesses are not expected to cause spurious * faults. */ - if (error_code !=3D (X86_PF_WRITE | X86_PF_PROT) && - error_code !=3D (X86_PF_INSTR | X86_PF_PROT)) - return 0; + if (!(error_code & X86_PF_PK)) { + if (error_code !=3D (X86_PF_WRITE | X86_PF_PROT) && + error_code !=3D (X86_PF_INSTR | X86_PF_PROT)) + return 0; + } =20 pgd =3D init_mm.pgd + pgd_index(address); if (!pgd_present(*pgd)) @@ -1059,27 +1184,31 @@ spurious_kernel_fault(unsigned long error_code, uns= igned long address) return 0; =20 if (p4d_large(*p4d)) - return spurious_kernel_fault_check(error_code, (pte_t *) p4d); + return spurious_kernel_fault_check(error_code, (pte_t *) p4d, + irq_state); =20 pud =3D pud_offset(p4d, address); if (!pud_present(*pud)) return 0; =20 if (pud_large(*pud)) - return spurious_kernel_fault_check(error_code, (pte_t *) pud); + return spurious_kernel_fault_check(error_code, (pte_t *) pud, + irq_state); =20 pmd =3D pmd_offset(pud, address); if (!pmd_present(*pmd)) return 0; =20 if (pmd_large(*pmd)) - return spurious_kernel_fault_check(error_code, (pte_t *) pmd); + return spurious_kernel_fault_check(error_code, (pte_t *) pmd, + irq_state); =20 pte =3D pte_offset_kernel(pmd, address); if (!pte_present(*pte)) return 0; =20 - ret =3D spurious_kernel_fault_check(error_code, pte); + ret =3D spurious_kernel_fault_check(error_code, pte, + irq_state); if (!ret) return 0; =20 @@ -1087,7 +1216,8 @@ spurious_kernel_fault(unsigned long error_code, unsig= ned long address) * Make sure we have permissions in PMD. * If not, then there's a bug in the page tables: */ - ret =3D spurious_kernel_fault_check(error_code, (pte_t *) pmd); + ret =3D spurious_kernel_fault_check(error_code, (pte_t *) pmd, + irq_state); WARN_ONCE(!ret, "PMD has incorrect permission bits\n"); =20 return ret; @@ -1150,25 +1280,6 @@ static int fault_in_kernel_space(unsigned long addre= ss) return address >=3D TASK_SIZE_MAX; } =20 -#ifdef CONFIG_PKS_TESTING -bool pks_test_callback(irqentry_state_t *irq_state); -static bool handle_pks_testing(unsigned long hw_error_code, irqentry_state= _t *irq_state) -{ - /* - * If we get a protection key exception it could be because we - * are running the PKS test. If so, pks_test_callback() will - * clear the protection mechanism and return true to indicate - * the fault was handled. - */ - return (hw_error_code & X86_PF_PK) && pks_test_callback(irq_state); -} -#else -static bool handle_pks_testing(unsigned long hw_error_code, irqentry_state= _t *irq_state) -{ - return false; -} -#endif - /* * Called for all faults where 'address' is part of the kernel address * space. Might get called for faults that originate from *code* that @@ -1186,9 +1297,6 @@ do_kern_addr_fault(struct pt_regs *regs, unsigned lon= g hw_error_code, !cpu_feature_enabled(X86_FEATURE_PKS)) WARN_ON_ONCE(hw_error_code & X86_PF_PK); =20 - if (handle_pks_testing(hw_error_code, irq_state)) - return; - #ifdef CONFIG_X86_32 /* * We can fault-in kernel-space virtual memory on-demand. The @@ -1220,8 +1328,11 @@ do_kern_addr_fault(struct pt_regs *regs, unsigned lo= ng hw_error_code, } #endif =20 - /* Was the fault spurious, caused by lazy TLB invalidation? */ - if (spurious_kernel_fault(hw_error_code, address)) + /* + * Was the fault spurious; caused by lazy TLB invalidation or PKRS + * update? + */ + if (spurious_kernel_fault(hw_error_code, address, irq_state)) return; =20 /* kprobes don't want to hook the spurious faults: */ @@ -1492,7 +1603,7 @@ DEFINE_IDTENTRY_RAW_ERRORCODE(exc_page_fault) * * Fingers crossed. * - * The async #PF handling code takes care of idtentry handling + * The async #PF handling code takes care of irqentry handling * itself. */ if (kvm_handle_async_pf(regs, (u32)address)) diff --git a/arch/x86/mm/pkeys.c b/arch/x86/mm/pkeys.c index 2431c68ef752..a45893069877 100644 --- a/arch/x86/mm/pkeys.c +++ b/arch/x86/mm/pkeys.c @@ -263,33 +263,84 @@ noinstr void write_pkrs(u32 new_pkrs) } EXPORT_SYMBOL_GPL(write_pkrs); =20 +/* + * NOTE: The pkrs_global_cache is _never_ stored in the per thread PKRS ca= che + * values [thread.saved_pkrs] by design + * + * This allows us to invalidate access on running threads immediately upon + * invalidate. Sleeping threads will not be enabled due to the algorithm + * during pkrs_sched_in() + */ +DEFINE_SPINLOCK(pkrs_global_cache_lock); +u32 pkrs_global_cache =3D INIT_PKRS_VALUE; +EXPORT_SYMBOL_GPL(pkrs_global_cache); + +static inline void update_global_pkrs(int pkey, unsigned long protection) +{ + int pkey_shift =3D pkey * PKR_BITS_PER_PKEY; + u32 mask =3D (((1 << PKR_BITS_PER_PKEY) - 1) << pkey_shift); + u32 old_val; + + spin_lock(&pkrs_global_cache_lock); + old_val =3D (pkrs_global_cache & mask) >> pkey_shift; + pkrs_global_cache &=3D ~mask; + if (protection & PKEY_DISABLE_ACCESS) + pkrs_global_cache |=3D PKR_AD_BIT << pkey_shift; + if (protection & PKEY_DISABLE_WRITE) + pkrs_global_cache |=3D PKR_WD_BIT << pkey_shift; + + /* + * If we are preventing access from the old value. Force the + * update on all running threads. + */ + if (((old_val =3D=3D 0) && protection) || + ((old_val & PKR_WD_BIT) && (protection & PKEY_DISABLE_ACCESS))) { + int cpu; + + for_each_online_cpu(cpu) { + u32 *ptr =3D per_cpu_ptr(&pkrs_cache, cpu); + + *ptr =3D update_pkey_val(*ptr, pkey, protection); + wrmsrl_on_cpu(cpu, MSR_IA32_PKRS, *ptr); + put_cpu_ptr(ptr); + } + } + spin_unlock(&pkrs_global_cache_lock); +} + /** * Do not call this directly, see pks_mk*() below. * * @pkey: Key for the domain to change * @protection: protection bits to be used + * @global: should this change be made globally or not. * * Protection utilizes the same protection bits specified for User pkeys * PKEY_DISABLE_ACCESS * PKEY_DISABLE_WRITE * */ -static inline void pks_update_protection(int pkey, unsigned long protectio= n) +static inline void pks_update_protection(int pkey, unsigned long protectio= n, + bool global) { - current->thread.saved_pkrs =3D update_pkey_val(current->thread.saved_pkrs, - pkey, protection); preempt_disable(); + if (global) + update_global_pkrs(pkey, protection); + + current->thread.saved_pkrs =3D update_pkey_val(current->thread.saved_pkrs= , pkey, + protection); write_pkrs(current->thread.saved_pkrs); + preempt_enable(); } =20 /** * PKS access control functions * - * Change the access of the domain specified by the pkey. These are global - * updates. They only affects the current running thread. It is undefine= d and - * a bug for users to call this without having allocated a pkey and using = it as - * pkey here. + * Change the access of the domain specified by the pkey. These may be gl= obal + * updates depending on the value of global. It is undefined and a bug for + * users to call this without having allocated a pkey and using it as pkey + * here. * * pks_mknoaccess() * Disable all access to the domain @@ -299,23 +350,30 @@ static inline void pks_update_protection(int pkey, un= signed long protection) * Make the domain Read/Write * * @pkey the pkey for which the access should change. - * + * @global if true the access is enabled on all threads/logical cpus */ -void pks_mknoaccess(int pkey) +void pks_mknoaccess(int pkey, bool global) { - pks_update_protection(pkey, PKEY_DISABLE_ACCESS); + /* + * We force disable access to be 11b + * (PKEY_DISABLE_ACCESS | PKEY_DISABLE_WRITE) + * instaed of 01b See arch/x86/kernel/process.c where the global pkrs + * is factored in during context switch. + */ + pks_update_protection(pkey, PKEY_DISABLE_ACCESS | PKEY_DISABLE_WRITE, + global); } EXPORT_SYMBOL_GPL(pks_mknoaccess); =20 -void pks_mkread(int pkey) +void pks_mkread(int pkey, bool global) { - pks_update_protection(pkey, PKEY_DISABLE_WRITE); + pks_update_protection(pkey, PKEY_DISABLE_WRITE, global); } EXPORT_SYMBOL_GPL(pks_mkread); =20 -void pks_mkrdwr(int pkey) +void pks_mkrdwr(int pkey, bool global) { - pks_update_protection(pkey, 0); + pks_update_protection(pkey, 0, global); } EXPORT_SYMBOL_GPL(pks_mkrdwr); =20 @@ -377,7 +435,7 @@ void pks_key_free(int pkey) return; =20 /* Restore to default of no access */ - pks_mknoaccess(pkey); + pks_mknoaccess(pkey, true); pks_key_users[pkey] =3D NULL; __clear_bit(pkey, &pks_key_allocation_map); } diff --git a/include/linux/pkeys.h b/include/linux/pkeys.h index f9552bd9341f..8f3bfec83949 100644 --- a/include/linux/pkeys.h +++ b/include/linux/pkeys.h @@ -57,15 +57,15 @@ static inline int pks_key_alloc(const char * const pkey= _user) static inline void pks_key_free(int pkey) { } -static inline void pks_mknoaccess(int pkey) +static inline void pks_mknoaccess(int pkey, bool global) { WARN_ON_ONCE(1); } -static inline void pks_mkread(int pkey) +static inline void pks_mkread(int pkey, bool global) { WARN_ON_ONCE(1); } -static inline void pks_mkrdwr(int pkey) +static inline void pks_mkrdwr(int pkey, bool global) { WARN_ON_ONCE(1); } diff --git a/lib/pks/pks_test.c b/lib/pks/pks_test.c index d7dbf92527bd..286c8b8457da 100644 --- a/lib/pks/pks_test.c +++ b/lib/pks/pks_test.c @@ -163,12 +163,12 @@ static void check_exception(irqentry_state_t *irq_sta= te) * Check we can update the value during exception without affecting the * calling thread. The calling thread is checked after exception... */ - pks_mkrdwr(test_armed_key); + pks_mkrdwr(test_armed_key, false); if (!check_pkrs(test_armed_key, 0)) { pr_err(" FAIL: exception did not change register to 0\n"); test_exception_ctx->pass =3D false; } - pks_mknoaccess(test_armed_key); + pks_mknoaccess(test_armed_key, false); if (!check_pkrs(test_armed_key, PKEY_DISABLE_ACCESS | PKEY_DISABLE_WRITE)= ) { pr_err(" FAIL: exception did not change register to 0x3\n"); test_exception_ctx->pass =3D false; @@ -314,13 +314,13 @@ static int run_access_test(struct pks_test_ctx *ctx, { switch (test->mode) { case PKS_TEST_NO_ACCESS: - pks_mknoaccess(ctx->pkey); + pks_mknoaccess(ctx->pkey, false); break; case PKS_TEST_RDWR: - pks_mkrdwr(ctx->pkey); + pks_mkrdwr(ctx->pkey, false); break; case PKS_TEST_RDONLY: - pks_mkread(ctx->pkey); + pks_mkread(ctx->pkey, false); break; default: pr_err("BUG in test invalid mode\n"); @@ -476,7 +476,7 @@ static void run_exception_test(void) goto free_context; } =20 - pks_mkread(ctx->pkey); + pks_mkread(ctx->pkey, false); =20 spin_lock(&test_lock); WRITE_ONCE(test_exception_ctx, ctx); @@ -556,7 +556,7 @@ static void crash_it(void) return; } =20 - pks_mknoaccess(ctx->pkey); + pks_mknoaccess(ctx->pkey, false); =20 spin_lock(&test_lock); WRITE_ONCE(test_armed_key, 0); @@ -618,7 +618,7 @@ static ssize_t pks_write_file(struct file *file, const = char __user *user_buf, /* start of context switch test */ if (!strcmp(buf, "1")) { /* Ensure a known state to test context switch */ - pks_mknoaccess(ctx->pkey); + pks_mknoaccess(ctx->pkey, false); } =20 /* After context switch msr should be restored */ --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273080; cv=none; d=zohomail.com; s=zohoarc; b=Fclo/2fmFkDWoxZDwn/LWSqLfi1SWKu+JQkrknxuYgEHByNJ+gmKPdpUXfZEXlvI031poMTz9zEdGlsZgXp+XUPhwzBhaX8V6Z89Sgfjz8rsMlgbRwEDW0WLlqvQZTPB0XHFXSyBgHqXaQmWUqNHIq5HU1VJa4jXQrdcXJE5ZXk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273080; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=IY5deMVpAxtUphJEw/krVSSF9zIspaKdfQTqz7XNp1Q=; b=OuzDya6S5Q6KSc3AoZoAyh7HVFtdwLjNHS6pye3WOIVJVDfbD6XREZZv6OGWnyoEx4S+8tLokGXLzSVJrqCtyu3MQDP8ytfUJos6sWfl6HEZRcdIe4bbEmDzXxoCIfwJWX6y2lxQg3MUjXPYxmB3/0+FwxJA4xmx7UoaZLhJxYs= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273080311897.9441567021903; Fri, 9 Oct 2020 12:51:20 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5048.12905 (Exim 4.92) (envelope-from ) id 1kQyPo-0001Av-Uh; Fri, 09 Oct 2020 19:50:56 +0000 Received: by outflank-mailman (output) from mailman id 5048.12905; Fri, 09 Oct 2020 19:50:56 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyPo-0001Ao-R8; Fri, 09 Oct 2020 19:50:56 +0000 Received: by outflank-mailman (input) for mailman id 5048; Fri, 09 Oct 2020 19:50:55 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyPn-00017t-Md for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:50:55 +0000 Received: from mga14.intel.com (unknown [192.55.52.115]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id e9967089-f009-46f5-8231-486fb3396c20; Fri, 09 Oct 2020 19:50:52 +0000 (UTC) Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:50:51 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:50:50 -0700 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyPn-00017t-Md for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:50:55 +0000 Received: from mga14.intel.com (unknown [192.55.52.115]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id e9967089-f009-46f5-8231-486fb3396c20; Fri, 09 Oct 2020 19:50:52 +0000 (UTC) Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:50:51 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:50:50 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: e9967089-f009-46f5-8231-486fb3396c20 IronPort-SDR: qZUgeWweAAkT+UGCT1/1mmT1I5zLAbVQ+QVU+857pjwIbo9dYuoyMJ/2Aw1Qpx9Xz22FF3325Y Xhkfk3THfhvg== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="164743583" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="164743583" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: r9rFWs4LxSt/DLhc0vk8qSUxzY/hR2W3QZLi44jmj/rGXS9Mfwq/Fn231GdfrO+iUZYF22umi/ 70MWS29lQZXg== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="529052813" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , 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 02/58] x86/pks/test: Add testing for global option Date: Fri, 9 Oct 2020 12:49:37 -0700 Message-Id: <20201009195033.3208459-3-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny Now that PKS can be enabled globaly (for all threads) add a test which spawns a thread and tests the same PKS functionality. The test enables/disables PKS in 1 thread while attempting to access the page in another thread. We use the same test array as in the 'local' PKS testing. Signed-off-by: Ira Weiny --- arch/x86/mm/fault.c | 4 ++ lib/pks/pks_test.c | 128 +++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 124 insertions(+), 8 deletions(-) diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c index 4b4ff9efa298..4c74f52fbc23 100644 --- a/arch/x86/mm/fault.c +++ b/arch/x86/mm/fault.c @@ -1108,6 +1108,10 @@ static int spurious_kernel_fault_check(unsigned long= error_code, pte_t *pte, if (global_pkey_is_enabled(pte, is_write, irq_state)) return 1; =20 + /* + * NOTE: This must be after the global_pkey_is_enabled() call + * to allow the fixup code to be tested. + */ if (handle_pks_testing(error_code, irq_state)) return 1; =20 diff --git a/lib/pks/pks_test.c b/lib/pks/pks_test.c index 286c8b8457da..dfddccbe4cb6 100644 --- a/lib/pks/pks_test.c +++ b/lib/pks/pks_test.c @@ -154,7 +154,8 @@ static void check_exception(irqentry_state_t *irq_state) } =20 /* Check the exception state */ - if (!check_pkrs(test_armed_key, PKEY_DISABLE_ACCESS)) { + if (!check_pkrs(test_armed_key, + PKEY_DISABLE_ACCESS | PKEY_DISABLE_WRITE)) { pr_err(" FAIL: PKRS cache and MSR\n"); test_exception_ctx->pass =3D false; } @@ -308,24 +309,29 @@ static int test_it(struct pks_test_ctx *ctx, struct p= ks_access_test *test, void return ret; } =20 -static int run_access_test(struct pks_test_ctx *ctx, - struct pks_access_test *test, - void *ptr) +static void set_protection(int pkey, enum pks_access_mode mode, bool globa= l) { - switch (test->mode) { + switch (mode) { case PKS_TEST_NO_ACCESS: - pks_mknoaccess(ctx->pkey, false); + pks_mknoaccess(pkey, global); break; case PKS_TEST_RDWR: - pks_mkrdwr(ctx->pkey, false); + pks_mkrdwr(pkey, global); break; case PKS_TEST_RDONLY: - pks_mkread(ctx->pkey, false); + pks_mkread(pkey, global); break; default: pr_err("BUG in test invalid mode\n"); break; } +} + +static int run_access_test(struct pks_test_ctx *ctx, + struct pks_access_test *test, + void *ptr) +{ + set_protection(ctx->pkey, test->mode, false); =20 return test_it(ctx, test, ptr); } @@ -516,6 +522,110 @@ static void run_exception_test(void) pass ? "PASS" : "FAIL"); } =20 +struct shared_data { + struct mutex lock; + struct pks_test_ctx *ctx; + void *kmap_addr; + struct pks_access_test *test; +}; + +static int thread_main(void *d) +{ + struct shared_data *data =3D d; + struct pks_test_ctx *ctx =3D data->ctx; + + while (!kthread_should_stop()) { + mutex_lock(&data->lock); + /* + * wait for the main thread to hand us the page + * We should be spinning so hopefully we will not have gotten + * the global value from a schedule in. + */ + if (data->kmap_addr) { + if (test_it(ctx, data->test, data->kmap_addr)) + ctx->pass =3D false; + data->kmap_addr =3D NULL; + } + mutex_unlock(&data->lock); + } + + return 0; +} + +static void run_thread_access_test(struct shared_data *data, + struct pks_test_ctx *ctx, + struct pks_access_test *test, + void *ptr) +{ + set_protection(ctx->pkey, test->mode, true); + + pr_info("checking... mode %s; write %s\n", + get_mode_str(test->mode), test->write ? "TRUE" : "FALSE"); + + mutex_lock(&data->lock); + data->test =3D test; + data->kmap_addr =3D ptr; + mutex_unlock(&data->lock); + + while (data->kmap_addr) { + msleep(10); + } +} + +static void run_global_test(void) +{ + struct task_struct *other_task; + struct pks_test_ctx *ctx; + struct shared_data data; + bool pass =3D true; + void *ptr; + int i; + + pr_info(" ***** BEGIN: global pkey checking\n"); + + /* Set up context, data pgae, and thread */ + ctx =3D alloc_ctx("global pkey test"); + if (IS_ERR(ctx)) { + pr_err(" FAIL: no context\n"); + pass =3D false; + goto result; + } + ptr =3D alloc_test_page(ctx->pkey); + if (!ptr) { + pr_err(" FAIL: no vmalloc page\n"); + pass =3D false; + goto free_context; + } + other_task =3D kthread_run(thread_main, &data, "PKRS global test"); + if (IS_ERR(other_task)) { + pr_err(" FAIL: Failed to start thread\n"); + pass =3D false; + goto free_page; + } + + memset(&data, 0, sizeof(data)); + mutex_init(&data.lock); + data.ctx =3D ctx; + + /* Start testing */ + ctx->pass =3D true; + + for (i =3D 0; i < ARRAY_SIZE(pkey_test_ary); i++) { + run_thread_access_test(&data, ctx, &pkey_test_ary[i], ptr); + } + + kthread_stop(other_task); + pass =3D ctx->pass; + +free_page: + vfree(ptr); +free_context: + free_ctx(ctx); +result: + pr_info(" ***** END: global pkey checking : %s\n", + pass ? "PASS" : "FAIL"); +} + static void run_all(void) { struct pks_test_ctx *ctx[PKS_NUM_KEYS]; @@ -538,6 +648,8 @@ static void run_all(void) } =20 run_exception_test(); + + run_global_test(); } =20 static void crash_it(void) --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273081; cv=none; d=zohomail.com; s=zohoarc; b=aNyyS1i4+rn+IAW/1zH7kYsjcxUDJoF+qkqX50h55evtgASUC2sTAAV5Q6EiDT3yVqSD0IcY+N8Art9wtrXGMtJuPdBW8LPw6e8FIrpbBnWFCb7MynJ1bbiJmk85jn4kNIFKxYJ9vxAzLbYuJ6AIGZJUJVt50CvIRcBrv+FhNQI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273081; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=aBUOsqEpGguM/KLUdGYOL835HjJgH9FQh0jwcJGVZeE=; b=cWke7x+cewWLe5kDCjVOFTVQOUrVGbNIgSTsy9jFok0AXpjXw2HL3mLuZqoIsZk1YpqRHf69kVKBN2QVmqOx8Y0M8Qi/ZpnvpR3DhROZ3RYC1iFFax33MDLHI84BRxtEiuVrj602co5s9jM92+G5i+MuwWEp7UV/8scgr3jziRg= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273081741304.95283128685594; Fri, 9 Oct 2020 12:51:21 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5049.12917 (Exim 4.92) (envelope-from ) id 1kQyPu-0001FH-85; Fri, 09 Oct 2020 19:51:02 +0000 Received: by outflank-mailman (output) from mailman id 5049.12917; Fri, 09 Oct 2020 19:51:02 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyPu-0001F8-4b; Fri, 09 Oct 2020 19:51:02 +0000 Received: by outflank-mailman (input) for mailman id 5049; Fri, 09 Oct 2020 19:51:00 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyPs-00017t-Mt for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:51:00 +0000 Received: from mga11.intel.com (unknown [192.55.52.93]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id ec80b497-e56e-45d0-8d6e-e391c6030fc6; Fri, 09 Oct 2020 19:50:57 +0000 (UTC) Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:50:56 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:50:55 -0700 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyPs-00017t-Mt for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:51:00 +0000 Received: from mga11.intel.com (unknown [192.55.52.93]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id ec80b497-e56e-45d0-8d6e-e391c6030fc6; Fri, 09 Oct 2020 19:50:57 +0000 (UTC) Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:50:56 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:50:55 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: ec80b497-e56e-45d0-8d6e-e391c6030fc6 IronPort-SDR: PTG5c9b/qVU7iZaEC3Awxf+6lgNn3QjU8bpB7EvjBfWjWl1n8I7AGFRBo5QDU7isHWBgQF/ymx r48vVqzpM1Vw== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="162067770" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="162067770" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: WlCZORaTV0ocl1yC7IDa4J4IbRZJZvP+KytzS1LtxRNRUTgHeg4W5ZWyzNndx3DpBXRsqL9R3c CQItA3N5s8ig== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="462300571" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , 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 03/58] memremap: Add zone device access protection Date: Fri, 9 Oct 2020 12:49:38 -0700 Message-Id: <20201009195033.3208459-4-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny Device managed memory exposes itself to the kernel direct map which allows stray pointers to access these device memories. Stray pointers to normal memory may result in a crash or other undesirable behavior which, while unfortunate, are usually recoverable with a reboot. Stray access, specifically stray writes, to areas such as non-volatile memory are permanent in nature and thus are more likely to result in permanent user data loss vs stray access to other memory areas. Furthermore, we protect against reads which can help with speculative reads to poison areas as well. But this is a secondary reason. Set up an infrastructure for extra device access protection. Then implement the new protection using the new Protection Keys Supervisor (PKS) on architectures which support it. To enable this extra protection devices specify a flag in the pgmap to indicate that these areas wish to use additional protection. Kernel code which intends to access this memory can do so automatically through the use of the kmap infrastructure calling into dev_access_[enable|disable]() described here. The kmap infrastructure is implemented in a follow on patch. In addition, users can directly enable/disable the access through dev_access_[enable|disable]() if they have a priori knowledge of the type of pages they are accessing. All calls to enable/disable protection flow through dev_access_[enable|disable]() and are nestable by the use of a per task reference count. This reference count does 2 things. 1) Allows a thread to nest calls to disable protection such that the first call to re-enable protection does not 'break' the last access of the pmem device memory. 2) Provides faster performance by avoiding lots of MSR writes. For example, looping over a sequence of pmem pages. In addition, we must ensure the reference count is preserved through an exception so we add the count to irqentry_state_t and save/restore the reference count while giving exceptions their own count should they use a kmap call. The following shows how this works through an exception: ... // ref =3D=3D 0 dev_access_enable() // ref +=3D 1 =3D=3D> disable protection irq() // enable protection // ref =3D 0 _handler() dev_access_enable() // ref +=3D 1 =3D= =3D> disable protection dev_access_disable() // ref -=3D 1 =3D= =3D> enable protection // WARN_ON(ref !=3D 0) // disable protection do_pmem_thing() // all good here dev_access_disable() // ref -=3D 1 =3D=3D> 0 =3D=3D> enable pro= tection ... Nested exceptions operate the same way with each exception storing the interrupted exception state all the way down. The pkey value is never free'ed as this optimizes the implementation to be either on or off using a static branch conditional in the fast paths. Cc: Juri Lelli Cc: Vincent Guittot Cc: Dietmar Eggemann Cc: Steven Rostedt Cc: Ben Segall Cc: Mel Gorman Signed-off-by: Ira Weiny --- arch/x86/entry/common.c | 21 +++++++++ include/linux/entry-common.h | 3 ++ include/linux/memremap.h | 1 + include/linux/mm.h | 43 +++++++++++++++++ include/linux/sched.h | 3 ++ init/init_task.c | 3 ++ kernel/fork.c | 3 ++ mm/Kconfig | 13 ++++++ mm/memremap.c | 90 ++++++++++++++++++++++++++++++++++++ 9 files changed, 180 insertions(+) diff --git a/arch/x86/entry/common.c b/arch/x86/entry/common.c index 86ad32e0095e..3680724c1a4d 100644 --- a/arch/x86/entry/common.c +++ b/arch/x86/entry/common.c @@ -264,12 +264,27 @@ noinstr void idtentry_exit_nmi(struct pt_regs *regs, = irqentry_state_t *irq_state * * NOTE That the thread saved PKRS must be preserved separately to ensure * global overrides do not 'stick' on a thread. + * + * Furthermore, Zone Device Access Protection maintains access in a re-ent= rant + * manner through a reference count which also needs to be maintained shou= ld + * exception handlers use those interfaces for memory access. Here we sta= rt + * off the exception handler ref count to 0 and ensure it is 0 when the + * exception is done. Then restore it for the interrupted task. */ noinstr void irq_save_pkrs(irqentry_state_t *state) { if (!cpu_feature_enabled(X86_FEATURE_PKS)) return; =20 +#ifdef CONFIG_ZONE_DEVICE_ACCESS_PROTECTION + /* + * Save the ref count of the current running process and set it to 0 + * for any irq users to properly track re-entrance + */ + state->pkrs_ref =3D current->dev_page_access_ref; + current->dev_page_access_ref =3D 0; +#endif + /* * The thread_pkrs must be maintained separately to prevent global * overrides from 'sticking' on a thread. @@ -286,6 +301,12 @@ noinstr void irq_restore_pkrs(irqentry_state_t *state) =20 write_pkrs(state->pkrs); current->thread.saved_pkrs =3D state->thread_pkrs; + +#ifdef CONFIG_ZONE_DEVICE_ACCESS_PROTECTION + WARN_ON_ONCE(current->dev_page_access_ref !=3D 0); + /* Restore the interrupted process reference */ + current->dev_page_access_ref =3D state->pkrs_ref; +#endif } #endif /* CONFIG_ARCH_HAS_SUPERVISOR_PKEYS */ =20 diff --git a/include/linux/entry-common.h b/include/linux/entry-common.h index c3b361ffa059..06743cce2dbf 100644 --- a/include/linux/entry-common.h +++ b/include/linux/entry-common.h @@ -343,6 +343,9 @@ void irqentry_exit_to_user_mode(struct pt_regs *regs); #ifndef irqentry_state typedef struct irqentry_state { #ifdef CONFIG_ARCH_HAS_SUPERVISOR_PKEYS +#ifdef CONFIG_ZONE_DEVICE_ACCESS_PROTECTION + unsigned int pkrs_ref; +#endif u32 pkrs; u32 thread_pkrs; #endif diff --git a/include/linux/memremap.h b/include/linux/memremap.h index e5862746751b..b6713ee7b218 100644 --- a/include/linux/memremap.h +++ b/include/linux/memremap.h @@ -89,6 +89,7 @@ struct dev_pagemap_ops { }; =20 #define PGMAP_ALTMAP_VALID (1 << 0) +#define PGMAP_PROT_ENABLED (1 << 1) =20 /** * struct dev_pagemap - metadata for ZONE_DEVICE mappings diff --git a/include/linux/mm.h b/include/linux/mm.h index 16b799a0522c..9e845515ff15 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -1141,6 +1141,49 @@ static inline bool is_pci_p2pdma_page(const struct p= age *page) page->pgmap->type =3D=3D MEMORY_DEVICE_PCI_P2PDMA; } =20 +#ifdef CONFIG_ZONE_DEVICE_ACCESS_PROTECTION +DECLARE_STATIC_KEY_FALSE(dev_protection_static_key); + +/* + * We make page_is_access_protected() as quick as possible. + * 1) If no mappings have been enabled with extra protection we skip th= is + * entirely + * 2) Skip pages which are not ZONE_DEVICE + * 3) Only then check if this particular page was mapped with extra + * protections. + */ +static inline bool page_is_access_protected(struct page *page) +{ + if (!static_branch_unlikely(&dev_protection_static_key)) + return false; + if (!is_zone_device_page(page)) + return false; + if (page->pgmap->flags & PGMAP_PROT_ENABLED) + return true; + return false; +} + +void __dev_access_enable(bool global); +void __dev_access_disable(bool global); +static __always_inline void dev_access_enable(bool global) +{ + if (static_branch_unlikely(&dev_protection_static_key)) + __dev_access_enable(global); +} +static __always_inline void dev_access_disable(bool global) +{ + if (static_branch_unlikely(&dev_protection_static_key)) + __dev_access_disable(global); +} +#else +static inline bool page_is_access_protected(struct page *page) +{ + return false; +} +static inline void dev_access_enable(bool global) { } +static inline void dev_access_disable(bool global) { } +#endif /* CONFIG_ZONE_DEVICE_ACCESS_PROTECTION */ + /* 127: arbitrary random number, small enough to assemble well */ #define page_ref_zero_or_close_to_overflow(page) \ ((unsigned int) page_ref_count(page) + 127u <=3D 127u) diff --git a/include/linux/sched.h b/include/linux/sched.h index afe01e232935..25d97ab6c757 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1315,6 +1315,9 @@ struct task_struct { struct callback_head mce_kill_me; #endif =20 +#ifdef CONFIG_ZONE_DEVICE_ACCESS_PROTECTION + unsigned int dev_page_access_ref; +#endif /* * New fields for task_struct should be added above here, so that * they are included in the randomized portion of task_struct. diff --git a/init/init_task.c b/init/init_task.c index f6889fce64af..9b39f25de59b 100644 --- a/init/init_task.c +++ b/init/init_task.c @@ -209,6 +209,9 @@ struct task_struct init_task #ifdef CONFIG_SECCOMP .seccomp =3D { .filter_count =3D ATOMIC_INIT(0) }, #endif +#ifdef CONFIG_ZONE_DEVICE_ACCESS_PROTECTION + .dev_page_access_ref =3D 0, +#endif }; EXPORT_SYMBOL(init_task); =20 diff --git a/kernel/fork.c b/kernel/fork.c index da8d360fb032..b6a3ee328a89 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -940,6 +940,9 @@ static struct task_struct *dup_task_struct(struct task_= struct *orig, int node) =20 #ifdef CONFIG_MEMCG tsk->active_memcg =3D NULL; +#endif +#ifdef CONFIG_ZONE_DEVICE_ACCESS_PROTECTION + tsk->dev_page_access_ref =3D 0; #endif return tsk; =20 diff --git a/mm/Kconfig b/mm/Kconfig index 1b9bc004d9bc..01dd75720ae6 100644 --- a/mm/Kconfig +++ b/mm/Kconfig @@ -794,6 +794,19 @@ config ZONE_DEVICE =20 If FS_DAX is enabled, then say Y. =20 +config ZONE_DEVICE_ACCESS_PROTECTION + bool "Device memory access protection" + depends on ZONE_DEVICE + depends on ARCH_HAS_SUPERVISOR_PKEYS + + help + Enable the option of having access protections on device memory + areas. This protects against access to device memory which is not + intended such as stray writes. This feature is particularly useful + to protect against corruption of persistent memory. + + If in doubt, say 'Y'. + config DEV_PAGEMAP_OPS bool =20 diff --git a/mm/memremap.c b/mm/memremap.c index fbfc79fd9c24..edad2aa0bd24 100644 --- a/mm/memremap.c +++ b/mm/memremap.c @@ -6,12 +6,16 @@ #include #include #include +#include #include #include #include #include #include #include +#include + +#define PKEY_INVALID (INT_MIN) =20 static DEFINE_XARRAY(pgmap_array); =20 @@ -67,6 +71,89 @@ static void devmap_managed_enable_put(void) } #endif /* CONFIG_DEV_PAGEMAP_OPS */ =20 +#ifdef CONFIG_ZONE_DEVICE_ACCESS_PROTECTION +/* + * Note; all devices which have asked for protections share the same key. = The + * key may, or may not, have been provided by the core. If not, protection + * will remain disabled. The key acquisition is attempted at init time and + * never again. So we don't have to worry about dev_page_pkey changing. + */ +static int dev_page_pkey =3D PKEY_INVALID; +DEFINE_STATIC_KEY_FALSE(dev_protection_static_key); +EXPORT_SYMBOL(dev_protection_static_key); + +static pgprot_t dev_pgprot_get(struct dev_pagemap *pgmap, pgprot_t prot) +{ + if (pgmap->flags & PGMAP_PROT_ENABLED && dev_page_pkey !=3D PKEY_INVALID)= { + pgprotval_t val =3D pgprot_val(prot); + + static_branch_inc(&dev_protection_static_key); + prot =3D __pgprot(val | _PAGE_PKEY(dev_page_pkey)); + } + return prot; +} + +static void dev_pgprot_put(struct dev_pagemap *pgmap) +{ + if (pgmap->flags & PGMAP_PROT_ENABLED && dev_page_pkey !=3D PKEY_INVALID) + static_branch_dec(&dev_protection_static_key); +} + +void __dev_access_disable(bool global) +{ + unsigned long flags; + + local_irq_save(flags); + if (!--current->dev_page_access_ref) + pks_mknoaccess(dev_page_pkey, global); + local_irq_restore(flags); +} +EXPORT_SYMBOL_GPL(__dev_access_disable); + +void __dev_access_enable(bool global) +{ + unsigned long flags; + + local_irq_save(flags); + /* 0 clears the PKEY_DISABLE_ACCESS bit, allowing access */ + if (!current->dev_page_access_ref++) + pks_mkrdwr(dev_page_pkey, global); + local_irq_restore(flags); +} +EXPORT_SYMBOL_GPL(__dev_access_enable); + +/** + * dev_access_protection_init: Configure a PKS key domain for device pages + * + * The domain defaults to the protected state. Device page mappings shoul= d set + * the PGMAP_PROT_ENABLED flag when mapping pages. + * + * Note the pkey is never free'ed. This is run at init time and we either= get + * the key or we do not. We need to do this to maintian a constant key (or + * not) as device memory is added or removed. + */ +static int __init __dev_access_protection_init(void) +{ + int pkey =3D pks_key_alloc("Device Memory"); + + if (pkey < 0) + return 0; + + dev_page_pkey =3D pkey; + + return 0; +} +subsys_initcall(__dev_access_protection_init); +#else +static pgprot_t dev_pgprot_get(struct dev_pagemap *pgmap, pgprot_t prot) +{ + return prot; +} +static void dev_pgprot_put(struct dev_pagemap *pgmap) +{ +} +#endif /* CONFIG_ZONE_DEVICE_ACCESS_PROTECTION */ + static void pgmap_array_delete(struct resource *res) { xa_store_range(&pgmap_array, PHYS_PFN(res->start), PHYS_PFN(res->end), @@ -156,6 +243,7 @@ void memunmap_pages(struct dev_pagemap *pgmap) pgmap_array_delete(res); WARN_ONCE(pgmap->altmap.alloc, "failed to free all reserved pages\n"); devmap_managed_enable_put(); + dev_pgprot_put(pgmap); } EXPORT_SYMBOL_GPL(memunmap_pages); =20 @@ -191,6 +279,8 @@ void *memremap_pages(struct dev_pagemap *pgmap, int nid) int error, is_ram; bool need_devmap_managed =3D true; =20 + params.pgprot =3D dev_pgprot_get(pgmap, params.pgprot); + switch (pgmap->type) { case MEMORY_DEVICE_PRIVATE: if (!IS_ENABLED(CONFIG_DEVICE_PRIVATE)) { --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273081; cv=none; d=zohomail.com; s=zohoarc; b=YMmi2FYaH87y/vigUm2W0FQiUE68CTMHejTk/kgFwKz9A//6o9HYacHfuVRG2To2WVCOM2MagTclQDDA2is/DNg/dx5/2Vg7zfDgYDm0CJsHa10NfLAkziHC8kMeqlsGVc9C9ohq5BpkIdMM0ksPa5B2yswEwf0c0n7jrh6Dgks= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273081; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Pq+5H0Tb8kpWR+AdJnT+a+sSRzDgUP6g7wD70nRElTg=; b=KvVJup1SaKF9pbXlPBSQQSU1vAgUKSsJQk91Ws2Q4N6f8jTp7MOpFm4uGxUcKTRO4qsjenis+oimogf2KbRkx2RzSNoM6pEd+ckNeWpja4pJ08AI5s7bMwZ6IvGgFjOSd8RoiJ/Z7gxE13yh5CPS0A6N4hkYAWoBuOZ1qRD7JEE= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273081294747.8058730264955; Fri, 9 Oct 2020 12:51:21 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5050.12929 (Exim 4.92) (envelope-from ) id 1kQyPy-0001Jx-KE; Fri, 09 Oct 2020 19:51:06 +0000 Received: by outflank-mailman (output) from mailman id 5050.12929; Fri, 09 Oct 2020 19:51:06 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyPy-0001Jl-FW; Fri, 09 Oct 2020 19:51:06 +0000 Received: by outflank-mailman (input) for mailman id 5050; Fri, 09 Oct 2020 19:51:05 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyPx-00017t-Mt for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:51:05 +0000 Received: from mga04.intel.com (unknown [192.55.52.120]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 4282cc09-23b8-4aac-841b-d5b893266d1a; Fri, 09 Oct 2020 19:51:00 +0000 (UTC) Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:50:59 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:50:59 -0700 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyPx-00017t-Mt for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:51:05 +0000 Received: from mga04.intel.com (unknown [192.55.52.120]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 4282cc09-23b8-4aac-841b-d5b893266d1a; Fri, 09 Oct 2020 19:51:00 +0000 (UTC) Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:50:59 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:50:59 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 4282cc09-23b8-4aac-841b-d5b893266d1a IronPort-SDR: KUbg6N1aEvdq1lZWjuPMeLWn/4+X7BeeW6v3JeJfCOVi1eCZfenI9JAKJ7rBcdzgEGATKsqmPg /kXf02ZPRNEA== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="162893235" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="162893235" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: /j9oTf64Lc/fwCVe0LT3Z3/pz5zJXnOJNQAbfqyJqoBSoEhIO3zt/eOhOuH8Xl1K1eBwx2q0zq 2edyiKrU43UQ== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="519846797" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Randy Dunlap , 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 04/58] kmap: Add stray access protection for device pages Date: Fri, 9 Oct 2020 12:49:39 -0700 Message-Id: <20201009195033.3208459-5-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny Device managed pages may have additional protections. These protections need to be removed prior to valid use by kernel users. Check for special treatment of device managed pages in kmap and take action if needed. We use kmap as an interface for generic kernel code because under normal circumstances it would be a bug for general kernel code to not use kmap prior to accessing kernel memory. Therefore, this should allow any valid kernel users to seamlessly use these pages without issues. Because of the critical nature of kmap it must be pointed out that the over head on regular DRAM is carefully implemented to be as fast as possible. Furthermore the underlying MSR write required on device pages when protected is better than a normal MSR write. Specifically, WRMSR(MSR_IA32_PKRS) is not serializing but still maintains ordering properties similar to WRPKRU. The current SDM section on PKRS needs updating but should be the same as that of WRPKRU. So to quote from the WRPKRU text: WRPKRU will never execute speculatively. Memory accesses affected by PKRU register will not execute (even speculatively) until all prior executions of WRPKRU have completed execution and updated the PKRU register. Still this will make accessing pmem more expensive from the kernel but the overhead is minimized and many pmem users access this memory through user page mappings which are not affected at all. Cc: Randy Dunlap Signed-off-by: Ira Weiny --- include/linux/highmem.h | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/include/linux/highmem.h b/include/linux/highmem.h index 14e6202ce47f..2a9806e3b8d2 100644 --- a/include/linux/highmem.h +++ b/include/linux/highmem.h @@ -8,6 +8,7 @@ #include #include #include +#include =20 #include =20 @@ -31,6 +32,20 @@ static inline void invalidate_kernel_vmap_range(void *va= ddr, int size) =20 #include =20 +static inline void dev_page_enable_access(struct page *page, bool global) +{ + if (!page_is_access_protected(page)) + return; + dev_access_enable(global); +} + +static inline void dev_page_disable_access(struct page *page, bool global) +{ + if (!page_is_access_protected(page)) + return; + dev_access_disable(global); +} + #ifdef CONFIG_HIGHMEM extern void *kmap_atomic_high_prot(struct page *page, pgprot_t prot); extern void kunmap_atomic_high(void *kvaddr); @@ -55,6 +70,11 @@ static inline void *kmap(struct page *page) else addr =3D kmap_high(page); kmap_flush_tlb((unsigned long)addr); + /* + * Even non-highmem pages may have additional access protections which + * need to be checked and potentially enabled. + */ + dev_page_enable_access(page, true); return addr; } =20 @@ -63,6 +83,11 @@ void kunmap_high(struct page *page); static inline void kunmap(struct page *page) { might_sleep(); + /* + * Even non-highmem pages may have additional access protections which + * need to be checked and potentially disabled. + */ + dev_page_disable_access(page, true); if (!PageHighMem(page)) return; kunmap_high(page); @@ -85,6 +110,7 @@ static inline void *kmap_atomic_prot(struct page *page, = pgprot_t prot) { preempt_disable(); pagefault_disable(); + dev_page_enable_access(page, false); if (!PageHighMem(page)) return page_address(page); return kmap_atomic_high_prot(page, prot); @@ -137,6 +163,7 @@ static inline unsigned long totalhigh_pages(void) { ret= urn 0UL; } static inline void *kmap(struct page *page) { might_sleep(); + dev_page_enable_access(page, true); return page_address(page); } =20 @@ -146,6 +173,7 @@ static inline void kunmap_high(struct page *page) =20 static inline void kunmap(struct page *page) { + dev_page_disable_access(page, true); #ifdef ARCH_HAS_FLUSH_ON_KUNMAP kunmap_flush_on_unmap(page_address(page)); #endif @@ -155,6 +183,7 @@ static inline void *kmap_atomic(struct page *page) { preempt_disable(); pagefault_disable(); + dev_page_enable_access(page, false); return page_address(page); } #define kmap_atomic_prot(page, prot) kmap_atomic(page) @@ -216,7 +245,8 @@ static inline void kmap_atomic_idx_pop(void) #define kunmap_atomic(addr) \ do { \ BUILD_BUG_ON(__same_type((addr), struct page *)); \ - kunmap_atomic_high(addr); \ + dev_page_disable_access(kmap_to_page(addr), false); \ + kunmap_atomic_high(addr); \ pagefault_enable(); \ preempt_enable(); \ } while (0) --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273085; cv=none; d=zohomail.com; s=zohoarc; b=LELRq1zgs3MzIYsqzsTk/75bVS4AE5ZOiO/lzmyP7UuAPHRlLbCxRONVIxaLf7oleaIM4GNrjDUYr5dvfb15SmEQVsjk46b1VoFLIX0OlMdtSkSPBkXo1lCLE/pOsVXr5lliM5GwuhdgHRXdxH0pneDOLAyjahFDOss8NlUbwPM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273085; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=r9WRS+YWBuzHC2SJZuv2cHxivjJb7K7xUS+3AI/4Deo=; b=GDd/K9UjrOS1lJZlxv24P2n+2wlt1F76Pfc0Lg4ubox+vbTeHjfiByYQxCcfS8exOh8p22vOzbHT8tf0MUmYHqxa4jj1OJIo4+guQiDyazQz2gEqHWhs+g6hcBakyYuccWfCEHJ7+v47cLA7MR72jIzy7iBNfEfd37aZwB/wDZQ= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273085326730.6171036953573; Fri, 9 Oct 2020 12:51:25 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5051.12941 (Exim 4.92) (envelope-from ) id 1kQyQ4-0001RO-4e; Fri, 09 Oct 2020 19:51:12 +0000 Received: by outflank-mailman (output) from mailman id 5051.12941; Fri, 09 Oct 2020 19:51:12 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQ3-0001RD-Vz; Fri, 09 Oct 2020 19:51:11 +0000 Received: by outflank-mailman (input) for mailman id 5051; Fri, 09 Oct 2020 19:51:10 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQ2-00017t-NN for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:51:10 +0000 Received: from mga07.intel.com (unknown [134.134.136.100]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 0de2af32-c62b-4d94-8cd3-ba138d29b9a1; Fri, 09 Oct 2020 19:51:04 +0000 (UTC) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:03 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:02 -0700 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQ2-00017t-NN for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:51:10 +0000 Received: from mga07.intel.com (unknown [134.134.136.100]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 0de2af32-c62b-4d94-8cd3-ba138d29b9a1; Fri, 09 Oct 2020 19:51:04 +0000 (UTC) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:03 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:02 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 0de2af32-c62b-4d94-8cd3-ba138d29b9a1 IronPort-SDR: fAg3CZRPj5M5ay7lEJ+vwH24VmPSxfUiSlyA+IlIDTT469ELlUSlK7ihhfTjKJVqM40AMW849Y 0eWlg1CQ5lIw== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="229714944" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="229714944" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: Zj7B8Ym6Opm+j7NgzILIxHvFMHLpJ+KeG5qMdRlGsqJzYlMhgHY+wciO+/VIwDrpca7gdal3tS LaUxL8Xa1x8w== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="343971995" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Randy Dunlap , 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 05/58] kmap: Introduce k[un]map_thread Date: Fri, 9 Oct 2020 12:49:40 -0700 Message-Id: <20201009195033.3208459-6-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny To correctly support the semantics of kmap() with Kernel protection keys (PKS), kmap() may be required to set the protections on multiple processors (globally). Enabling PKS globally can be very expensive depending on the requested operation. Furthermore, enabling a domain globally reduces the protection afforded by PKS. Most kmap() (Aprox 209 of 229) callers use the map within a single thread a= nd have no need for the protection domain to be enabled globally. However, the remaining callers do not follow this pattern and, as best I can tell, expect the mapping to be 'global' and available to any thread who may access the mapping.[1] We don't anticipate global mappings to pmem, however in general there is a danger in changing the semantics of kmap(). Effectively, this would cause = an unresolved page fault with little to no information about why the failure occurred. To resolve this a number of options were considered. 1) Attempt to change all the thread local kmap() calls to kmap_atomic()[2] 2) Introduce a flags parameter to kmap() to indicate if the mapping should = be global or not 3) Change ~20 call sites to 'kmap_global()' to indicate that they require a global enablement of the pages. 4) Change ~209 call sites to 'kmap_thread()' to indicate that the mapping i= s to be used within that thread of execution only Option 1 is simply not feasible. Option 2 would require all of the call si= tes of kmap() to change. Option 3 seems like a good minimal change but there i= s a danger that new code may miss the semantic change of kmap() and not get the behavior the developer intended. Therefore, #4 was chosen. Subsequent patches will convert most ~90% of the kmap callers to this new c= all leaving about 10% of the existing kmap callers to enable PKS globally. Cc: Randy Dunlap Signed-off-by: Ira Weiny --- include/linux/highmem.h | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/include/linux/highmem.h b/include/linux/highmem.h index 2a9806e3b8d2..ef7813544719 100644 --- a/include/linux/highmem.h +++ b/include/linux/highmem.h @@ -60,7 +60,7 @@ static inline void kmap_flush_tlb(unsigned long addr) { } #endif =20 void *kmap_high(struct page *page); -static inline void *kmap(struct page *page) +static inline void *__kmap(struct page *page, bool global) { void *addr; =20 @@ -74,20 +74,20 @@ static inline void *kmap(struct page *page) * Even non-highmem pages may have additional access protections which * need to be checked and potentially enabled. */ - dev_page_enable_access(page, true); + dev_page_enable_access(page, global); return addr; } =20 void kunmap_high(struct page *page); =20 -static inline void kunmap(struct page *page) +static inline void __kunmap(struct page *page, bool global) { might_sleep(); /* * Even non-highmem pages may have additional access protections which * need to be checked and potentially disabled. */ - dev_page_disable_access(page, true); + dev_page_disable_access(page, global); if (!PageHighMem(page)) return; kunmap_high(page); @@ -160,10 +160,10 @@ static inline struct page *kmap_to_page(void *addr) =20 static inline unsigned long totalhigh_pages(void) { return 0UL; } =20 -static inline void *kmap(struct page *page) +static inline void *__kmap(struct page *page, bool global) { might_sleep(); - dev_page_enable_access(page, true); + dev_page_enable_access(page, global); return page_address(page); } =20 @@ -171,9 +171,9 @@ static inline void kunmap_high(struct page *page) { } =20 -static inline void kunmap(struct page *page) +static inline void __kunmap(struct page *page, bool global) { - dev_page_disable_access(page, true); + dev_page_disable_access(page, global); #ifdef ARCH_HAS_FLUSH_ON_KUNMAP kunmap_flush_on_unmap(page_address(page)); #endif @@ -238,6 +238,24 @@ static inline void kmap_atomic_idx_pop(void) =20 #endif =20 +static inline void *kmap(struct page *page) +{ + return __kmap(page, true); +} +static inline void kunmap(struct page *page) +{ + __kunmap(page, true); +} + +static inline void *kmap_thread(struct page *page) +{ + return __kmap(page, false); +} +static inline void kunmap_thread(struct page *page) +{ + __kunmap(page, false); +} + /* * Prevent people trying to call kunmap_atomic() as if it were kunmap() * kunmap_atomic() should get the return value of kmap_atomic, not the pag= e. --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273095; cv=none; d=zohomail.com; s=zohoarc; b=ffeTtGuD6uL4C4mq6O/DqKvpwJv4wtmHycvtyjJVzT4Uyq7pbOL2lQ4i7A3coNLqHKgRHOC86czb3eoPUIX75tFBPu78mRz4/gN9rnLlIDkhPGr0BpV9sdNSkRpIowYwIAI6dbAs3RM42lc6XgA6vNY9l56NIP3NlpIQCV/QYoA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273095; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=jypab59Lq0ntK4MKWjIH2b/ZxlCJfqyQrf2fhSavYeQ=; b=PcDujeV324Qx/75TArrdm5IzgkrGZw6MHhxA6hT/OryZOg16qAw3FRpJDwuNan7eWxwfYht/Woq5jfSpg0ItoGEOHPLFU63g5FlGGFut2o5EdZJAKlDLijFsSOX+VHV+Wy8QyGHkdhgQ93kf8FzvyjwrwJgF3MUKlIUGe2iLej0= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273095016801.068184656004; Fri, 9 Oct 2020 12:51:35 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5052.12953 (Exim 4.92) (envelope-from ) id 1kQyQ8-0001Wj-Fg; Fri, 09 Oct 2020 19:51:16 +0000 Received: by outflank-mailman (output) from mailman id 5052.12953; Fri, 09 Oct 2020 19:51:16 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQ8-0001WZ-Am; Fri, 09 Oct 2020 19:51:16 +0000 Received: by outflank-mailman (input) for mailman id 5052; Fri, 09 Oct 2020 19:51:15 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQ7-00017t-NQ for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:51:15 +0000 Received: from mga07.intel.com (unknown [134.134.136.100]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 5d2a52c7-0d23-41cc-9411-3318aa65d277; Fri, 09 Oct 2020 19:51:07 +0000 (UTC) Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:07 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:06 -0700 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQ7-00017t-NQ for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:51:15 +0000 Received: from mga07.intel.com (unknown [134.134.136.100]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 5d2a52c7-0d23-41cc-9411-3318aa65d277; Fri, 09 Oct 2020 19:51:07 +0000 (UTC) Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:07 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:06 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 5d2a52c7-0d23-41cc-9411-3318aa65d277 IronPort-SDR: 1WCralPpYjjUTmyOzWUbH/4mS4DiGRaW1doz1tehOFB5vwTYiOZATz7sWVT+W0Q2R3V6PSwTXS jjEqDNDEQprA== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="229714953" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="229714953" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: q86t8daZNt+V6d8RNukEYKSCMEs+oCo1U1vd6Yq1DOlnqrvHVUOvZ3CGMAsBzz1plldsK41yyY 6uUXC42AACQg== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="317146961" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , 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 06/58] kmap: Introduce k[un]map_thread debugging Date: Fri, 9 Oct 2020 12:49:41 -0700 Message-Id: <20201009195033.3208459-7-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny Most kmap() callers use the map within a single thread and have no need for the protection domain to be enabled globally. To differentiate these kmap users, new k[un]map_thread() calls were introduced which are thread local. To aid in debugging the new use of kmap_thread(), add a reference count, a check on that count, and tracing to ID where mapping errors occur. Cc: Juri Lelli Cc: Vincent Guittot Cc: Dietmar Eggemann Cc: Steven Rostedt Cc: Ben Segall Cc: Mel Gorman Signed-off-by: Ira Weiny --- include/linux/highmem.h | 5 +++ include/linux/sched.h | 5 +++ include/trace/events/kmap_thread.h | 56 ++++++++++++++++++++++++++++++ init/init_task.c | 3 ++ kernel/fork.c | 15 ++++++++ lib/Kconfig.debug | 8 +++++ mm/debug.c | 23 ++++++++++++ 7 files changed, 115 insertions(+) create mode 100644 include/trace/events/kmap_thread.h diff --git a/include/linux/highmem.h b/include/linux/highmem.h index ef7813544719..22d1c000802e 100644 --- a/include/linux/highmem.h +++ b/include/linux/highmem.h @@ -247,6 +247,10 @@ static inline void kunmap(struct page *page) __kunmap(page, true); } =20 +#ifdef CONFIG_DEBUG_KMAP_THREAD +void *kmap_thread(struct page *page); +void kunmap_thread(struct page *page); +#else static inline void *kmap_thread(struct page *page) { return __kmap(page, false); @@ -255,6 +259,7 @@ static inline void kunmap_thread(struct page *page) { __kunmap(page, false); } +#endif =20 /* * Prevent people trying to call kunmap_atomic() as if it were kunmap() diff --git a/include/linux/sched.h b/include/linux/sched.h index 25d97ab6c757..4627ea4a49e6 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1318,6 +1318,11 @@ struct task_struct { #ifdef CONFIG_ZONE_DEVICE_ACCESS_PROTECTION unsigned int dev_page_access_ref; #endif + +#ifdef CONFIG_DEBUG_KMAP_THREAD + unsigned int kmap_thread_cnt; +#endif + /* * New fields for task_struct should be added above here, so that * they are included in the randomized portion of task_struct. diff --git a/include/trace/events/kmap_thread.h b/include/trace/events/kmap= _thread.h new file mode 100644 index 000000000000..e7143cfe0daf --- /dev/null +++ b/include/trace/events/kmap_thread.h @@ -0,0 +1,56 @@ +/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */ + +/* + * Copyright (c) 2020 Intel Corporation. All rights reserved. + * + */ + +#undef TRACE_SYSTEM +#define TRACE_SYSTEM kmap_thread + +#if !defined(_TRACE_KMAP_THREAD_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_KMAP_THREAD_H + +#include + +DECLARE_EVENT_CLASS(kmap_thread_template, + TP_PROTO(struct task_struct *tsk, struct page *page, + void *caller_addr, int cnt), + TP_ARGS(tsk, page, caller_addr, cnt), + + TP_STRUCT__entry( + __field(int, pid) + __field(struct page *, page) + __field(void *, caller_addr) + __field(int, cnt) + ), + + TP_fast_assign( + __entry->pid =3D tsk->pid; + __entry->page =3D page; + __entry->caller_addr =3D caller_addr; + __entry->cnt =3D cnt; + ), + + TP_printk("PID %d; (%d) %pS %p", + __entry->pid, + __entry->cnt, + __entry->caller_addr, + __entry->page + ) +); + +DEFINE_EVENT(kmap_thread_template, kmap_thread, + TP_PROTO(struct task_struct *tsk, struct page *page, + void *caller_addr, int cnt), + TP_ARGS(tsk, page, caller_addr, cnt)); + +DEFINE_EVENT(kmap_thread_template, kunmap_thread, + TP_PROTO(struct task_struct *tsk, struct page *page, + void *caller_addr, int cnt), + TP_ARGS(tsk, page, caller_addr, cnt)); + + +#endif /* _TRACE_KMAP_THREAD_H */ + +#include diff --git a/init/init_task.c b/init/init_task.c index 9b39f25de59b..19f09965eb34 100644 --- a/init/init_task.c +++ b/init/init_task.c @@ -212,6 +212,9 @@ struct task_struct init_task #ifdef CONFIG_ZONE_DEVICE_ACCESS_PROTECTION .dev_page_access_ref =3D 0, #endif +#ifdef CONFIG_DEBUG_KMAP_THREAD + .kmap_thread_cnt =3D 0, +#endif }; EXPORT_SYMBOL(init_task); =20 diff --git a/kernel/fork.c b/kernel/fork.c index b6a3ee328a89..2c66e49b7614 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -722,6 +722,17 @@ static inline void put_signal_struct(struct signal_str= uct *sig) free_signal_struct(sig); } =20 +#ifdef CONFIG_DEBUG_KMAP_THREAD +static void check_outstanding_kmap_thread(struct task_struct *tsk) +{ + if (tsk->kmap_thread_cnt) + pr_warn(KERN_ERR "WARNING: PID %d; Failed to kunmap_thread() [cnt %d]\n", + tsk->pid, tsk->kmap_thread_cnt); +} +#else +static void check_outstanding_kmap_thread(struct task_struct *tsk) { } +#endif + void __put_task_struct(struct task_struct *tsk) { WARN_ON(!tsk->exit_state); @@ -734,6 +745,7 @@ void __put_task_struct(struct task_struct *tsk) exit_creds(tsk); delayacct_tsk_free(tsk); put_signal_struct(tsk->signal); + check_outstanding_kmap_thread(tsk); =20 if (!profile_handoff_task(tsk)) free_task(tsk); @@ -943,6 +955,9 @@ static struct task_struct *dup_task_struct(struct task_= struct *orig, int node) #endif #ifdef CONFIG_ZONE_DEVICE_ACCESS_PROTECTION tsk->dev_page_access_ref =3D 0; +#endif +#ifdef CONFIG_DEBUG_KMAP_THREAD + tsk->kmap_thread_cnt =3D 0; #endif return tsk; =20 diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index f015c09ba5a1..6507b43d5b0c 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -858,6 +858,14 @@ config DEBUG_HIGHMEM This option enables additional error checking for high memory systems. Disable for production systems. =20 +config DEBUG_KMAP_THREAD + bool "Kmap debugging" + depends on DEBUG_KERNEL + help + This option enables additional error checking for kernel mapping code + specifically the k[un]map_thread() calls. Disable for production + systems. + config HAVE_DEBUG_STACKOVERFLOW bool =20 diff --git a/mm/debug.c b/mm/debug.c index ca8d1cacdecc..68d186f3570e 100644 --- a/mm/debug.c +++ b/mm/debug.c @@ -320,3 +320,26 @@ void page_init_poison(struct page *page, size_t size) } EXPORT_SYMBOL_GPL(page_init_poison); #endif /* CONFIG_DEBUG_VM */ + +#define CREATE_TRACE_POINTS +#include + +#ifdef CONFIG_DEBUG_KMAP_THREAD +void *kmap_thread(struct page *page) +{ + trace_kmap_thread(current, page, __builtin_return_address(0), + current->kmap_thread_cnt); + current->kmap_thread_cnt++; + return __kmap(page, false); +} +EXPORT_SYMBOL_GPL(kmap_thread); + +void kunmap_thread(struct page *page) +{ + __kunmap(page, false); + current->kmap_thread_cnt--; + trace_kunmap_thread(current, page, __builtin_return_address(0), + current->kmap_thread_cnt); +} +EXPORT_SYMBOL_GPL(kunmap_thread); +#endif --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273103; cv=none; d=zohomail.com; s=zohoarc; b=VMn4Gtt2dW7yAp02M9RfocBRd2DQ2LZf+ES9s/ivbMQyVIAQuHhxh+MVwOQi/Pun+/tqjYJohfUv0tzAJaD6DxJB9VuBP4StrUSld2K5YHSn721w1A/yCtevwYK9bv4y4mcJNGckCf/pA3p0Zc8kyT67ulYXBT6+r4xwD0Bo9lw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273103; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=YRIKYmxc6UZQaNDNDt7ZbhBGcrM8JXT8RwEcpigZ4aI=; b=Xc/gpPjtAOnJEp9JnBNZHnDV2bFI4dBXeut3Gg6yDjep9DpHb+GI0wGlH4Uudn9l75r4FCUHjRKS5vAj1Rkp/ZqC0KQQ8C7e/Xs5mQOMYnb4HrXNWXlqiM4+/woxj+knjDgEHl7kkA4DXAh6Wi4FPy0klcYLeTpphdUAhN7kP+Q= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273103470331.7052813660905; Fri, 9 Oct 2020 12:51:43 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5057.12977 (Exim 4.92) (envelope-from ) id 1kQyQJ-0001jT-AI; Fri, 09 Oct 2020 19:51:27 +0000 Received: by outflank-mailman (output) from mailman id 5057.12977; Fri, 09 Oct 2020 19:51:27 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQJ-0001jJ-6B; Fri, 09 Oct 2020 19:51:27 +0000 Received: by outflank-mailman (input) for mailman id 5057; Fri, 09 Oct 2020 19:51:25 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQH-00017t-Nq for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:51:25 +0000 Received: from mga18.intel.com (unknown [134.134.136.126]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 6eb2b790-532f-4c20-9458-3ca15fe10dd4; Fri, 09 Oct 2020 19:51:12 +0000 (UTC) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:11 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:09 -0700 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQH-00017t-Nq for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:51:25 +0000 Received: from mga18.intel.com (unknown [134.134.136.126]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 6eb2b790-532f-4c20-9458-3ca15fe10dd4; Fri, 09 Oct 2020 19:51:12 +0000 (UTC) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:11 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:09 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 6eb2b790-532f-4c20-9458-3ca15fe10dd4 IronPort-SDR: NR9N6xiFW+t/8G8yY3Q9fs/VzfLsE90NMCOhK2w0F/9yvvLNWB/jTDcdKz0LujAZkCrQ4deT8A fIjKt9UJL/+A== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="153363388" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="153363388" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: 7ZsxuYrd4RIh+I9L87qE8QKpDxHdxlIArpw96UL8x0WQ0i4hLag3NZ1m816qhb9i0FMTl4f1za dG2KA2sC/NWA== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="312652519" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Jens Axboe , 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 07/58] drivers/drbd: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:49:42 -0700 Message-Id: <20201009195033.3208459-8-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny The kmap() calls in this driver are localized to a single thread. To avoid the over head of global PKRS updates use the new kmap_thread() call. Cc: Jens Axboe Signed-off-by: Ira Weiny --- drivers/block/drbd/drbd_main.c | 4 ++-- drivers/block/drbd/drbd_receiver.c | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c index 573dbf6f0c31..f0d0c6b0745e 100644 --- a/drivers/block/drbd/drbd_main.c +++ b/drivers/block/drbd/drbd_main.c @@ -1532,9 +1532,9 @@ static int _drbd_no_send_page(struct drbd_peer_device= *peer_device, struct page int err; =20 socket =3D peer_device->connection->data.socket; - addr =3D kmap(page) + offset; + addr =3D kmap_thread(page) + offset; err =3D drbd_send_all(peer_device->connection, socket, addr, size, msg_fl= ags); - kunmap(page); + kunmap_thread(page); if (!err) peer_device->device->send_cnt +=3D size >> 9; return err; diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_r= eceiver.c index 422363daa618..4704bc0564e2 100644 --- a/drivers/block/drbd/drbd_receiver.c +++ b/drivers/block/drbd/drbd_receiver.c @@ -1951,13 +1951,13 @@ read_in_block(struct drbd_peer_device *peer_device,= u64 id, sector_t sector, page =3D peer_req->pages; page_chain_for_each(page) { unsigned len =3D min_t(int, ds, PAGE_SIZE); - data =3D kmap(page); + data =3D kmap_thread(page); err =3D drbd_recv_all_warn(peer_device->connection, data, len); if (drbd_insert_fault(device, DRBD_FAULT_RECEIVE)) { drbd_err(device, "Fault injection: Corrupting data on receive\n"); data[0] =3D data[0] ^ (unsigned long)-1; } - kunmap(page); + kunmap_thread(page); if (err) { drbd_free_peer_req(device, peer_req); return NULL; @@ -1992,7 +1992,7 @@ static int drbd_drain_block(struct drbd_peer_device *= peer_device, int data_size) =20 page =3D drbd_alloc_pages(peer_device, 1, 1); =20 - data =3D kmap(page); + data =3D kmap_thread(page); while (data_size) { unsigned int len =3D min_t(int, data_size, PAGE_SIZE); =20 @@ -2001,7 +2001,7 @@ static int drbd_drain_block(struct drbd_peer_device *= peer_device, int data_size) break; data_size -=3D len; } - kunmap(page); + kunmap_thread(page); drbd_free_pages(peer_device->device, page, 0); return err; } @@ -2033,10 +2033,10 @@ static int recv_dless_read(struct drbd_peer_device = *peer_device, struct drbd_req D_ASSERT(peer_device->device, sector =3D=3D bio->bi_iter.bi_sector); =20 bio_for_each_segment(bvec, bio, iter) { - void *mapped =3D kmap(bvec.bv_page) + bvec.bv_offset; + void *mapped =3D kmap_thread(bvec.bv_page) + bvec.bv_offset; expect =3D min_t(int, data_size, bvec.bv_len); err =3D drbd_recv_all_warn(peer_device->connection, mapped, expect); - kunmap(bvec.bv_page); + kunmap_thread(bvec.bv_page); if (err) return err; data_size -=3D expect; --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273104; cv=none; d=zohomail.com; s=zohoarc; b=dEXDFjxBswlj5hnaM9Vbk8bFsW9H/ZmbmUHzxqOEx7GhvZg/rIPtd3uXSWXEdRP0kRSF6Zf/wT3Qe6ckDSNuRbdqNndL5eWqwwgXm+Osj5HjQRZ5YnOU6GgCal2e56JREQd4GyVvjLi/ruWZbISkGxwzkcjlRBGiHkjH34afa4c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273104; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=j2Eoso3z08sB/uznl84rcpJTXny4r18CXdmTTOoO4L4=; b=VCkqT90XlY1YkTVtUSW2yVx1shbctxGT3nILoFdhaJ2xTMoAgFrcbUcSMM2aT3j516ul4ALngoDekqBFobmzYaZF4PmDjg+4XKi1CF02wvQFcU69QNsjqwS2jekzfoZrayzihWgeqiKuiTsS1t531Bl3Pf/wkbtvOCMCKhoPBGs= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273104293701.8797004902161; Fri, 9 Oct 2020 12:51:44 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5060.13001 (Exim 4.92) (envelope-from ) id 1kQyQO-0001rN-5B; Fri, 09 Oct 2020 19:51:32 +0000 Received: by outflank-mailman (output) from mailman id 5060.13001; Fri, 09 Oct 2020 19:51:32 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQO-0001rE-0I; Fri, 09 Oct 2020 19:51:32 +0000 Received: by outflank-mailman (input) for mailman id 5060; Fri, 09 Oct 2020 19:51:30 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQM-00017t-Nr for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:51:30 +0000 Received: from mga18.intel.com (unknown [134.134.136.126]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 68e21de4-db08-48c0-a407-2cd0dfe15bf7; Fri, 09 Oct 2020 19:51:16 +0000 (UTC) Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:16 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga006-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:15 -0700 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQM-00017t-Nr for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:51:30 +0000 Received: from mga18.intel.com (unknown [134.134.136.126]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 68e21de4-db08-48c0-a407-2cd0dfe15bf7; Fri, 09 Oct 2020 19:51:16 +0000 (UTC) Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:16 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga006-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:15 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 68e21de4-db08-48c0-a407-2cd0dfe15bf7 IronPort-SDR: xu2zdTr/OuPgqZUiJmtWsW/7B3mrCCwnks9bx2Meq/ltxzmXA//3yXGuOXmgr0dQSn38fBYOaw KbopyuSKWrQw== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="153363398" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="153363398" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: JrRKqLJV6Da/4fMbj+O46I413eP5nzJr39umbL7Y1s6mKMem5hJdGDAmJBrAS4XWsKikzHiU+3 eSwE6XBZdj5A== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="518800998" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Luis Chamberlain , 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 08/58] drivers/firmware_loader: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:49:43 -0700 Message-Id: <20201009195033.3208459-9-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny The kmap() calls in this driver are localized to a single thread. To avoid the over head of global PKRS updates use the new kmap_thread() call. Cc: Luis Chamberlain Signed-off-by: Ira Weiny --- drivers/base/firmware_loader/fallback.c | 4 ++-- drivers/base/firmware_loader/main.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/base/firmware_loader/fallback.c b/drivers/base/firmwar= e_loader/fallback.c index 283ca2de76d4..22dea9ba7a37 100644 --- a/drivers/base/firmware_loader/fallback.c +++ b/drivers/base/firmware_loader/fallback.c @@ -322,14 +322,14 @@ static void firmware_rw(struct fw_priv *fw_priv, char= *buffer, int page_ofs =3D offset & (PAGE_SIZE-1); int page_cnt =3D min_t(size_t, PAGE_SIZE - page_ofs, count); =20 - page_data =3D kmap(fw_priv->pages[page_nr]); + page_data =3D kmap_thread(fw_priv->pages[page_nr]); =20 if (read) memcpy(buffer, page_data + page_ofs, page_cnt); else memcpy(page_data + page_ofs, buffer, page_cnt); =20 - kunmap(fw_priv->pages[page_nr]); + kunmap_thread(fw_priv->pages[page_nr]); buffer +=3D page_cnt; offset +=3D page_cnt; count -=3D page_cnt; diff --git a/drivers/base/firmware_loader/main.c b/drivers/base/firmware_lo= ader/main.c index 63b9714a0154..cc884c9f8742 100644 --- a/drivers/base/firmware_loader/main.c +++ b/drivers/base/firmware_loader/main.c @@ -409,11 +409,11 @@ static int fw_decompress_xz_pages(struct device *dev,= struct fw_priv *fw_priv, =20 /* decompress onto the new allocated page */ page =3D fw_priv->pages[fw_priv->nr_pages - 1]; - xz_buf.out =3D kmap(page); + xz_buf.out =3D kmap_thread(page); xz_buf.out_pos =3D 0; xz_buf.out_size =3D PAGE_SIZE; xz_ret =3D xz_dec_run(xz_dec, &xz_buf); - kunmap(page); + kunmap_thread(page); fw_priv->size +=3D xz_buf.out_pos; /* partial decompression means either end or error */ if (xz_buf.out_pos !=3D PAGE_SIZE) --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273104; cv=none; d=zohomail.com; s=zohoarc; b=hlSFgh1uZF8sGDbzUxZ44R7l3BFjh0K9ITrzd53+Ct6hj41pWnj1J0BbcpjDWxjNZWVOKj9Q2Yyiqn3NlEIY0w7wXgoWLgekDbLaJHNsQRJIob9gr8XfipF/XPjW+uT6KLkjMw0k4R0JlOd+mLNLydtWKbGwW21RodvpNvskhkE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273104; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=DyRtcBJ6a9IyG6vuU9GLwzaWjtVZyvZxLL+EisJM/Rs=; b=Zqv6qX+A8I7Ja9qyNkWeL+GLqOds4EfSyoW8RpIVPiZ8rFNOR6PYv72wGOfsqqB9q6MyOu9Tu2LDUCJDt7Ipgg0OgiT7jmcEXQ/C+EN8V0cyAtK+4mDHUXsrlfCeHW+le4x5In1K60l6rx1N+9Pj8TGB08ZrvEQ4iM0+nOUX5ZM= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273104477264.19375372702495; Fri, 9 Oct 2020 12:51:44 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5056.12965 (Exim 4.92) (envelope-from ) id 1kQyQG-0001fP-Qr; Fri, 09 Oct 2020 19:51:24 +0000 Received: by outflank-mailman (output) from mailman id 5056.12965; Fri, 09 Oct 2020 19:51:24 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQG-0001fG-Mu; Fri, 09 Oct 2020 19:51:24 +0000 Received: by outflank-mailman (input) for mailman id 5056; Fri, 09 Oct 2020 19:51:23 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQF-0001du-65 for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:51:23 +0000 Received: from mga01.intel.com (unknown [192.55.52.88]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 23148f64-b11b-4113-9b7b-712fcbfbd8a0; Fri, 09 Oct 2020 19:51:20 +0000 (UTC) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:19 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:19 -0700 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQF-0001du-65 for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:51:23 +0000 Received: from mga01.intel.com (unknown [192.55.52.88]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 23148f64-b11b-4113-9b7b-712fcbfbd8a0; Fri, 09 Oct 2020 19:51:20 +0000 (UTC) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:19 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:19 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 23148f64-b11b-4113-9b7b-712fcbfbd8a0 IronPort-SDR: wm/KpE75h4gxsfD3UkW9WKz4qcZTqNn7FpVMX+rG7OjPuhmnSOFI7Lhz/P6k5yuzyBTreKQ41D U0M5R4qPNU8A== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="182976103" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="182976103" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: 5T2OCVzeHkG6wr08UcIl5CMQca5a2EWHDQvUbsMI5eegPrFwWedcb1Yb3fuBoEZmXZa2FGZF8Z Z3c1XDGR3/oA== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="354958923" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , David Airlie , Daniel Vetter , Patrik Jakobsson , 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 09/58] drivers/gpu: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:49:44 -0700 Message-Id: <20201009195033.3208459-10-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny These kmap() calls in the gpu stack are localized to a single thread. To avoid the over head of global PKRS updates use the new kmap_thread() call. Cc: David Airlie Cc: Daniel Vetter Cc: Patrik Jakobsson Signed-off-by: Ira Weiny Acked-by: Daniel Vetter --- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 12 ++++++------ drivers/gpu/drm/gma500/gma_display.c | 4 ++-- drivers/gpu/drm/gma500/mmu.c | 10 +++++----- drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 4 ++-- .../gpu/drm/i915/gem/selftests/i915_gem_context.c | 4 ++-- drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c | 8 ++++---- drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c | 4 ++-- drivers/gpu/drm/i915/gt/intel_gtt.c | 4 ++-- drivers/gpu/drm/i915/gt/shmem_utils.c | 4 ++-- drivers/gpu/drm/i915/i915_gem.c | 8 ++++---- drivers/gpu/drm/i915/i915_gpu_error.c | 4 ++-- drivers/gpu/drm/i915/selftests/i915_perf.c | 4 ++-- drivers/gpu/drm/radeon/radeon_ttm.c | 4 ++-- 13 files changed, 37 insertions(+), 37 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/= amdgpu/amdgpu_ttm.c index 978bae731398..bd564bccb7a3 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c @@ -2437,11 +2437,11 @@ static ssize_t amdgpu_ttm_gtt_read(struct file *f, = char __user *buf, =20 page =3D adev->gart.pages[p]; if (page) { - ptr =3D kmap(page); + ptr =3D kmap_thread(page); ptr +=3D off; =20 r =3D copy_to_user(buf, ptr, cur_size); - kunmap(adev->gart.pages[p]); + kunmap_thread(adev->gart.pages[p]); } else r =3D clear_user(buf, cur_size); =20 @@ -2507,9 +2507,9 @@ static ssize_t amdgpu_iomem_read(struct file *f, char= __user *buf, if (p->mapping !=3D adev->mman.bdev.dev_mapping) return -EPERM; =20 - ptr =3D kmap(p); + ptr =3D kmap_thread(p); r =3D copy_to_user(buf, ptr + off, bytes); - kunmap(p); + kunmap_thread(p); if (r) return -EFAULT; =20 @@ -2558,9 +2558,9 @@ static ssize_t amdgpu_iomem_write(struct file *f, con= st char __user *buf, if (p->mapping !=3D adev->mman.bdev.dev_mapping) return -EPERM; =20 - ptr =3D kmap(p); + ptr =3D kmap_thread(p); r =3D copy_from_user(ptr + off, buf, bytes); - kunmap(p); + kunmap_thread(p); if (r) return -EFAULT; =20 diff --git a/drivers/gpu/drm/gma500/gma_display.c b/drivers/gpu/drm/gma500/= gma_display.c index 3df6d6e850f5..35f4e55c941f 100644 --- a/drivers/gpu/drm/gma500/gma_display.c +++ b/drivers/gpu/drm/gma500/gma_display.c @@ -400,9 +400,9 @@ int gma_crtc_cursor_set(struct drm_crtc *crtc, /* Copy the cursor to cursor mem */ tmp_dst =3D dev_priv->vram_addr + cursor_gt->offset; for (i =3D 0; i < cursor_pages; i++) { - tmp_src =3D kmap(gt->pages[i]); + tmp_src =3D kmap_thread(gt->pages[i]); memcpy(tmp_dst, tmp_src, PAGE_SIZE); - kunmap(gt->pages[i]); + kunmap_thread(gt->pages[i]); tmp_dst +=3D PAGE_SIZE; } =20 diff --git a/drivers/gpu/drm/gma500/mmu.c b/drivers/gpu/drm/gma500/mmu.c index 505044c9a673..fba7a3a461fd 100644 --- a/drivers/gpu/drm/gma500/mmu.c +++ b/drivers/gpu/drm/gma500/mmu.c @@ -192,20 +192,20 @@ struct psb_mmu_pd *psb_mmu_alloc_pd(struct psb_mmu_dr= iver *driver, pd->invalid_pte =3D 0; } =20 - v =3D kmap(pd->dummy_pt); + v =3D kmap_thread(pd->dummy_pt); for (i =3D 0; i < (PAGE_SIZE / sizeof(uint32_t)); ++i) v[i] =3D pd->invalid_pte; =20 - kunmap(pd->dummy_pt); + kunmap_thread(pd->dummy_pt); =20 - v =3D kmap(pd->p); + v =3D kmap_thread(pd->p); for (i =3D 0; i < (PAGE_SIZE / sizeof(uint32_t)); ++i) v[i] =3D pd->invalid_pde; =20 - kunmap(pd->p); + kunmap_thread(pd->p); =20 clear_page(kmap(pd->dummy_page)); - kunmap(pd->dummy_page); + kunmap_thread(pd->dummy_page); =20 pd->tables =3D vmalloc_user(sizeof(struct psb_mmu_pt *) * 1024); if (!pd->tables) diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i9= 15/gem/i915_gem_shmem.c index 38113d3c0138..274424795fb7 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c @@ -566,9 +566,9 @@ i915_gem_object_create_shmem_from_data(struct drm_i915_= private *dev_priv, if (err < 0) goto fail; =20 - vaddr =3D kmap(page); + vaddr =3D kmap_thread(page); memcpy(vaddr, data, len); - kunmap(page); + kunmap_thread(page); =20 err =3D pagecache_write_end(file, file->f_mapping, offset, len, len, diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c b/driver= s/gpu/drm/i915/gem/selftests/i915_gem_context.c index 7ffc3c751432..b466c677d007 100644 --- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c +++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c @@ -1754,7 +1754,7 @@ static int check_scratch_page(struct i915_gem_context= *ctx, u32 *out) return -EINVAL; } =20 - vaddr =3D kmap(page); + vaddr =3D kmap_thread(page); if (!vaddr) { pr_err("No (mappable) scratch page!\n"); return -EINVAL; @@ -1765,7 +1765,7 @@ static int check_scratch_page(struct i915_gem_context= *ctx, u32 *out) pr_err("Inconsistent initial state of scratch page!\n"); err =3D -EINVAL; } - kunmap(page); + kunmap_thread(page); =20 return err; } diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c b/drivers/g= pu/drm/i915/gem/selftests/i915_gem_mman.c index 9c7402ce5bf9..447df22e2e06 100644 --- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c +++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c @@ -143,7 +143,7 @@ static int check_partial_mapping(struct drm_i915_gem_ob= ject *obj, intel_gt_flush_ggtt_writes(&to_i915(obj->base.dev)->gt); =20 p =3D i915_gem_object_get_page(obj, offset >> PAGE_SHIFT); - cpu =3D kmap(p) + offset_in_page(offset); + cpu =3D kmap_thread(p) + offset_in_page(offset); drm_clflush_virt_range(cpu, sizeof(*cpu)); if (*cpu !=3D (u32)page) { pr_err("Partial view for %lu [%u] (offset=3D%llu, size=3D%u [%llu, row s= ize %u], fence=3D%d, tiling=3D%d, stride=3D%d) misalignment, expected write= to page (%llu + %u [0x%llx]) of 0x%x, found 0x%x\n", @@ -161,7 +161,7 @@ static int check_partial_mapping(struct drm_i915_gem_ob= ject *obj, } *cpu =3D 0; drm_clflush_virt_range(cpu, sizeof(*cpu)); - kunmap(p); + kunmap_thread(p); =20 out: __i915_vma_put(vma); @@ -236,7 +236,7 @@ static int check_partial_mappings(struct drm_i915_gem_o= bject *obj, intel_gt_flush_ggtt_writes(&to_i915(obj->base.dev)->gt); =20 p =3D i915_gem_object_get_page(obj, offset >> PAGE_SHIFT); - cpu =3D kmap(p) + offset_in_page(offset); + cpu =3D kmap_thread(p) + offset_in_page(offset); drm_clflush_virt_range(cpu, sizeof(*cpu)); if (*cpu !=3D (u32)page) { pr_err("Partial view for %lu [%u] (offset=3D%llu, size=3D%u [%llu, row = size %u], fence=3D%d, tiling=3D%d, stride=3D%d) misalignment, expected writ= e to page (%llu + %u [0x%llx]) of 0x%x, found 0x%x\n", @@ -254,7 +254,7 @@ static int check_partial_mappings(struct drm_i915_gem_o= bject *obj, } *cpu =3D 0; drm_clflush_virt_range(cpu, sizeof(*cpu)); - kunmap(p); + kunmap_thread(p); if (err) return err; =20 diff --git a/drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c b/drivers/gpu/drm= /i915/gt/intel_ggtt_fencing.c index 7fb36b12fe7a..38da348282f1 100644 --- a/drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c +++ b/drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c @@ -731,7 +731,7 @@ static void swizzle_page(struct page *page) char *vaddr; int i; =20 - vaddr =3D kmap(page); + vaddr =3D kmap_thread(page); =20 for (i =3D 0; i < PAGE_SIZE; i +=3D 128) { memcpy(temp, &vaddr[i], 64); @@ -739,7 +739,7 @@ static void swizzle_page(struct page *page) memcpy(&vaddr[i + 64], temp, 64); } =20 - kunmap(page); + kunmap_thread(page); } =20 /** diff --git a/drivers/gpu/drm/i915/gt/intel_gtt.c b/drivers/gpu/drm/i915/gt/= intel_gtt.c index 2a72cce63fd9..4cfb24e9ed62 100644 --- a/drivers/gpu/drm/i915/gt/intel_gtt.c +++ b/drivers/gpu/drm/i915/gt/intel_gtt.c @@ -312,9 +312,9 @@ static void poison_scratch_page(struct page *page, unsi= gned long size) do { void *vaddr; =20 - vaddr =3D kmap(page); + vaddr =3D kmap_thread(page); memset(vaddr, POISON_FREE, PAGE_SIZE); - kunmap(page); + kunmap_thread(page); =20 page =3D pfn_to_page(page_to_pfn(page) + 1); size -=3D PAGE_SIZE; diff --git a/drivers/gpu/drm/i915/gt/shmem_utils.c b/drivers/gpu/drm/i915/g= t/shmem_utils.c index 43c7acbdc79d..a40d3130cebf 100644 --- a/drivers/gpu/drm/i915/gt/shmem_utils.c +++ b/drivers/gpu/drm/i915/gt/shmem_utils.c @@ -142,12 +142,12 @@ static int __shmem_rw(struct file *file, loff_t off, if (IS_ERR(page)) return PTR_ERR(page); =20 - vaddr =3D kmap(page); + vaddr =3D kmap_thread(page); if (write) memcpy(vaddr + offset_in_page(off), ptr, this); else memcpy(ptr, vaddr + offset_in_page(off), this); - kunmap(page); + kunmap_thread(page); put_page(page); =20 len -=3D this; diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_ge= m.c index 9aa3066cb75d..cae8300fd224 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -312,14 +312,14 @@ shmem_pread(struct page *page, int offset, int len, c= har __user *user_data, char *vaddr; int ret; =20 - vaddr =3D kmap(page); + vaddr =3D kmap_thread(page); =20 if (needs_clflush) drm_clflush_virt_range(vaddr + offset, len); =20 ret =3D __copy_to_user(user_data, vaddr + offset, len); =20 - kunmap(page); + kunmap_thread(page); =20 return ret ? -EFAULT : 0; } @@ -708,7 +708,7 @@ shmem_pwrite(struct page *page, int offset, int len, ch= ar __user *user_data, char *vaddr; int ret; =20 - vaddr =3D kmap(page); + vaddr =3D kmap_thread(page); =20 if (needs_clflush_before) drm_clflush_virt_range(vaddr + offset, len); @@ -717,7 +717,7 @@ shmem_pwrite(struct page *page, int offset, int len, ch= ar __user *user_data, if (!ret && needs_clflush_after) drm_clflush_virt_range(vaddr + offset, len); =20 - kunmap(page); + kunmap_thread(page); =20 return ret ? -EFAULT : 0; } diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i= 915_gpu_error.c index 3e6cbb0d1150..aecd469b6b6e 100644 --- a/drivers/gpu/drm/i915/i915_gpu_error.c +++ b/drivers/gpu/drm/i915/i915_gpu_error.c @@ -1058,9 +1058,9 @@ i915_vma_coredump_create(const struct intel_gt *gt, =20 drm_clflush_pages(&page, 1); =20 - s =3D kmap(page); + s =3D kmap_thread(page); ret =3D compress_page(compress, s, dst, false); - kunmap(page); + kunmap_thread(page); =20 drm_clflush_pages(&page, 1); =20 diff --git a/drivers/gpu/drm/i915/selftests/i915_perf.c b/drivers/gpu/drm/i= 915/selftests/i915_perf.c index c2d001d9c0ec..7f7ef2d056f4 100644 --- a/drivers/gpu/drm/i915/selftests/i915_perf.c +++ b/drivers/gpu/drm/i915/selftests/i915_perf.c @@ -307,7 +307,7 @@ static int live_noa_gpr(void *arg) } =20 /* Poison the ce->vm so we detect writes not to the GGTT gt->scratch */ - scratch =3D kmap(ce->vm->scratch[0].base.page); + scratch =3D kmap_thread(ce->vm->scratch[0].base.page); memset(scratch, POISON_FREE, PAGE_SIZE); =20 rq =3D intel_context_create_request(ce); @@ -405,7 +405,7 @@ static int live_noa_gpr(void *arg) out_rq: i915_request_put(rq); out_ce: - kunmap(ce->vm->scratch[0].base.page); + kunmap_thread(ce->vm->scratch[0].base.page); intel_context_put(ce); out: stream_destroy(stream); diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/r= adeon_ttm.c index 004344dce140..0aba0cac51e1 100644 --- a/drivers/gpu/drm/radeon/radeon_ttm.c +++ b/drivers/gpu/drm/radeon/radeon_ttm.c @@ -1013,11 +1013,11 @@ static ssize_t radeon_ttm_gtt_read(struct file *f, = char __user *buf, =20 page =3D rdev->gart.pages[p]; if (page) { - ptr =3D kmap(page); + ptr =3D kmap_thread(page); ptr +=3D off; =20 r =3D copy_to_user(buf, ptr, cur_size); - kunmap(rdev->gart.pages[p]); + kunmap_thread(rdev->gart.pages[p]); } else r =3D clear_user(buf, cur_size); =20 --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273113; cv=none; d=zohomail.com; s=zohoarc; b=TH9395xlQtKTm1QyvVA3uTLqkSCWUe5AzYOjpwWfSmBfI0DYvux8je8saQaP2d/OUWSykYwJd9Tttk6ACVod33poZdESbE6kMikixbKgjKtbXJGyimExvTzkLPMe+wDaQ/8/qTq1gxcrVCuVpbXOXoVkz785krnIBUP90Uek4i8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273113; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=yEtKXDDBTEYsPgIE8SLN8sjcXbJjvebk277aH0ke8xk=; b=e0F5qyJZEZ0fBMddGAwEoEzP2Qaz70xmzhtF7uJser1G4QOWS4yrd1E/HMKHogS2I2qiol13ssezcmR3RSbia5GsGCrQj1A1l0DvoDjvxtvULIlRm4PzeDdN0LxsffLgCZVb/i2slMXmzXwOnR1nPck8+Q6oFQoAXkON9F09kQU= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273113044475.6564875543968; Fri, 9 Oct 2020 12:51:53 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5061.13013 (Exim 4.92) (envelope-from ) id 1kQyQT-0001zj-Jm; Fri, 09 Oct 2020 19:51:37 +0000 Received: by outflank-mailman (output) from mailman id 5061.13013; Fri, 09 Oct 2020 19:51:37 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQT-0001zb-D7; Fri, 09 Oct 2020 19:51:37 +0000 Received: by outflank-mailman (input) for mailman id 5061; Fri, 09 Oct 2020 19:51:35 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQR-00017t-Nz for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:51:35 +0000 Received: from mga03.intel.com (unknown [134.134.136.65]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 421f9afe-82a9-49bd-a2c7-af48226c3509; Fri, 09 Oct 2020 19:51:27 +0000 (UTC) Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:24 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:22 -0700 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQR-00017t-Nz for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:51:35 +0000 Received: from mga03.intel.com (unknown [134.134.136.65]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 421f9afe-82a9-49bd-a2c7-af48226c3509; Fri, 09 Oct 2020 19:51:27 +0000 (UTC) Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:24 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:22 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 421f9afe-82a9-49bd-a2c7-af48226c3509 IronPort-SDR: VVH/40Y04DhyS2991pJmxjYlWzFcRTZwZCrVIt/PvQJO0hzpK5yF854P1CWk9iC4i0bKSRbz3F JAC/DHX3APyw== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="165592053" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="165592053" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: XjNk9w0mzDhi5BMigEI5d3C8W/iIq4vdRrLZr3Ki7urqpxKKtyqLLY7j1Bq5ukpJe/vk25ySpH cq+qGeUOhHow== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="355862741" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Mike Marciniszyn , Dennis Dalessandro , Doug Ledford , Jason Gunthorpe , Faisal Latif , Shiraz Saleem , Bernard Metzler , 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 10/58] drivers/rdma: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:49:45 -0700 Message-Id: <20201009195033.3208459-11-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny The kmap() calls in these drivers are localized to a single thread. To avoid the over head of global PKRS updates use the new kmap_thread() call. Cc: Mike Marciniszyn Cc: Dennis Dalessandro Cc: Doug Ledford Cc: Jason Gunthorpe Cc: Faisal Latif Cc: Shiraz Saleem Cc: Bernard Metzler Signed-off-by: Ira Weiny --- drivers/infiniband/hw/hfi1/sdma.c | 4 ++-- drivers/infiniband/hw/i40iw/i40iw_cm.c | 10 +++++----- drivers/infiniband/sw/siw/siw_qp_tx.c | 14 +++++++------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/drivers/infiniband/hw/hfi1/sdma.c b/drivers/infiniband/hw/hfi1= /sdma.c index 04575c9afd61..09d206e3229a 100644 --- a/drivers/infiniband/hw/hfi1/sdma.c +++ b/drivers/infiniband/hw/hfi1/sdma.c @@ -3130,7 +3130,7 @@ int ext_coal_sdma_tx_descs(struct hfi1_devdata *dd, s= truct sdma_txreq *tx, } =20 if (type =3D=3D SDMA_MAP_PAGE) { - kvaddr =3D kmap(page); + kvaddr =3D kmap_thread(page); kvaddr +=3D offset; } else if (WARN_ON(!kvaddr)) { __sdma_txclean(dd, tx); @@ -3140,7 +3140,7 @@ int ext_coal_sdma_tx_descs(struct hfi1_devdata *dd, s= truct sdma_txreq *tx, memcpy(tx->coalesce_buf + tx->coalesce_idx, kvaddr, len); tx->coalesce_idx +=3D len; if (type =3D=3D SDMA_MAP_PAGE) - kunmap(page); + kunmap_thread(page); =20 /* If there is more data, return */ if (tx->tlen - tx->coalesce_idx) diff --git a/drivers/infiniband/hw/i40iw/i40iw_cm.c b/drivers/infiniband/hw= /i40iw/i40iw_cm.c index a3b95805c154..122d7a5642a1 100644 --- a/drivers/infiniband/hw/i40iw/i40iw_cm.c +++ b/drivers/infiniband/hw/i40iw/i40iw_cm.c @@ -3721,7 +3721,7 @@ int i40iw_accept(struct iw_cm_id *cm_id, struct iw_cm= _conn_param *conn_param) ibmr->device =3D iwpd->ibpd.device; iwqp->lsmm_mr =3D ibmr; if (iwqp->page) - iwqp->sc_qp.qp_uk.sq_base =3D kmap(iwqp->page); + iwqp->sc_qp.qp_uk.sq_base =3D kmap_thread(iwqp->page); dev->iw_priv_qp_ops->qp_send_lsmm(&iwqp->sc_qp, iwqp->ietf_mem.va, (accept.size + conn_param->private_data_len), @@ -3729,12 +3729,12 @@ int i40iw_accept(struct iw_cm_id *cm_id, struct iw_= cm_conn_param *conn_param) =20 } else { if (iwqp->page) - iwqp->sc_qp.qp_uk.sq_base =3D kmap(iwqp->page); + iwqp->sc_qp.qp_uk.sq_base =3D kmap_thread(iwqp->page); dev->iw_priv_qp_ops->qp_send_lsmm(&iwqp->sc_qp, NULL, 0, 0); } =20 if (iwqp->page) - kunmap(iwqp->page); + kunmap_thread(iwqp->page); =20 iwqp->cm_id =3D cm_id; cm_node->cm_id =3D cm_id; @@ -4102,10 +4102,10 @@ static void i40iw_cm_event_connected(struct i40iw_c= m_event *event) i40iw_cm_init_tsa_conn(iwqp, cm_node); read0 =3D (cm_node->send_rdma0_op =3D=3D SEND_RDMA_READ_ZERO); if (iwqp->page) - iwqp->sc_qp.qp_uk.sq_base =3D kmap(iwqp->page); + iwqp->sc_qp.qp_uk.sq_base =3D kmap_thread(iwqp->page); dev->iw_priv_qp_ops->qp_send_rtt(&iwqp->sc_qp, read0); if (iwqp->page) - kunmap(iwqp->page); + kunmap_thread(iwqp->page); =20 memset(&attr, 0, sizeof(attr)); attr.qp_state =3D IB_QPS_RTS; diff --git a/drivers/infiniband/sw/siw/siw_qp_tx.c b/drivers/infiniband/sw/= siw/siw_qp_tx.c index d19d8325588b..4ed37c328d02 100644 --- a/drivers/infiniband/sw/siw/siw_qp_tx.c +++ b/drivers/infiniband/sw/siw/siw_qp_tx.c @@ -76,7 +76,7 @@ static int siw_try_1seg(struct siw_iwarp_tx *c_tx, void *= paddr) if (unlikely(!p)) return -EFAULT; =20 - buffer =3D kmap(p); + buffer =3D kmap_thread(p); =20 if (likely(PAGE_SIZE - off >=3D bytes)) { memcpy(paddr, buffer + off, bytes); @@ -84,7 +84,7 @@ static int siw_try_1seg(struct siw_iwarp_tx *c_tx, void *= paddr) unsigned long part =3D bytes - (PAGE_SIZE - off); =20 memcpy(paddr, buffer + off, part); - kunmap(p); + kunmap_thread(p); =20 if (!mem->is_pbl) p =3D siw_get_upage(mem->umem, @@ -96,10 +96,10 @@ static int siw_try_1seg(struct siw_iwarp_tx *c_tx, void= *paddr) if (unlikely(!p)) return -EFAULT; =20 - buffer =3D kmap(p); + buffer =3D kmap_thread(p); memcpy(paddr + part, buffer, bytes - part); } - kunmap(p); + kunmap_thread(p); } } return (int)bytes; @@ -505,7 +505,7 @@ static int siw_tx_hdt(struct siw_iwarp_tx *c_tx, struct= socket *s) page_array[seg] =3D p; =20 if (!c_tx->use_sendpage) { - iov[seg].iov_base =3D kmap(p) + fp_off; + iov[seg].iov_base =3D kmap_thread(p) + fp_off; iov[seg].iov_len =3D plen; =20 /* Remember for later kunmap() */ @@ -518,9 +518,9 @@ static int siw_tx_hdt(struct siw_iwarp_tx *c_tx, struct= socket *s) plen); } else if (do_crc) { crypto_shash_update(c_tx->mpa_crc_hd, - kmap(p) + fp_off, + kmap_thread(p) + fp_off, plen); - kunmap(p); + kunmap_thread(p); } } else { u64 va =3D sge->laddr + sge_off; --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273104; cv=none; d=zohomail.com; s=zohoarc; b=O9+A+dESWcgSbbti3QMX+jgk4ztFLpNSUTh8hwHGHBWJ6x+GHmi0EaFLxsQCqIzmuisx+Kw7+xU8fmyI4xsJHYzi4/dRB+AlDOuIdyd714LJAID8VCGk/AXpNw1GuJwXahA5Tcg92+nz0R1JsGgr75TfVLfNl3vtO4Vjd7gUcoE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273104; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=MPwRdOgkHEEgn4TX55J+cDcBUTk4G0u1IHpDtrIlyvY=; b=CX1gtmrHuqy0ThehgKlmIx/tMiosobZN6tUzohpLqTiu4pKxFls02xBYvdtedg24geGYjXiK55NT4q97mXj1bJrIaK6NdVYOShggF7JgGQfhKtcMqJoqfRRYRVkFrNMA3zuGulDeneN4hq6oq9UU3YGyl3hoAWnQGYHoo3Rdn4U= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273104378529.3936914033028; Fri, 9 Oct 2020 12:51:44 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5059.12989 (Exim 4.92) (envelope-from ) id 1kQyQM-0001oZ-OX; Fri, 09 Oct 2020 19:51:30 +0000 Received: by outflank-mailman (output) from mailman id 5059.12989; Fri, 09 Oct 2020 19:51:30 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQM-0001oQ-Jl; Fri, 09 Oct 2020 19:51:30 +0000 Received: by outflank-mailman (input) for mailman id 5059; Fri, 09 Oct 2020 19:51:29 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQL-0001nZ-SQ for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:51:29 +0000 Received: from mga18.intel.com (unknown [134.134.136.126]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id ea353239-8838-4285-98ec-2159d2193702; Fri, 09 Oct 2020 19:51:27 +0000 (UTC) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:27 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:25 -0700 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQL-0001nZ-SQ for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:51:29 +0000 Received: from mga18.intel.com (unknown [134.134.136.126]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id ea353239-8838-4285-98ec-2159d2193702; Fri, 09 Oct 2020 19:51:27 +0000 (UTC) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:27 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:25 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: ea353239-8838-4285-98ec-2159d2193702 IronPort-SDR: zN+BPdbSz58gNhMlaTO57LfM2A3FvsmcOIfqRBDPJG4d31G/7sexBRpKrLNyZv1BkBWUCIjw0p nEaUVK7qAHXA== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="153363415" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="153363415" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: zNYl6viNpTmcuoOUFeW6ebDlF6mcWw7xHrLDRpkX9eSJEFyww70EqY5cZFdXSl9ODsqjoVqJW/ EpbiFUFW5goQ== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="329006240" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , "David S. Miller" , Jakub Kicinski , Jesse Brandeburg , 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 11/58] drivers/net: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:49:46 -0700 Message-Id: <20201009195033.3208459-12-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny The kmap() calls in these drivers are localized to a single thread. To avoid the over head of global PKRS updates use the new kmap_thread() call. Cc: "David S. Miller" Cc: Jakub Kicinski Cc: Jesse Brandeburg Signed-off-by: Ira Weiny --- drivers/net/ethernet/intel/igb/igb_ethtool.c | 4 ++-- drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/intel/igb/igb_ethtool.c b/drivers/net/eth= ernet/intel/igb/igb_ethtool.c index 6e8231c1ddf0..ac9189752012 100644 --- a/drivers/net/ethernet/intel/igb/igb_ethtool.c +++ b/drivers/net/ethernet/intel/igb/igb_ethtool.c @@ -1794,14 +1794,14 @@ static int igb_check_lbtest_frame(struct igb_rx_buf= fer *rx_buffer, =20 frame_size >>=3D 1; =20 - data =3D kmap(rx_buffer->page); + data =3D kmap_thread(rx_buffer->page); =20 if (data[3] !=3D 0xFF || data[frame_size + 10] !=3D 0xBE || data[frame_size + 12] !=3D 0xAF) match =3D false; =20 - kunmap(rx_buffer->page); + kunmap_thread(rx_buffer->page); =20 return match; } diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c b/drivers/net= /ethernet/intel/ixgbe/ixgbe_ethtool.c index 71ec908266a6..7d469425f8b4 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c @@ -1963,14 +1963,14 @@ static bool ixgbe_check_lbtest_frame(struct ixgbe_r= x_buffer *rx_buffer, =20 frame_size >>=3D 1; =20 - data =3D kmap(rx_buffer->page) + rx_buffer->page_offset; + data =3D kmap_thread(rx_buffer->page) + rx_buffer->page_offset; =20 if (data[3] !=3D 0xFF || data[frame_size + 10] !=3D 0xBE || data[frame_size + 12] !=3D 0xAF) match =3D false; =20 - kunmap(rx_buffer->page); + kunmap_thread(rx_buffer->page); =20 return match; } --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273504; cv=none; d=zohomail.com; s=zohoarc; b=DNgHndEBDn/E1UMT6hEotDr6Xo28cYawa6HHUpjPCVRKyCoLUKN6yjHRu9CrBkoWJHVASlpBR5lp+90FxgRijgdaNQY/9MIT2I2iAWHw9qoVuoaO/1B+QSq2h2p2Rc9HaonwK+6/5YFGDh7Al7/Z8uIxI13fYGsy4MtOSSBsTwc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273504; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=1P+AYyqYPjG70E5S9nUnMzJfsNNrr3s7iSA2qERbpaQ=; b=QskabQS2OhR8TIRuIP3BLqM6nGjPbyNoqlRhzhWLK5I7UJ3HjIudX8VdwOz3Ul14BH5X+ii7ig1geDyK/8zx/MIzbTKGyzmkO3TSc5MAt4oC0WwkhuoVOY+GXKSDnKLEXENVNVt8pUmNATGZo8/WTnINyOztbnf0nBz92xohiUA= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273504937640.8949339798456; Fri, 9 Oct 2020 12:58:24 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5170.13493 (Exim 4.92) (envelope-from ) id 1kQyWq-0007Ft-HH; Fri, 09 Oct 2020 19:58:12 +0000 Received: by outflank-mailman (output) from mailman id 5170.13493; Fri, 09 Oct 2020 19:58:12 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyWq-0007Fm-E7; Fri, 09 Oct 2020 19:58:12 +0000 Received: by outflank-mailman (input) for mailman id 5170; Fri, 09 Oct 2020 19:58:11 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQW-00017t-O1 for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:51:40 +0000 Received: from mga17.intel.com (unknown [192.55.52.151]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id b6a77be5-dfa3-4325-b5d5-64874a8f25aa; Fri, 09 Oct 2020 19:51:30 +0000 (UTC) Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:29 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:28 -0700 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQW-00017t-O1 for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:51:40 +0000 Received: from mga17.intel.com (unknown [192.55.52.151]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id b6a77be5-dfa3-4325-b5d5-64874a8f25aa; Fri, 09 Oct 2020 19:51:30 +0000 (UTC) Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:29 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:28 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: b6a77be5-dfa3-4325-b5d5-64874a8f25aa IronPort-SDR: hQbQJaHKT1qYoXdodrzz5AwO+ossNkFoGtKaMa110sFHVGe5CcmJs7aOsl7Sse7UQvhIOgTdbb oh4G8BA5Z9wg== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="145397298" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="145397298" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: 0+lGONiHFSeyE/0kQGUe/v/Z0vqstKsQGCedA4TvP63fkNzDWGjPYFj9hsR1yECUQTFrwG697Z McTBAsxZaLwQ== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="298419323" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , David Howells , 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 12/58] fs/afs: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:49:47 -0700 Message-Id: <20201009195033.3208459-13-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 Content-Type: text/plain; charset="utf-8" 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: David Howells Signed-off-by: Ira Weiny --- fs/afs/dir.c | 16 ++++++++-------- fs/afs/dir_edit.c | 16 ++++++++-------- fs/afs/mntpt.c | 4 ++-- fs/afs/write.c | 4 ++-- 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/fs/afs/dir.c b/fs/afs/dir.c index 1d2e61e0ab04..5d01cdb590de 100644 --- a/fs/afs/dir.c +++ b/fs/afs/dir.c @@ -127,14 +127,14 @@ static bool afs_dir_check_page(struct afs_vnode *dvno= de, struct page *page, qty /=3D sizeof(union afs_xdr_dir_block); =20 /* check them */ - dbuf =3D kmap(page); + dbuf =3D kmap_thread(page); for (tmp =3D 0; tmp < qty; tmp++) { if (dbuf->blocks[tmp].hdr.magic !=3D AFS_DIR_MAGIC) { printk("kAFS: %s(%lx): bad magic %d/%d is %04hx\n", __func__, dvnode->vfs_inode.i_ino, tmp, qty, ntohs(dbuf->blocks[tmp].hdr.magic)); trace_afs_dir_check_failed(dvnode, off, i_size); - kunmap(page); + kunmap_thread(page); trace_afs_file_error(dvnode, -EIO, afs_file_error_dir_bad_magic); goto error; } @@ -146,7 +146,7 @@ static bool afs_dir_check_page(struct afs_vnode *dvnode= , struct page *page, ((u8 *)&dbuf->blocks[tmp])[AFS_DIR_BLOCK_SIZE - 1] =3D 0; } =20 - kunmap(page); + kunmap_thread(page); =20 checked: afs_stat_v(dvnode, n_read_dir); @@ -177,13 +177,13 @@ static bool afs_dir_check_pages(struct afs_vnode *dvn= ode, struct afs_read *req) req->pos, req->index, req->nr_pages, req->offset); =20 for (i =3D 0; i < req->nr_pages; i++) { - dbuf =3D kmap(req->pages[i]); + dbuf =3D kmap_thread(req->pages[i]); for (j =3D 0; j < qty; j++) { union afs_xdr_dir_block *block =3D &dbuf->blocks[j]; =20 pr_warn("[%02x] %32phN\n", i * qty + j, block); } - kunmap(req->pages[i]); + kunmap_thread(req->pages[i]); } return false; } @@ -481,7 +481,7 @@ static int afs_dir_iterate(struct inode *dir, struct di= r_context *ctx, =20 limit =3D blkoff & ~(PAGE_SIZE - 1); =20 - dbuf =3D kmap(page); + dbuf =3D kmap_thread(page); =20 /* deal with the individual blocks stashed on this page */ do { @@ -489,7 +489,7 @@ static int afs_dir_iterate(struct inode *dir, struct di= r_context *ctx, sizeof(union afs_xdr_dir_block)]; ret =3D afs_dir_iterate_block(dvnode, ctx, dblock, blkoff); if (ret !=3D 1) { - kunmap(page); + kunmap_thread(page); goto out; } =20 @@ -497,7 +497,7 @@ static int afs_dir_iterate(struct inode *dir, struct di= r_context *ctx, =20 } while (ctx->pos < dir->i_size && blkoff < limit); =20 - kunmap(page); + kunmap_thread(page); ret =3D 0; } =20 diff --git a/fs/afs/dir_edit.c b/fs/afs/dir_edit.c index b108528bf010..35ed6828e205 100644 --- a/fs/afs/dir_edit.c +++ b/fs/afs/dir_edit.c @@ -218,7 +218,7 @@ void afs_edit_dir_add(struct afs_vnode *vnode, need_slots =3D round_up(12 + name->len + 1 + 4, AFS_DIR_DIRENT_SIZE); need_slots /=3D AFS_DIR_DIRENT_SIZE; =20 - meta_page =3D kmap(page0); + meta_page =3D kmap_thread(page0); meta =3D &meta_page->blocks[0]; if (i_size =3D=3D 0) goto new_directory; @@ -247,7 +247,7 @@ void afs_edit_dir_add(struct afs_vnode *vnode, set_page_private(page, 1); SetPagePrivate(page); } - dir_page =3D kmap(page); + dir_page =3D kmap_thread(page); } =20 /* Abandon the edit if we got a callback break. */ @@ -284,7 +284,7 @@ void afs_edit_dir_add(struct afs_vnode *vnode, =20 if (page !=3D page0) { unlock_page(page); - kunmap(page); + kunmap_thread(page); put_page(page); } } @@ -323,7 +323,7 @@ void afs_edit_dir_add(struct afs_vnode *vnode, afs_set_contig_bits(block, slot, need_slots); if (page !=3D page0) { unlock_page(page); - kunmap(page); + kunmap_thread(page); put_page(page); } =20 @@ -337,7 +337,7 @@ void afs_edit_dir_add(struct afs_vnode *vnode, =20 out_unmap: unlock_page(page0); - kunmap(page0); + kunmap_thread(page0); put_page(page0); _leave(""); return; @@ -346,7 +346,7 @@ void afs_edit_dir_add(struct afs_vnode *vnode, trace_afs_edit_dir(vnode, why, afs_edit_dir_create_inval, 0, 0, 0, 0, nam= e->name); clear_bit(AFS_VNODE_DIR_VALID, &vnode->flags); if (page !=3D page0) { - kunmap(page); + kunmap_thread(page); put_page(page); } goto out_unmap; @@ -398,7 +398,7 @@ void afs_edit_dir_remove(struct afs_vnode *vnode, need_slots =3D round_up(12 + name->len + 1 + 4, AFS_DIR_DIRENT_SIZE); need_slots /=3D AFS_DIR_DIRENT_SIZE; =20 - meta_page =3D kmap(page0); + meta_page =3D kmap_thread(page0); meta =3D &meta_page->blocks[0]; =20 /* Find a page that has sufficient slots available. Each VM page @@ -410,7 +410,7 @@ void afs_edit_dir_remove(struct afs_vnode *vnode, page =3D find_lock_page(vnode->vfs_inode.i_mapping, index); if (!page) goto error; - dir_page =3D kmap(page); + dir_page =3D kmap_thread(page); } else { page =3D page0; dir_page =3D meta_page; diff --git a/fs/afs/mntpt.c b/fs/afs/mntpt.c index 79bc5f1338ed..562454e2fd5c 100644 --- a/fs/afs/mntpt.c +++ b/fs/afs/mntpt.c @@ -139,11 +139,11 @@ static int afs_mntpt_set_params(struct fs_context *fc= , struct dentry *mntpt) return ret; } =20 - buf =3D kmap(page); + buf =3D kmap_thread(page); ret =3D -EINVAL; if (buf[size - 1] =3D=3D '.') ret =3D vfs_parse_fs_string(fc, "source", buf, size - 1); - kunmap(page); + kunmap_thread(page); put_page(page); if (ret < 0) return ret; diff --git a/fs/afs/write.c b/fs/afs/write.c index 4b2265cb1891..c56e5b4db4ae 100644 --- a/fs/afs/write.c +++ b/fs/afs/write.c @@ -38,9 +38,9 @@ static int afs_fill_page(struct afs_vnode *vnode, struct = key *key, if (pos >=3D vnode->vfs_inode.i_size) { p =3D pos & ~PAGE_MASK; ASSERTCMP(p + len, <=3D, PAGE_SIZE); - data =3D kmap(page); + data =3D kmap_thread(page); memset(data + p, 0, len); - kunmap(page); + kunmap_thread(page); return 0; } =20 --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273116; cv=none; d=zohomail.com; s=zohoarc; b=nxJ65JW6bRx5YbTpcdyX9QorxnmZo41wxu3xiJZv9Wc5p6OcP+U2LONTslpuPFU/i11IiyhzxUgmPT2KhiYLoTsGlC/skZtHrSMwASWQ8R6HQy231dohN2qB4pI4MH2QBMmKab92+VTdnr+BXSgrR3kiuD2vi3sb9lxmWLvYzpQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273116; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=UtG6h6XUoKdNQtBSpjYVfT4JcGeZsjAfBWlB4yCg1G0=; b=TMh/+V1IiA+KHWkBbx5usOwBepEKQBNWodMKfVYrP9Yi+9yIKyFXpur3zcIybmqfVMHRvV+EEf3pv1RifSbcE27V5ZYev3dcFLh7L0WOs5cM5v2JcFsnqG+/L6COR01xElcGwwhPO/Gd4J0jQbWonvzdhdSKKsIw38oNV9i18JI= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273116197725.5573994252609; Fri, 9 Oct 2020 12:51:56 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5062.13025 (Exim 4.92) (envelope-from ) id 1kQyQU-00022T-UL; Fri, 09 Oct 2020 19:51:38 +0000 Received: by outflank-mailman (output) from mailman id 5062.13025; Fri, 09 Oct 2020 19:51:38 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQU-00022I-Nx; Fri, 09 Oct 2020 19:51:38 +0000 Received: by outflank-mailman (input) for mailman id 5062; Fri, 09 Oct 2020 19:51:38 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQU-00021L-71 for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:51:38 +0000 Received: from mga07.intel.com (unknown [134.134.136.100]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 1bacf52a-8f3a-4f3b-914a-0b5e856a8218; Fri, 09 Oct 2020 19:51:34 +0000 (UTC) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:33 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga002-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:33 -0700 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQU-00021L-71 for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:51:38 +0000 Received: from mga07.intel.com (unknown [134.134.136.100]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 1bacf52a-8f3a-4f3b-914a-0b5e856a8218; Fri, 09 Oct 2020 19:51:34 +0000 (UTC) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:33 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga002-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:33 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 1bacf52a-8f3a-4f3b-914a-0b5e856a8218 IronPort-SDR: uJZ9XKGvc0vuyW5esmXJjoBYWlLV2eRw1BQlkNxcyXAAFhqSRmwHmiALWdPZwNgH9Q0ILMf4gI 34EIYAGYWR9w== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="229715047" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="229715047" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: HIW7PNpXrID3gOC4BJBiMK8gMhcX7pYwx4FKSDabG5rp79Jg8ur1teAkpcUK61qJFFQS9ID+ws 9ehpgS1/cOeQ== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="349957192" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Chris Mason , Josef Bacik , David Sterba , 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 13/58] fs/btrfs: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:49:48 -0700 Message-Id: <20201009195033.3208459-14-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 Content-Type: text/plain; charset="utf-8" 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: Chris Mason Cc: Josef Bacik Cc: David Sterba Signed-off-by: Ira Weiny --- fs/btrfs/check-integrity.c | 4 ++-- fs/btrfs/compression.c | 4 ++-- fs/btrfs/inode.c | 16 ++++++++-------- fs/btrfs/lzo.c | 24 ++++++++++++------------ fs/btrfs/raid56.c | 34 +++++++++++++++++----------------- fs/btrfs/reflink.c | 8 ++++---- fs/btrfs/send.c | 4 ++-- fs/btrfs/zlib.c | 32 ++++++++++++++++---------------- fs/btrfs/zstd.c | 20 ++++++++++---------- 9 files changed, 73 insertions(+), 73 deletions(-) diff --git a/fs/btrfs/check-integrity.c b/fs/btrfs/check-integrity.c index 81a8c87a5afb..9e5a02512ab5 100644 --- a/fs/btrfs/check-integrity.c +++ b/fs/btrfs/check-integrity.c @@ -2706,7 +2706,7 @@ static void __btrfsic_submit_bio(struct bio *bio) =20 bio_for_each_segment(bvec, bio, iter) { BUG_ON(bvec.bv_len !=3D PAGE_SIZE); - mapped_datav[i] =3D kmap(bvec.bv_page); + mapped_datav[i] =3D kmap_thread(bvec.bv_page); i++; =20 if (dev_state->state->print_mask & @@ -2720,7 +2720,7 @@ static void __btrfsic_submit_bio(struct bio *bio) bio, &bio_is_patched, bio->bi_opf); bio_for_each_segment(bvec, bio, iter) - kunmap(bvec.bv_page); + kunmap_thread(bvec.bv_page); kfree(mapped_datav); } else if (NULL !=3D dev_state && (bio->bi_opf & REQ_PREFLUSH)) { if (dev_state->state->print_mask & diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c index 1ab56a734e70..5944fb36d68a 100644 --- a/fs/btrfs/compression.c +++ b/fs/btrfs/compression.c @@ -1626,7 +1626,7 @@ static void heuristic_collect_sample(struct inode *in= ode, u64 start, u64 end, curr_sample_pos =3D 0; while (index < index_end) { page =3D find_get_page(inode->i_mapping, index); - in_data =3D kmap(page); + in_data =3D kmap_thread(page); /* Handle case where the start is not aligned to PAGE_SIZE */ i =3D start % PAGE_SIZE; while (i < PAGE_SIZE - SAMPLING_READ_SIZE) { @@ -1639,7 +1639,7 @@ static void heuristic_collect_sample(struct inode *in= ode, u64 start, u64 end, start +=3D SAMPLING_INTERVAL; curr_sample_pos +=3D SAMPLING_READ_SIZE; } - kunmap(page); + kunmap_thread(page); put_page(page); =20 index++; diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 9570458aa847..9710a52c6c42 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -4603,7 +4603,7 @@ int btrfs_truncate_block(struct inode *inode, loff_t = from, loff_t len, if (offset !=3D blocksize) { if (!len) len =3D blocksize - offset; - kaddr =3D kmap(page); + kaddr =3D kmap_thread(page); if (front) memset(kaddr + (block_start - page_offset(page)), 0, offset); @@ -4611,7 +4611,7 @@ int btrfs_truncate_block(struct inode *inode, loff_t = from, loff_t len, memset(kaddr + (block_start - page_offset(page)) + offset, 0, len); flush_dcache_page(page); - kunmap(page); + kunmap_thread(page); } ClearPageChecked(page); set_page_dirty(page); @@ -6509,9 +6509,9 @@ static noinline int uncompress_inline(struct btrfs_pa= th *path, */ =20 if (max_size + pg_offset < PAGE_SIZE) { - char *map =3D kmap(page); + char *map =3D kmap_thread(page); memset(map + pg_offset + max_size, 0, PAGE_SIZE - max_size - pg_offset); - kunmap(page); + kunmap_thread(page); } kfree(tmp); return ret; @@ -6704,7 +6704,7 @@ struct extent_map *btrfs_get_extent(struct btrfs_inod= e *inode, goto out; } } else { - map =3D kmap(page); + map =3D kmap_thread(page); read_extent_buffer(leaf, map + pg_offset, ptr, copy_size); if (pg_offset + copy_size < PAGE_SIZE) { @@ -6712,7 +6712,7 @@ struct extent_map *btrfs_get_extent(struct btrfs_inod= e *inode, PAGE_SIZE - pg_offset - copy_size); } - kunmap(page); + kunmap_thread(page); } flush_dcache_page(page); } @@ -8326,10 +8326,10 @@ vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf) zero_start =3D PAGE_SIZE; =20 if (zero_start !=3D PAGE_SIZE) { - kaddr =3D kmap(page); + kaddr =3D kmap_thread(page); memset(kaddr + zero_start, 0, PAGE_SIZE - zero_start); flush_dcache_page(page); - kunmap(page); + kunmap_thread(page); } ClearPageChecked(page); set_page_dirty(page); diff --git a/fs/btrfs/lzo.c b/fs/btrfs/lzo.c index aa9cd11f4b78..f29dcc9ec573 100644 --- a/fs/btrfs/lzo.c +++ b/fs/btrfs/lzo.c @@ -140,7 +140,7 @@ int lzo_compress_pages(struct list_head *ws, struct add= ress_space *mapping, *total_in =3D 0; =20 in_page =3D find_get_page(mapping, start >> PAGE_SHIFT); - data_in =3D kmap(in_page); + data_in =3D kmap_thread(in_page); =20 /* * store the size of all chunks of compressed data in @@ -151,7 +151,7 @@ int lzo_compress_pages(struct list_head *ws, struct add= ress_space *mapping, ret =3D -ENOMEM; goto out; } - cpage_out =3D kmap(out_page); + cpage_out =3D kmap_thread(out_page); out_offset =3D LZO_LEN; tot_out =3D LZO_LEN; pages[0] =3D out_page; @@ -209,7 +209,7 @@ int lzo_compress_pages(struct list_head *ws, struct add= ress_space *mapping, if (out_len =3D=3D 0 && tot_in >=3D len) break; =20 - kunmap(out_page); + kunmap_thread(out_page); if (nr_pages =3D=3D nr_dest_pages) { out_page =3D NULL; ret =3D -E2BIG; @@ -221,7 +221,7 @@ int lzo_compress_pages(struct list_head *ws, struct add= ress_space *mapping, ret =3D -ENOMEM; goto out; } - cpage_out =3D kmap(out_page); + cpage_out =3D kmap_thread(out_page); pages[nr_pages++] =3D out_page; =20 pg_bytes_left =3D PAGE_SIZE; @@ -243,12 +243,12 @@ int lzo_compress_pages(struct list_head *ws, struct a= ddress_space *mapping, break; =20 bytes_left =3D len - tot_in; - kunmap(in_page); + kunmap_thread(in_page); put_page(in_page); =20 start +=3D PAGE_SIZE; in_page =3D find_get_page(mapping, start >> PAGE_SHIFT); - data_in =3D kmap(in_page); + data_in =3D kmap_thread(in_page); in_len =3D min(bytes_left, PAGE_SIZE); } =20 @@ -258,10 +258,10 @@ int lzo_compress_pages(struct list_head *ws, struct a= ddress_space *mapping, } =20 /* store the size of all chunks of compressed data */ - cpage_out =3D kmap(pages[0]); + cpage_out =3D kmap_thread(pages[0]); write_compress_length(cpage_out, tot_out); =20 - kunmap(pages[0]); + kunmap_thread(pages[0]); =20 ret =3D 0; *total_out =3D tot_out; @@ -269,10 +269,10 @@ int lzo_compress_pages(struct list_head *ws, struct a= ddress_space *mapping, out: *out_pages =3D nr_pages; if (out_page) - kunmap(out_page); + kunmap_thread(out_page); =20 if (in_page) { - kunmap(in_page); + kunmap_thread(in_page); put_page(in_page); } =20 @@ -305,7 +305,7 @@ int lzo_decompress_bio(struct list_head *ws, struct com= pressed_bio *cb) u64 disk_start =3D cb->start; struct bio *orig_bio =3D cb->orig_bio; =20 - data_in =3D kmap(pages_in[0]); + data_in =3D kmap_thread(pages_in[0]); tot_len =3D read_compress_length(data_in); /* * Compressed data header check. @@ -387,7 +387,7 @@ int lzo_decompress_bio(struct list_head *ws, struct com= pressed_bio *cb) else kunmap(pages_in[page_in_index]); =20 - data_in =3D kmap(pages_in[++page_in_index]); + data_in =3D kmap_thread(pages_in[++page_in_index]); =20 in_page_bytes_left =3D PAGE_SIZE; in_offset =3D 0; diff --git a/fs/btrfs/raid56.c b/fs/btrfs/raid56.c index 255490f42b5d..34e646e4548c 100644 --- a/fs/btrfs/raid56.c +++ b/fs/btrfs/raid56.c @@ -262,13 +262,13 @@ static void cache_rbio_pages(struct btrfs_raid_bio *r= bio) if (!rbio->bio_pages[i]) continue; =20 - s =3D kmap(rbio->bio_pages[i]); - d =3D kmap(rbio->stripe_pages[i]); + s =3D kmap_thread(rbio->bio_pages[i]); + d =3D kmap_thread(rbio->stripe_pages[i]); =20 copy_page(d, s); =20 - kunmap(rbio->bio_pages[i]); - kunmap(rbio->stripe_pages[i]); + kunmap_thread(rbio->bio_pages[i]); + kunmap_thread(rbio->stripe_pages[i]); SetPageUptodate(rbio->stripe_pages[i]); } set_bit(RBIO_CACHE_READY_BIT, &rbio->flags); @@ -1241,13 +1241,13 @@ static noinline void finish_rmw(struct btrfs_raid_b= io *rbio) /* first collect one page from each data stripe */ for (stripe =3D 0; stripe < nr_data; stripe++) { p =3D page_in_rbio(rbio, stripe, pagenr, 0); - pointers[stripe] =3D kmap(p); + pointers[stripe] =3D kmap_thread(p); } =20 /* then add the parity stripe */ p =3D rbio_pstripe_page(rbio, pagenr); SetPageUptodate(p); - pointers[stripe++] =3D kmap(p); + pointers[stripe++] =3D kmap_thread(p); =20 if (has_qstripe) { =20 @@ -1257,7 +1257,7 @@ static noinline void finish_rmw(struct btrfs_raid_bio= *rbio) */ p =3D rbio_qstripe_page(rbio, pagenr); SetPageUptodate(p); - pointers[stripe++] =3D kmap(p); + pointers[stripe++] =3D kmap_thread(p); =20 raid6_call.gen_syndrome(rbio->real_stripes, PAGE_SIZE, pointers); @@ -1269,7 +1269,7 @@ static noinline void finish_rmw(struct btrfs_raid_bio= *rbio) =20 =20 for (stripe =3D 0; stripe < rbio->real_stripes; stripe++) - kunmap(page_in_rbio(rbio, stripe, pagenr, 0)); + kunmap_thread(page_in_rbio(rbio, stripe, pagenr, 0)); } =20 /* @@ -1835,7 +1835,7 @@ static void __raid_recover_end_io(struct btrfs_raid_b= io *rbio) } else { page =3D rbio_stripe_page(rbio, stripe, pagenr); } - pointers[stripe] =3D kmap(page); + pointers[stripe] =3D kmap_thread(page); } =20 /* all raid6 handling here */ @@ -1940,7 +1940,7 @@ static void __raid_recover_end_io(struct btrfs_raid_b= io *rbio) } else { page =3D rbio_stripe_page(rbio, stripe, pagenr); } - kunmap(page); + kunmap_thread(page); } } =20 @@ -2379,18 +2379,18 @@ static noinline void finish_parity_scrub(struct btr= fs_raid_bio *rbio, /* first collect one page from each data stripe */ for (stripe =3D 0; stripe < nr_data; stripe++) { p =3D page_in_rbio(rbio, stripe, pagenr, 0); - pointers[stripe] =3D kmap(p); + pointers[stripe] =3D kmap_thread(p); } =20 /* then add the parity stripe */ - pointers[stripe++] =3D kmap(p_page); + pointers[stripe++] =3D kmap_thread(p_page); =20 if (has_qstripe) { /* * raid6, add the qstripe and call the * library function to fill in our p/q */ - pointers[stripe++] =3D kmap(q_page); + pointers[stripe++] =3D kmap_thread(q_page); =20 raid6_call.gen_syndrome(rbio->real_stripes, PAGE_SIZE, pointers); @@ -2402,17 +2402,17 @@ static noinline void finish_parity_scrub(struct btr= fs_raid_bio *rbio, =20 /* Check scrubbing parity and repair it */ p =3D rbio_stripe_page(rbio, rbio->scrubp, pagenr); - parity =3D kmap(p); + parity =3D kmap_thread(p); if (memcmp(parity, pointers[rbio->scrubp], PAGE_SIZE)) copy_page(parity, pointers[rbio->scrubp]); else /* Parity is right, needn't writeback */ bitmap_clear(rbio->dbitmap, pagenr, 1); - kunmap(p); + kunmap_thread(p); =20 for (stripe =3D 0; stripe < nr_data; stripe++) - kunmap(page_in_rbio(rbio, stripe, pagenr, 0)); - kunmap(p_page); + kunmap_thread(page_in_rbio(rbio, stripe, pagenr, 0)); + kunmap_thread(p_page); } =20 __free_page(p_page); diff --git a/fs/btrfs/reflink.c b/fs/btrfs/reflink.c index 5cd02514cf4d..10e53d7eba8c 100644 --- a/fs/btrfs/reflink.c +++ b/fs/btrfs/reflink.c @@ -92,10 +92,10 @@ static int copy_inline_to_page(struct inode *inode, if (comp_type =3D=3D BTRFS_COMPRESS_NONE) { char *map; =20 - map =3D kmap(page); + map =3D kmap_thread(page); memcpy(map, data_start, datal); flush_dcache_page(page); - kunmap(page); + kunmap_thread(page); } else { ret =3D btrfs_decompress(comp_type, data_start, page, 0, inline_size, datal); @@ -119,10 +119,10 @@ static int copy_inline_to_page(struct inode *inode, if (datal < block_size) { char *map; =20 - map =3D kmap(page); + map =3D kmap_thread(page); memset(map + datal, 0, block_size - datal); flush_dcache_page(page); - kunmap(page); + kunmap_thread(page); } =20 SetPageUptodate(page); diff --git a/fs/btrfs/send.c b/fs/btrfs/send.c index d9813a5b075a..06c383d3dc43 100644 --- a/fs/btrfs/send.c +++ b/fs/btrfs/send.c @@ -4863,9 +4863,9 @@ static ssize_t fill_read_buf(struct send_ctx *sctx, u= 64 offset, u32 len) } } =20 - addr =3D kmap(page); + addr =3D kmap_thread(page); memcpy(sctx->read_buf + ret, addr + pg_offset, cur_len); - kunmap(page); + kunmap_thread(page); unlock_page(page); put_page(page); index++; diff --git a/fs/btrfs/zlib.c b/fs/btrfs/zlib.c index 05615a1099db..45b7a907bab3 100644 --- a/fs/btrfs/zlib.c +++ b/fs/btrfs/zlib.c @@ -126,7 +126,7 @@ int zlib_compress_pages(struct list_head *ws, struct ad= dress_space *mapping, ret =3D -ENOMEM; goto out; } - cpage_out =3D kmap(out_page); + cpage_out =3D kmap_thread(out_page); pages[0] =3D out_page; nr_pages =3D 1; =20 @@ -149,12 +149,12 @@ int zlib_compress_pages(struct list_head *ws, struct = address_space *mapping, =20 for (i =3D 0; i < in_buf_pages; i++) { if (in_page) { - kunmap(in_page); + kunmap_thread(in_page); put_page(in_page); } in_page =3D find_get_page(mapping, start >> PAGE_SHIFT); - data_in =3D kmap(in_page); + data_in =3D kmap_thread(in_page); memcpy(workspace->buf + i * PAGE_SIZE, data_in, PAGE_SIZE); start +=3D PAGE_SIZE; @@ -162,12 +162,12 @@ int zlib_compress_pages(struct list_head *ws, struct = address_space *mapping, workspace->strm.next_in =3D workspace->buf; } else { if (in_page) { - kunmap(in_page); + kunmap_thread(in_page); put_page(in_page); } in_page =3D find_get_page(mapping, start >> PAGE_SHIFT); - data_in =3D kmap(in_page); + data_in =3D kmap_thread(in_page); start +=3D PAGE_SIZE; workspace->strm.next_in =3D data_in; } @@ -196,7 +196,7 @@ int zlib_compress_pages(struct list_head *ws, struct ad= dress_space *mapping, * the stream end if required */ if (workspace->strm.avail_out =3D=3D 0) { - kunmap(out_page); + kunmap_thread(out_page); if (nr_pages =3D=3D nr_dest_pages) { out_page =3D NULL; ret =3D -E2BIG; @@ -207,7 +207,7 @@ int zlib_compress_pages(struct list_head *ws, struct ad= dress_space *mapping, ret =3D -ENOMEM; goto out; } - cpage_out =3D kmap(out_page); + cpage_out =3D kmap_thread(out_page); pages[nr_pages] =3D out_page; nr_pages++; workspace->strm.avail_out =3D PAGE_SIZE; @@ -234,7 +234,7 @@ int zlib_compress_pages(struct list_head *ws, struct ad= dress_space *mapping, goto out; } else if (workspace->strm.avail_out =3D=3D 0) { /* get another page for the stream end */ - kunmap(out_page); + kunmap_thread(out_page); if (nr_pages =3D=3D nr_dest_pages) { out_page =3D NULL; ret =3D -E2BIG; @@ -245,7 +245,7 @@ int zlib_compress_pages(struct list_head *ws, struct ad= dress_space *mapping, ret =3D -ENOMEM; goto out; } - cpage_out =3D kmap(out_page); + cpage_out =3D kmap_thread(out_page); pages[nr_pages] =3D out_page; nr_pages++; workspace->strm.avail_out =3D PAGE_SIZE; @@ -265,10 +265,10 @@ int zlib_compress_pages(struct list_head *ws, struct = address_space *mapping, out: *out_pages =3D nr_pages; if (out_page) - kunmap(out_page); + kunmap_thread(out_page); =20 if (in_page) { - kunmap(in_page); + kunmap_thread(in_page); put_page(in_page); } return ret; @@ -289,7 +289,7 @@ int zlib_decompress_bio(struct list_head *ws, struct co= mpressed_bio *cb) u64 disk_start =3D cb->start; struct bio *orig_bio =3D cb->orig_bio; =20 - data_in =3D kmap(pages_in[page_in_index]); + data_in =3D kmap_thread(pages_in[page_in_index]); workspace->strm.next_in =3D data_in; workspace->strm.avail_in =3D min_t(size_t, srclen, PAGE_SIZE); workspace->strm.total_in =3D 0; @@ -311,7 +311,7 @@ int zlib_decompress_bio(struct list_head *ws, struct co= mpressed_bio *cb) =20 if (Z_OK !=3D zlib_inflateInit2(&workspace->strm, wbits)) { pr_warn("BTRFS: inflateInit failed\n"); - kunmap(pages_in[page_in_index]); + kunmap_thread(pages_in[page_in_index]); return -EIO; } while (workspace->strm.total_in < srclen) { @@ -339,13 +339,13 @@ int zlib_decompress_bio(struct list_head *ws, struct = compressed_bio *cb) =20 if (workspace->strm.avail_in =3D=3D 0) { unsigned long tmp; - kunmap(pages_in[page_in_index]); + kunmap_thread(pages_in[page_in_index]); page_in_index++; if (page_in_index >=3D total_pages_in) { data_in =3D NULL; break; } - data_in =3D kmap(pages_in[page_in_index]); + data_in =3D kmap_thread(pages_in[page_in_index]); workspace->strm.next_in =3D data_in; tmp =3D srclen - workspace->strm.total_in; workspace->strm.avail_in =3D min(tmp, @@ -359,7 +359,7 @@ int zlib_decompress_bio(struct list_head *ws, struct co= mpressed_bio *cb) done: zlib_inflateEnd(&workspace->strm); if (data_in) - kunmap(pages_in[page_in_index]); + kunmap_thread(pages_in[page_in_index]); if (!ret) zero_fill_bio(orig_bio); return ret; diff --git a/fs/btrfs/zstd.c b/fs/btrfs/zstd.c index 9a4871636c6c..48e03f6dcef7 100644 --- a/fs/btrfs/zstd.c +++ b/fs/btrfs/zstd.c @@ -399,7 +399,7 @@ int zstd_compress_pages(struct list_head *ws, struct ad= dress_space *mapping, =20 /* map in the first page of input data */ in_page =3D find_get_page(mapping, start >> PAGE_SHIFT); - workspace->in_buf.src =3D kmap(in_page); + workspace->in_buf.src =3D kmap_thread(in_page); workspace->in_buf.pos =3D 0; workspace->in_buf.size =3D min_t(size_t, len, PAGE_SIZE); =20 @@ -411,7 +411,7 @@ int zstd_compress_pages(struct list_head *ws, struct ad= dress_space *mapping, goto out; } pages[nr_pages++] =3D out_page; - workspace->out_buf.dst =3D kmap(out_page); + workspace->out_buf.dst =3D kmap_thread(out_page); workspace->out_buf.pos =3D 0; workspace->out_buf.size =3D min_t(size_t, max_out, PAGE_SIZE); =20 @@ -446,7 +446,7 @@ int zstd_compress_pages(struct list_head *ws, struct ad= dress_space *mapping, if (workspace->out_buf.pos =3D=3D workspace->out_buf.size) { tot_out +=3D PAGE_SIZE; max_out -=3D PAGE_SIZE; - kunmap(out_page); + kunmap_thread(out_page); if (nr_pages =3D=3D nr_dest_pages) { out_page =3D NULL; ret =3D -E2BIG; @@ -458,7 +458,7 @@ int zstd_compress_pages(struct list_head *ws, struct ad= dress_space *mapping, goto out; } pages[nr_pages++] =3D out_page; - workspace->out_buf.dst =3D kmap(out_page); + workspace->out_buf.dst =3D kmap_thread(out_page); workspace->out_buf.pos =3D 0; workspace->out_buf.size =3D min_t(size_t, max_out, PAGE_SIZE); @@ -479,7 +479,7 @@ int zstd_compress_pages(struct list_head *ws, struct ad= dress_space *mapping, start +=3D PAGE_SIZE; len -=3D PAGE_SIZE; in_page =3D find_get_page(mapping, start >> PAGE_SHIFT); - workspace->in_buf.src =3D kmap(in_page); + workspace->in_buf.src =3D kmap_thread(in_page); workspace->in_buf.pos =3D 0; workspace->in_buf.size =3D min_t(size_t, len, PAGE_SIZE); } @@ -518,7 +518,7 @@ int zstd_compress_pages(struct list_head *ws, struct ad= dress_space *mapping, goto out; } pages[nr_pages++] =3D out_page; - workspace->out_buf.dst =3D kmap(out_page); + workspace->out_buf.dst =3D kmap_thread(out_page); workspace->out_buf.pos =3D 0; workspace->out_buf.size =3D min_t(size_t, max_out, PAGE_SIZE); } @@ -565,7 +565,7 @@ int zstd_decompress_bio(struct list_head *ws, struct co= mpressed_bio *cb) goto done; } =20 - workspace->in_buf.src =3D kmap(pages_in[page_in_index]); + workspace->in_buf.src =3D kmap_thread(pages_in[page_in_index]); workspace->in_buf.pos =3D 0; workspace->in_buf.size =3D min_t(size_t, srclen, PAGE_SIZE); =20 @@ -601,14 +601,14 @@ int zstd_decompress_bio(struct list_head *ws, struct = compressed_bio *cb) break; =20 if (workspace->in_buf.pos =3D=3D workspace->in_buf.size) { - kunmap(pages_in[page_in_index++]); + kunmap_thread(pages_in[page_in_index++]); if (page_in_index >=3D total_pages_in) { workspace->in_buf.src =3D NULL; ret =3D -EIO; goto done; } srclen -=3D PAGE_SIZE; - workspace->in_buf.src =3D kmap(pages_in[page_in_index]); + workspace->in_buf.src =3D kmap_thread(pages_in[page_in_index]); workspace->in_buf.pos =3D 0; workspace->in_buf.size =3D min_t(size_t, srclen, PAGE_SIZE); } @@ -617,7 +617,7 @@ int zstd_decompress_bio(struct list_head *ws, struct co= mpressed_bio *cb) zero_fill_bio(orig_bio); done: if (workspace->in_buf.src) - kunmap(pages_in[page_in_index]); + kunmap_thread(pages_in[page_in_index]); return ret; } =20 --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273143; cv=none; d=zohomail.com; s=zohoarc; b=HbJkxyTa04z3HScYT9L/5LByfOusTukNCQGETMQ+vP/nxFrtHBaVXKjI3UKEBSs3XufltE2CapAqg+7phTsA88McZu8perTL/QX2Ss6dwfw6FRJRfqiSscojGo3JRYAHlDnNlRLtrxZNn/tnYuIEzRXQXOC/CgJCSyVzXE4VYts= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273143; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=naGntlrkUmv5AdlKUvWy5o9YZRAur0JDRShpBbWV1Ww=; b=ScG+fm4xTH0kRuaCylcLTApCHwEZ8SF7iCebBHNIkdE3rWFj08ItDtjaJZRog/EZMcxb5nHX3CKbL+IkTpH5NMVTdpuS/Xmur75afo1eY0jWmsHHDYRgwAoK7DCX2jpn49CfTPDj7xtBW6Cpybo6cdRmRWW3El+GCHHJm4V54FI= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273143585464.6934974383594; Fri, 9 Oct 2020 12:52:23 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5073.13109 (Exim 4.92) (envelope-from ) id 1kQyQy-0002oJ-41; Fri, 09 Oct 2020 19:52:08 +0000 Received: by outflank-mailman (output) from mailman id 5073.13109; Fri, 09 Oct 2020 19:52:08 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQx-0002o5-V3; Fri, 09 Oct 2020 19:52:07 +0000 Received: by outflank-mailman (input) for mailman id 5073; Fri, 09 Oct 2020 19:52:06 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQw-0002d3-IT for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:06 +0000 Received: from mga05.intel.com (unknown [192.55.52.43]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 96fa9753-0987-4330-bb12-b2e8a3f54d44; Fri, 09 Oct 2020 19:52:01 +0000 (UTC) Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:59 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:37 -0700 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQw-0002d3-IT for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:06 +0000 Received: from mga05.intel.com (unknown [192.55.52.43]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 96fa9753-0987-4330-bb12-b2e8a3f54d44; Fri, 09 Oct 2020 19:52:01 +0000 (UTC) Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:59 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:37 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 96fa9753-0987-4330-bb12-b2e8a3f54d44 IronPort-SDR: qLhhMoyOBDZc/+AW2KGKEP3DfAdFgCaVCOKSxpoyj0Rq/JOYiMVt1e1Bz+zJx2rL+dAIaT43P/ HJ5I4RTHpJEQ== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="250226062" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="250226062" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: 6nDyG/rNIU8VCp7PRxt8N7VM6Ts7FaR6Cq3BMAOPdzxAbIieQhQY1hWISzmf8TSYIGXE2cP/wS 1DDas2UbMNkw== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="345147432" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Steve French , 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 14/58] fs/cifs: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:49:49 -0700 Message-Id: <20201009195033.3208459-15-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 Content-Type: text/plain; charset="utf-8" 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: Steve French Signed-off-by: Ira Weiny --- fs/cifs/cifsencrypt.c | 6 +++--- fs/cifs/file.c | 16 ++++++++-------- fs/cifs/smb2ops.c | 8 ++++---- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/fs/cifs/cifsencrypt.c b/fs/cifs/cifsencrypt.c index 9daa256f69d4..2f8232d01a56 100644 --- a/fs/cifs/cifsencrypt.c +++ b/fs/cifs/cifsencrypt.c @@ -82,17 +82,17 @@ int __cifs_calc_signature(struct smb_rqst *rqst, =20 rqst_page_get_length(rqst, i, &len, &offset); =20 - kaddr =3D (char *) kmap(rqst->rq_pages[i]) + offset; + kaddr =3D (char *) kmap_thread(rqst->rq_pages[i]) + offset; =20 rc =3D crypto_shash_update(shash, kaddr, len); if (rc) { cifs_dbg(VFS, "%s: Could not update with payload\n", __func__); - kunmap(rqst->rq_pages[i]); + kunmap_thread(rqst->rq_pages[i]); return rc; } =20 - kunmap(rqst->rq_pages[i]); + kunmap_thread(rqst->rq_pages[i]); } =20 rc =3D crypto_shash_final(shash, signature); diff --git a/fs/cifs/file.c b/fs/cifs/file.c index be46fab4c96d..6db2caab8852 100644 --- a/fs/cifs/file.c +++ b/fs/cifs/file.c @@ -2145,17 +2145,17 @@ static int cifs_partialpagewrite(struct page *page,= unsigned from, unsigned to) inode =3D page->mapping->host; =20 offset +=3D (loff_t)from; - write_data =3D kmap(page); + write_data =3D kmap_thread(page); write_data +=3D from; =20 if ((to > PAGE_SIZE) || (from > to)) { - kunmap(page); + kunmap_thread(page); return -EIO; } =20 /* racing with truncate? */ if (offset > mapping->host->i_size) { - kunmap(page); + kunmap_thread(page); return 0; /* don't care */ } =20 @@ -2183,7 +2183,7 @@ static int cifs_partialpagewrite(struct page *page, u= nsigned from, unsigned to) rc =3D -EIO; } =20 - kunmap(page); + kunmap_thread(page); return rc; } =20 @@ -2559,10 +2559,10 @@ static int cifs_write_end(struct file *file, struct= address_space *mapping, known which we might as well leverage */ /* BB check if anything else missing out of ppw such as updating last write time */ - page_data =3D kmap(page); + page_data =3D kmap_thread(page); rc =3D cifs_write(cfile, pid, page_data + offset, copied, &pos); /* if (rc < 0) should we set writebehind rc? */ - kunmap(page); + kunmap_thread(page); =20 free_xid(xid); } else { @@ -4511,7 +4511,7 @@ static int cifs_readpage_worker(struct file *file, st= ruct page *page, if (rc =3D=3D 0) goto read_complete; =20 - read_data =3D kmap(page); + read_data =3D kmap_thread(page); /* for reads over a certain size could initiate async read ahead */ =20 rc =3D cifs_read(file, read_data, PAGE_SIZE, poffset); @@ -4540,7 +4540,7 @@ static int cifs_readpage_worker(struct file *file, st= ruct page *page, rc =3D 0; =20 io_error: - kunmap(page); + kunmap_thread(page); unlock_page(page); =20 read_complete: diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c index 32f90dc82c84..a3e7ebab38b6 100644 --- a/fs/cifs/smb2ops.c +++ b/fs/cifs/smb2ops.c @@ -4068,12 +4068,12 @@ smb3_init_transform_rq(struct TCP_Server_Info *serv= er, int num_rqst, =20 rqst_page_get_length(&new_rq[i], j, &len, &offset); =20 - dst =3D (char *) kmap(new_rq[i].rq_pages[j]) + offset; - src =3D (char *) kmap(old_rq[i - 1].rq_pages[j]) + offset; + dst =3D (char *) kmap_thread(new_rq[i].rq_pages[j]) + offset; + src =3D (char *) kmap_thread(old_rq[i - 1].rq_pages[j]) + offset; =20 memcpy(dst, src, len); - kunmap(new_rq[i].rq_pages[j]); - kunmap(old_rq[i - 1].rq_pages[j]); + kunmap_thread(new_rq[i].rq_pages[j]); + kunmap_thread(old_rq[i - 1].rq_pages[j]); } } =20 --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273121; cv=none; d=zohomail.com; s=zohoarc; b=bBXjGrcO4LnRDKj3cKLjG3HKErEXNWUXJOHKouQcz+KeYwY6Yp2DK32/S+gSasDh5GH4kOgHtgiIzlFpOi1zKfKg6GswyLWaXrPTRaPrpsl4FEDPH1451JC8X1/piG2CHUDRUQACYYY32343XWn6RuNoNWKpmMQsRi3Sg752TgY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273121; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=0J5NOPgh0HtZ802PRxPWHebsvNb2udr8UH95ftVhPz4=; b=AQrrplnefRIjx2Av40aEHkR+aB6Yur5HK7He7WiCwKrYAo3C6jUceIerswIHKW66aF9v8unO+KymR/557/pdH6Igbq0RNNzi4FOw7YCK/Zb+W93RAvqyVOYYo0EasvuJk3pk9FvAWwFEkj3GUeyhdqk7V/h0DMsATkCKuLgRbBQ= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273121474608.081320057115; Fri, 9 Oct 2020 12:52:01 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5063.13037 (Exim 4.92) (envelope-from ) id 1kQyQc-0002DB-FO; Fri, 09 Oct 2020 19:51:46 +0000 Received: by outflank-mailman (output) from mailman id 5063.13037; Fri, 09 Oct 2020 19:51:46 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQc-0002Cy-B8; Fri, 09 Oct 2020 19:51:46 +0000 Received: by outflank-mailman (input) for mailman id 5063; Fri, 09 Oct 2020 19:51:45 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQb-0002Bq-9T for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:51:45 +0000 Received: from mga05.intel.com (unknown [192.55.52.43]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 38b255ef-94d7-4d9e-ad22-2e94a778b483; Fri, 09 Oct 2020 19:51:43 +0000 (UTC) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:42 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:41 -0700 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQb-0002Bq-9T for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:51:45 +0000 Received: from mga05.intel.com (unknown [192.55.52.43]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 38b255ef-94d7-4d9e-ad22-2e94a778b483; Fri, 09 Oct 2020 19:51:43 +0000 (UTC) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:42 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:41 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 38b255ef-94d7-4d9e-ad22-2e94a778b483 IronPort-SDR: yccRu5+Zi4ddrJLQZ5u/PzNSuD2a4R8EjkuO9u9NWwWg7uNLyxX6g2DNZFA9NwwtOZXVSyBRXE JuTWe/GvxnrQ== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="250226006" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="250226006" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: /JTFkd5x0991ia3Dqzqc9DQMEj3VkzRKrzcEaYc1Uf7R2BILbYJ/fow/WUSSa3njc7c47Zr56l AjDrFCZ0Z24A== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="389236880" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Herbert Xu , Eric Biggers , Aditya Pakki , 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 15/58] fs/ecryptfs: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:49:50 -0700 Message-Id: <20201009195033.3208459-16-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 Content-Type: text/plain; charset="utf-8" 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: Herbert Xu Cc: Eric Biggers Cc: Aditya Pakki Signed-off-by: Ira Weiny --- fs/ecryptfs/crypto.c | 8 ++++---- fs/ecryptfs/read_write.c | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/fs/ecryptfs/crypto.c b/fs/ecryptfs/crypto.c index 0681540c48d9..e73e00994bee 100644 --- a/fs/ecryptfs/crypto.c +++ b/fs/ecryptfs/crypto.c @@ -469,10 +469,10 @@ int ecryptfs_encrypt_page(struct page *page) } =20 lower_offset =3D lower_offset_for_page(crypt_stat, page); - enc_extent_virt =3D kmap(enc_extent_page); + enc_extent_virt =3D kmap_thread(enc_extent_page); rc =3D ecryptfs_write_lower(ecryptfs_inode, enc_extent_virt, lower_offset, PAGE_SIZE); - kunmap(enc_extent_page); + kunmap_thread(enc_extent_page); if (rc < 0) { ecryptfs_printk(KERN_ERR, "Error attempting to write lower page; rc =3D [%d]\n", @@ -518,10 +518,10 @@ int ecryptfs_decrypt_page(struct page *page) BUG_ON(!(crypt_stat->flags & ECRYPTFS_ENCRYPTED)); =20 lower_offset =3D lower_offset_for_page(crypt_stat, page); - page_virt =3D kmap(page); + page_virt =3D kmap_thread(page); rc =3D ecryptfs_read_lower(page_virt, lower_offset, PAGE_SIZE, ecryptfs_inode); - kunmap(page); + kunmap_thread(page); if (rc < 0) { ecryptfs_printk(KERN_ERR, "Error attempting to read lower page; rc =3D [%d]\n", diff --git a/fs/ecryptfs/read_write.c b/fs/ecryptfs/read_write.c index 0438997ac9d8..5eca4330c0c0 100644 --- a/fs/ecryptfs/read_write.c +++ b/fs/ecryptfs/read_write.c @@ -64,11 +64,11 @@ int ecryptfs_write_lower_page_segment(struct inode *ecr= yptfs_inode, =20 offset =3D ((((loff_t)page_for_lower->index) << PAGE_SHIFT) + offset_in_page); - virt =3D kmap(page_for_lower); + virt =3D kmap_thread(page_for_lower); rc =3D ecryptfs_write_lower(ecryptfs_inode, virt, offset, size); if (rc > 0) rc =3D 0; - kunmap(page_for_lower); + kunmap_thread(page_for_lower); return rc; } =20 @@ -251,11 +251,11 @@ int ecryptfs_read_lower_page_segment(struct page *pag= e_for_ecryptfs, int rc; =20 offset =3D ((((loff_t)page_index) << PAGE_SHIFT) + offset_in_page); - virt =3D kmap(page_for_ecryptfs); + virt =3D kmap_thread(page_for_ecryptfs); rc =3D ecryptfs_read_lower(virt, offset, size, ecryptfs_inode); if (rc > 0) rc =3D 0; - kunmap(page_for_ecryptfs); + kunmap_thread(page_for_ecryptfs); flush_dcache_page(page_for_ecryptfs); return rc; } --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273121; cv=none; d=zohomail.com; s=zohoarc; b=HMT8Pskd2bZxgni87d+v2L80jlc6GiLzJhZTONkJ7J/eKfrX++8iiBwBvkTQBToIxdi0yosn3E98tXQ7JT9DLdrXw3t2E6XXNCzLUtGIxuEC0iDRLt6NSU7pVpR5WzhypAxnSCTMbu0O+Wm482SqFUGHFOpBXvS1+qsUOlLLIjU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273121; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=vqXD2wn1GG9xu0N3B4idvGz6z1zb7YFzA12NIHYJ0Wk=; b=CvEGkghfNTlmWrLl1p6eiCDx7m6qbfyZfQ4Fx70aLlKjH6b36T8hDEfMNd27eX/3tqHeox5O2yFz7BVsLGJxG41suWC2o4nMXEnt+E3ZEvbNHfWTadazqMF9Cz0RrtvT8PO2ANcqIdN4HPI8uvoijKhSMKv5daGHXUq56xoz76A= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273121267566.0803511460512; Fri, 9 Oct 2020 12:52:01 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5064.13049 (Exim 4.92) (envelope-from ) id 1kQyQd-0002G0-UB; Fri, 09 Oct 2020 19:51:47 +0000 Received: by outflank-mailman (output) from mailman id 5064.13049; Fri, 09 Oct 2020 19:51:47 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQd-0002Fn-Om; Fri, 09 Oct 2020 19:51:47 +0000 Received: by outflank-mailman (input) for mailman id 5064; Fri, 09 Oct 2020 19:51:47 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQd-0002Bq-C2 for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:51:47 +0000 Received: from mga09.intel.com (unknown [134.134.136.24]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 4d758406-926b-431b-95c2-a5674dadec7e; Fri, 09 Oct 2020 19:51:46 +0000 (UTC) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:45 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga001-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:44 -0700 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQd-0002Bq-C2 for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:51:47 +0000 Received: from mga09.intel.com (unknown [134.134.136.24]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 4d758406-926b-431b-95c2-a5674dadec7e; Fri, 09 Oct 2020 19:51:46 +0000 (UTC) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:45 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga001-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:44 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 4d758406-926b-431b-95c2-a5674dadec7e IronPort-SDR: FSckl3oZnJbJGVIGFWQtPrkxhCD1TiJIJwZd6ZBxOGULnZQ/lEw9wNGzMvWdPMesk5C6Ybblwm 1voMWuWWnFJQ== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="165642952" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="165642952" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: /XLKsCzQipLZYQ1rW+ETY2grttZNamy0/VnWHXeIGpFKMMZaq8ytLhObxugEuPiPsSx/1cqrId IdubLVsw8k0A== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="419536913" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Bob Peterson , Andreas Gruenbacher , 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 16/58] fs/gfs2: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:49:51 -0700 Message-Id: <20201009195033.3208459-17-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 Content-Type: text/plain; charset="utf-8" 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: Bob Peterson Cc: Andreas Gruenbacher Signed-off-by: Ira Weiny --- fs/gfs2/bmap.c | 4 ++-- fs/gfs2/ops_fstype.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/fs/gfs2/bmap.c b/fs/gfs2/bmap.c index 0f69fbd4af66..375af4528411 100644 --- a/fs/gfs2/bmap.c +++ b/fs/gfs2/bmap.c @@ -67,7 +67,7 @@ static int gfs2_unstuffer_page(struct gfs2_inode *ip, str= uct buffer_head *dibh, } =20 if (!PageUptodate(page)) { - void *kaddr =3D kmap(page); + void *kaddr =3D kmap_thread(page); u64 dsize =3D i_size_read(inode); =20 if (dsize > gfs2_max_stuffed_size(ip)) @@ -75,7 +75,7 @@ static int gfs2_unstuffer_page(struct gfs2_inode *ip, str= uct buffer_head *dibh, =20 memcpy(kaddr, dibh->b_data + sizeof(struct gfs2_dinode), dsize); memset(kaddr + dsize, 0, PAGE_SIZE - dsize); - kunmap(page); + kunmap_thread(page); =20 SetPageUptodate(page); } diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c index 6d18d2c91add..a5d20d9b504a 100644 --- a/fs/gfs2/ops_fstype.c +++ b/fs/gfs2/ops_fstype.c @@ -263,9 +263,9 @@ static int gfs2_read_super(struct gfs2_sbd *sdp, sector= _t sector, int silent) __free_page(page); return -EIO; } - p =3D kmap(page); + p =3D kmap_thread(page); gfs2_sb_in(sdp, p); - kunmap(page); + kunmap_thread(page); __free_page(page); return gfs2_check_sb(sdp, silent); } --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273127; cv=none; d=zohomail.com; s=zohoarc; b=O3n4pRQ5EMsAq1K9aiPSLEp0PZSPNQi9+BZO/KQEGq1dvsinfr2yz8YeuJ/bzaliHHj9LVdkvNXoLApX4J5dqrLmdYX6uC06pr0oG5CSmxar8o04t/j9muIQsn0ff8s0KBnULw0fqBDy2ec9XLfCTw5OBUkKbYVOcNNC1PAiqbw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273127; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=n0cpu/Addnr/kUujNTq8yikyg5PvYkselRgAcYvKLaA=; b=Te29ASzaW51rr16a1nDIENUtnld9HfC5NINVehmfJyUWh2g+7n8l5ykTTwhcJp57uqNXvDvLxvpoAz7HU6ZYOH0jCQSjPLjCm0h4bS6tue8SZI3ddrWoJHiwcd4Z81maDe3a+Uk7iQJXTlQ8wPgFc6+t5GI8rMC+a4nt802sXZE= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273127588126.72341122131638; Fri, 9 Oct 2020 12:52:07 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5065.13061 (Exim 4.92) (envelope-from ) id 1kQyQh-0002Lq-Cc; Fri, 09 Oct 2020 19:51:51 +0000 Received: by outflank-mailman (output) from mailman id 5065.13061; Fri, 09 Oct 2020 19:51:51 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQh-0002Lc-6C; Fri, 09 Oct 2020 19:51:51 +0000 Received: by outflank-mailman (input) for mailman id 5065; Fri, 09 Oct 2020 19:51:50 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQg-0002Bq-8P for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:51:50 +0000 Received: from mga09.intel.com (unknown [134.134.136.24]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id ba2ac356-7bb9-4d72-9a7f-6522fc6dc35b; Fri, 09 Oct 2020 19:51:48 +0000 (UTC) Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:47 -0700 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 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQg-0002Bq-8P for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:51:50 +0000 Received: from mga09.intel.com (unknown [134.134.136.24]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id ba2ac356-7bb9-4d72-9a7f-6522fc6dc35b; Fri, 09 Oct 2020 19:51:48 +0000 (UTC) Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:47 -0700 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 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: ba2ac356-7bb9-4d72-9a7f-6522fc6dc35b IronPort-SDR: GL0kvQxLfLtsDzjy4D+FvX3Chw3kJv7t6m4P2AbNpnvwFrw1C68Yk0M/7BsBYGABt5ftzzfmc0 Fu9XjRCurzpQ== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="165642963" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="165642963" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: vdHXKYZiEWUJ0fN4OExd2VqdiXE9aYdlaLF6p7mD2X3g24JwvvcNWIkVlfM1uW7/GA3kn+ap6+ Rex2Wyxl2AaA== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="298531066" 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 Content-Type: text/plain; charset="utf-8" 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 *inod= e, 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 *inod= e, 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 *in= ode, 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 *inod= e, 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 *ino= de, 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 *inode, 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 *ino= de, 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 *inode, 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 *entr= y_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 *entr= y_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 *cpfile, 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 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273130; cv=none; d=zohomail.com; s=zohoarc; b=dMXXAlYX/Wd7x1icJ1+Gw8gWG2bhzxD1p7gFFhbN6J6Q3FVhFcKOAhhfvB5XXtIHaI/Xo3xWtBZ7sRGvov6m/TD5LpIN8qGpDWXBRvoQi4BxMEiBwtPm2+DAa7b5wJPqtA7eQ53e9UGjbhbY6dSByZXTuCbRPGAwej4IqbDPCHo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273130; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=eUuABcxv+7w9+L2ZwYu5Qu9RgVPhdOF7MAss70eezoo=; b=ifIp5wPgckUir54Hsuol5O/CkWnx7VG85Q6Qs87wgmdZiz5P4MWLKdgHzleFgPcv1ijWPjdvN3x7u9dkGJtcj1HpDrRoTvrcJ6Cu17AEHtnguIQie4QUIQvy+ZePsU/xyn+zAhkOaOTvRvlaPS7RmShGjAaEImutqtP/uCSO0xo= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273130567538.3725826738544; Fri, 9 Oct 2020 12:52:10 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5067.13072 (Exim 4.92) (envelope-from ) id 1kQyQm-0002UV-Nq; Fri, 09 Oct 2020 19:51:56 +0000 Received: by outflank-mailman (output) from mailman id 5067.13072; Fri, 09 Oct 2020 19:51:56 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQm-0002UI-JZ; Fri, 09 Oct 2020 19:51:56 +0000 Received: by outflank-mailman (input) for mailman id 5067; Fri, 09 Oct 2020 19:51:55 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQl-0002Bq-8L for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:51:55 +0000 Received: from mga09.intel.com (unknown [134.134.136.24]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 04e64965-0a39-4d97-830b-bac4dbf46a56; Fri, 09 Oct 2020 19:51:51 +0000 (UTC) Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:51 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:50 -0700 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQl-0002Bq-8L for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:51:55 +0000 Received: from mga09.intel.com (unknown [134.134.136.24]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 04e64965-0a39-4d97-830b-bac4dbf46a56; Fri, 09 Oct 2020 19:51:51 +0000 (UTC) Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:51 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:50 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 04e64965-0a39-4d97-830b-bac4dbf46a56 IronPort-SDR: Vg6H/NGB8J5Ehxvg1pw4k6uX/FOFO7IaaMQWcLb+ZPBjPHmCDv/mS18CNcnuQjMfWklg0jZ54S cteYccC27MEA== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="165642974" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="165642974" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: OASmflq+Rx+yTtbdwfMJ0o3fYX/22afbp7t4aASuh19KdC4DJdh+fKQIdVVFr7y3ZwUlZzPFTz pRsXSfU26jow== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="529053257" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , 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 18/58] fs/hfs: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:49:53 -0700 Message-Id: <20201009195033.3208459-19-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 Content-Type: text/plain; charset="utf-8" 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. Signed-off-by: Ira Weiny --- fs/hfs/bnode.c | 14 +++++++------- fs/hfs/btree.c | 20 ++++++++++---------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/fs/hfs/bnode.c b/fs/hfs/bnode.c index b63a4df7327b..8b4d02576405 100644 --- a/fs/hfs/bnode.c +++ b/fs/hfs/bnode.c @@ -23,8 +23,8 @@ void hfs_bnode_read(struct hfs_bnode *node, void *buf, off +=3D node->page_offset; page =3D node->page[0]; =20 - memcpy(buf, kmap(page) + off, len); - kunmap(page); + memcpy(buf, kmap_thread(page) + off, len); + kunmap_thread(page); } =20 u16 hfs_bnode_read_u16(struct hfs_bnode *node, int off) @@ -108,9 +108,9 @@ void hfs_bnode_copy(struct hfs_bnode *dst_node, int dst, src_page =3D src_node->page[0]; dst_page =3D dst_node->page[0]; =20 - memcpy(kmap(dst_page) + dst, kmap(src_page) + src, len); - kunmap(src_page); - kunmap(dst_page); + memcpy(kmap_thread(dst_page) + dst, kmap_thread(src_page) + src, len); + kunmap_thread(src_page); + kunmap_thread(dst_page); set_page_dirty(dst_page); } =20 @@ -125,9 +125,9 @@ void hfs_bnode_move(struct hfs_bnode *node, int dst, in= t src, int len) src +=3D node->page_offset; dst +=3D node->page_offset; page =3D node->page[0]; - ptr =3D kmap(page); + ptr =3D kmap_thread(page); memmove(ptr + dst, ptr + src, len); - kunmap(page); + kunmap_thread(page); set_page_dirty(page); } =20 diff --git a/fs/hfs/btree.c b/fs/hfs/btree.c index 19017d296173..bd4a6d35e361 100644 --- a/fs/hfs/btree.c +++ b/fs/hfs/btree.c @@ -80,7 +80,7 @@ struct hfs_btree *hfs_btree_open(struct super_block *sb, = u32 id, btree_keycmp ke goto free_inode; =20 /* Load the header */ - head =3D (struct hfs_btree_header_rec *)(kmap(page) + sizeof(struct hfs_b= node_desc)); + head =3D (struct hfs_btree_header_rec *)(kmap_thread(page) + sizeof(struc= t hfs_bnode_desc)); tree->root =3D be32_to_cpu(head->root); tree->leaf_count =3D be32_to_cpu(head->leaf_count); tree->leaf_head =3D be32_to_cpu(head->leaf_head); @@ -119,7 +119,7 @@ struct hfs_btree *hfs_btree_open(struct super_block *sb= , u32 id, btree_keycmp ke tree->node_size_shift =3D ffs(size) - 1; tree->pages_per_bnode =3D (tree->node_size + PAGE_SIZE - 1) >> PAGE_SHIFT; =20 - kunmap(page); + kunmap_thread(page); put_page(page); return tree; =20 @@ -268,7 +268,7 @@ struct hfs_bnode *hfs_bmap_alloc(struct hfs_btree *tree) =20 off +=3D node->page_offset; pagep =3D node->page + (off >> PAGE_SHIFT); - data =3D kmap(*pagep); + data =3D kmap_thread(*pagep); off &=3D ~PAGE_MASK; idx =3D 0; =20 @@ -281,7 +281,7 @@ struct hfs_bnode *hfs_bmap_alloc(struct hfs_btree *tree) idx +=3D i; data[off] |=3D m; set_page_dirty(*pagep); - kunmap(*pagep); + kunmap_thread(*pagep); tree->free_nodes--; mark_inode_dirty(tree->inode); hfs_bnode_put(node); @@ -290,14 +290,14 @@ struct hfs_bnode *hfs_bmap_alloc(struct hfs_btree *tr= ee) } } if (++off >=3D PAGE_SIZE) { - kunmap(*pagep); - data =3D kmap(*++pagep); + kunmap_thread(*pagep); + data =3D kmap_thread(*++pagep); off =3D 0; } idx +=3D 8; len--; } - kunmap(*pagep); + kunmap_thread(*pagep); nidx =3D node->next; if (!nidx) { printk(KERN_DEBUG "create new bmap node...\n"); @@ -313,7 +313,7 @@ struct hfs_bnode *hfs_bmap_alloc(struct hfs_btree *tree) off =3D off16; off +=3D node->page_offset; pagep =3D node->page + (off >> PAGE_SHIFT); - data =3D kmap(*pagep); + data =3D kmap_thread(*pagep); off &=3D ~PAGE_MASK; } } @@ -360,7 +360,7 @@ void hfs_bmap_free(struct hfs_bnode *node) } off +=3D node->page_offset + nidx / 8; page =3D node->page[off >> PAGE_SHIFT]; - data =3D kmap(page); + data =3D kmap_thread(page); off &=3D ~PAGE_MASK; m =3D 1 << (~nidx & 7); byte =3D data[off]; @@ -373,7 +373,7 @@ void hfs_bmap_free(struct hfs_bnode *node) } data[off] =3D byte & ~m; set_page_dirty(page); - kunmap(page); + kunmap_thread(page); hfs_bnode_put(node); tree->free_nodes++; mark_inode_dirty(tree->inode); --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273142; cv=none; d=zohomail.com; s=zohoarc; b=kvfK1jtDEw3tiMSliRSFDWx5rQo6FF9Ouv2rfyQrATSwZVaTc+2rQrI22kHcxb2yCdJOYSxk9FOOkDzlZif+gfvj8Gxxgm9HaRGA7TCNfSrPoViQlO5AUfPCBG2ORNAK/hhFIGWCzlRnVPSYxg4V82SmbSTFQTo57BvFcubQgnM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273142; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=dknWcm7c825gFo6AiPtKV1AeuwXGqKan4NTnElau3io=; b=KW4MyMTsvSgP8STi7nvNulcNhf0SYzNC4xDuOUb/bHagjVlP0s2bMEcMSCfi/Che0+zJn/FF+q/pmD+1adbKkqWOfVHc5HY18NK6/SW67HxSAxZQ6xaAnb4n0qOKjcESwEbSgSuKO1tNSAquMEv6n4YPl0kacH2FFIESGrsePF0= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273142132861.5654527480824; Fri, 9 Oct 2020 12:52:22 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5068.13085 (Exim 4.92) (envelope-from ) id 1kQyQr-0002cU-DZ; Fri, 09 Oct 2020 19:52:01 +0000 Received: by outflank-mailman (output) from mailman id 5068.13085; Fri, 09 Oct 2020 19:52:01 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQr-0002cD-6s; Fri, 09 Oct 2020 19:52:01 +0000 Received: by outflank-mailman (input) for mailman id 5068; Fri, 09 Oct 2020 19:52:00 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQq-0002Bq-8U for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:00 +0000 Received: from mga09.intel.com (unknown [134.134.136.24]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 8fca483a-f979-4b79-8dd1-10f1925524ff; Fri, 09 Oct 2020 19:51:56 +0000 (UTC) Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:55 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:54 -0700 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQq-0002Bq-8U for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:00 +0000 Received: from mga09.intel.com (unknown [134.134.136.24]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 8fca483a-f979-4b79-8dd1-10f1925524ff; Fri, 09 Oct 2020 19:51:56 +0000 (UTC) Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:55 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:54 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 8fca483a-f979-4b79-8dd1-10f1925524ff IronPort-SDR: 4yfB73SxYF7XBF8UGI/c48/8kLz3A3unWQKVAAx1vb3BnR+jVKIia0bIpw3KbebLm9HwpFLIRq AyN6kBu/ZHnQ== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="165643001" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="165643001" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: vmw0BK7OYY8h0fZsnTgtJRpvmXsWJvpJiZ/O3ONyZujh0oi54UYOLunW4B1xesRkeTs3uxMx1d pOHAzA+ZEWzg== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="529053305" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , 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 19/58] fs/hfsplus: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:49:54 -0700 Message-Id: <20201009195033.3208459-20-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 Content-Type: text/plain; charset="utf-8" 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. Signed-off-by: Ira Weiny --- fs/hfsplus/bitmap.c | 20 ++++----- fs/hfsplus/bnode.c | 102 ++++++++++++++++++++++---------------------- fs/hfsplus/btree.c | 18 ++++---- 3 files changed, 70 insertions(+), 70 deletions(-) diff --git a/fs/hfsplus/bitmap.c b/fs/hfsplus/bitmap.c index cebce0cfe340..9ec7c1559a0c 100644 --- a/fs/hfsplus/bitmap.c +++ b/fs/hfsplus/bitmap.c @@ -39,7 +39,7 @@ int hfsplus_block_allocate(struct super_block *sb, u32 si= ze, start =3D size; goto out; } - pptr =3D kmap(page); + pptr =3D kmap_thread(page); curr =3D pptr + (offset & (PAGE_CACHE_BITS - 1)) / 32; i =3D offset % 32; offset &=3D ~(PAGE_CACHE_BITS - 1); @@ -74,7 +74,7 @@ int hfsplus_block_allocate(struct super_block *sb, u32 si= ze, } curr++; } - kunmap(page); + kunmap_thread(page); offset +=3D PAGE_CACHE_BITS; if (offset >=3D size) break; @@ -84,7 +84,7 @@ int hfsplus_block_allocate(struct super_block *sb, u32 si= ze, start =3D size; goto out; } - curr =3D pptr =3D kmap(page); + curr =3D pptr =3D kmap_thread(page); if ((size ^ offset) / PAGE_CACHE_BITS) end =3D pptr + PAGE_CACHE_BITS / 32; else @@ -127,7 +127,7 @@ int hfsplus_block_allocate(struct super_block *sb, u32 = size, len -=3D 32; } set_page_dirty(page); - kunmap(page); + kunmap_thread(page); offset +=3D PAGE_CACHE_BITS; page =3D read_mapping_page(mapping, offset / PAGE_CACHE_BITS, NULL); @@ -135,7 +135,7 @@ int hfsplus_block_allocate(struct super_block *sb, u32 = size, start =3D size; goto out; } - pptr =3D kmap(page); + pptr =3D kmap_thread(page); curr =3D pptr; end =3D pptr + PAGE_CACHE_BITS / 32; } @@ -151,7 +151,7 @@ int hfsplus_block_allocate(struct super_block *sb, u32 = size, done: *curr =3D cpu_to_be32(n); set_page_dirty(page); - kunmap(page); + kunmap_thread(page); *max =3D offset + (curr - pptr) * 32 + i - start; sbi->free_blocks -=3D *max; hfsplus_mark_mdb_dirty(sb); @@ -185,7 +185,7 @@ int hfsplus_block_free(struct super_block *sb, u32 offs= et, u32 count) page =3D read_mapping_page(mapping, pnr, NULL); if (IS_ERR(page)) goto kaboom; - pptr =3D kmap(page); + pptr =3D kmap_thread(page); curr =3D pptr + (offset & (PAGE_CACHE_BITS - 1)) / 32; end =3D pptr + PAGE_CACHE_BITS / 32; len =3D count; @@ -215,11 +215,11 @@ int hfsplus_block_free(struct super_block *sb, u32 of= fset, u32 count) if (!count) break; set_page_dirty(page); - kunmap(page); + kunmap_thread(page); page =3D read_mapping_page(mapping, ++pnr, NULL); if (IS_ERR(page)) goto kaboom; - pptr =3D kmap(page); + pptr =3D kmap_thread(page); curr =3D pptr; end =3D pptr + PAGE_CACHE_BITS / 32; } @@ -231,7 +231,7 @@ int hfsplus_block_free(struct super_block *sb, u32 offs= et, u32 count) } out: set_page_dirty(page); - kunmap(page); + kunmap_thread(page); sbi->free_blocks +=3D len; hfsplus_mark_mdb_dirty(sb); mutex_unlock(&sbi->alloc_mutex); diff --git a/fs/hfsplus/bnode.c b/fs/hfsplus/bnode.c index 177fae4e6581..62757d92fbbd 100644 --- a/fs/hfsplus/bnode.c +++ b/fs/hfsplus/bnode.c @@ -29,14 +29,14 @@ void hfs_bnode_read(struct hfs_bnode *node, void *buf, = int off, int len) off &=3D ~PAGE_MASK; =20 l =3D min_t(int, len, PAGE_SIZE - off); - memcpy(buf, kmap(*pagep) + off, l); - kunmap(*pagep); + memcpy(buf, kmap_thread(*pagep) + off, l); + kunmap_thread(*pagep); =20 while ((len -=3D l) !=3D 0) { buf +=3D l; l =3D min_t(int, len, PAGE_SIZE); - memcpy(buf, kmap(*++pagep), l); - kunmap(*pagep); + memcpy(buf, kmap_thread(*++pagep), l); + kunmap_thread(*pagep); } } =20 @@ -82,16 +82,16 @@ void hfs_bnode_write(struct hfs_bnode *node, void *buf,= int off, int len) off &=3D ~PAGE_MASK; =20 l =3D min_t(int, len, PAGE_SIZE - off); - memcpy(kmap(*pagep) + off, buf, l); + memcpy(kmap_thread(*pagep) + off, buf, l); set_page_dirty(*pagep); - kunmap(*pagep); + kunmap_thread(*pagep); =20 while ((len -=3D l) !=3D 0) { buf +=3D l; l =3D min_t(int, len, PAGE_SIZE); - memcpy(kmap(*++pagep), buf, l); + memcpy(kmap_thread(*++pagep), buf, l); set_page_dirty(*pagep); - kunmap(*pagep); + kunmap_thread(*pagep); } } =20 @@ -112,15 +112,15 @@ void hfs_bnode_clear(struct hfs_bnode *node, int off,= int len) off &=3D ~PAGE_MASK; =20 l =3D min_t(int, len, PAGE_SIZE - off); - memset(kmap(*pagep) + off, 0, l); + memset(kmap_thread(*pagep) + off, 0, l); set_page_dirty(*pagep); - kunmap(*pagep); + kunmap_thread(*pagep); =20 while ((len -=3D l) !=3D 0) { l =3D min_t(int, len, PAGE_SIZE); - memset(kmap(*++pagep), 0, l); + memset(kmap_thread(*++pagep), 0, l); set_page_dirty(*pagep); - kunmap(*pagep); + kunmap_thread(*pagep); } } =20 @@ -142,24 +142,24 @@ void hfs_bnode_copy(struct hfs_bnode *dst_node, int d= st, =20 if (src =3D=3D dst) { l =3D min_t(int, len, PAGE_SIZE - src); - memcpy(kmap(*dst_page) + src, kmap(*src_page) + src, l); - kunmap(*src_page); + memcpy(kmap_thread(*dst_page) + src, kmap_thread(*src_page) + src, l); + kunmap_thread(*src_page); set_page_dirty(*dst_page); - kunmap(*dst_page); + kunmap_thread(*dst_page); =20 while ((len -=3D l) !=3D 0) { l =3D min_t(int, len, PAGE_SIZE); - memcpy(kmap(*++dst_page), kmap(*++src_page), l); - kunmap(*src_page); + memcpy(kmap_thread(*++dst_page), kmap_thread(*++src_page), l); + kunmap_thread(*src_page); set_page_dirty(*dst_page); - kunmap(*dst_page); + kunmap_thread(*dst_page); } } else { void *src_ptr, *dst_ptr; =20 do { - src_ptr =3D kmap(*src_page) + src; - dst_ptr =3D kmap(*dst_page) + dst; + src_ptr =3D kmap_thread(*src_page) + src; + dst_ptr =3D kmap_thread(*dst_page) + dst; if (PAGE_SIZE - src < PAGE_SIZE - dst) { l =3D PAGE_SIZE - src; src =3D 0; @@ -171,9 +171,9 @@ void hfs_bnode_copy(struct hfs_bnode *dst_node, int dst, } l =3D min(len, l); memcpy(dst_ptr, src_ptr, l); - kunmap(*src_page); + kunmap_thread(*src_page); set_page_dirty(*dst_page); - kunmap(*dst_page); + kunmap_thread(*dst_page); if (!dst) dst_page++; else @@ -202,27 +202,27 @@ void hfs_bnode_move(struct hfs_bnode *node, int dst, = int src, int len) =20 if (src =3D=3D dst) { while (src < len) { - memmove(kmap(*dst_page), kmap(*src_page), src); - kunmap(*src_page); + memmove(kmap_thread(*dst_page), kmap_thread(*src_page), src); + kunmap_thread(*src_page); set_page_dirty(*dst_page); - kunmap(*dst_page); + kunmap_thread(*dst_page); len -=3D src; src =3D PAGE_SIZE; src_page--; dst_page--; } src -=3D len; - memmove(kmap(*dst_page) + src, - kmap(*src_page) + src, len); - kunmap(*src_page); + memmove(kmap_thread(*dst_page) + src, + kmap_thread(*src_page) + src, len); + kunmap_thread(*src_page); set_page_dirty(*dst_page); - kunmap(*dst_page); + kunmap_thread(*dst_page); } else { void *src_ptr, *dst_ptr; =20 do { - src_ptr =3D kmap(*src_page) + src; - dst_ptr =3D kmap(*dst_page) + dst; + src_ptr =3D kmap_thread(*src_page) + src; + dst_ptr =3D kmap_thread(*dst_page) + dst; if (src < dst) { l =3D src; src =3D PAGE_SIZE; @@ -234,9 +234,9 @@ void hfs_bnode_move(struct hfs_bnode *node, int dst, in= t src, int len) } l =3D min(len, l); memmove(dst_ptr - l, src_ptr - l, l); - kunmap(*src_page); + kunmap_thread(*src_page); set_page_dirty(*dst_page); - kunmap(*dst_page); + kunmap_thread(*dst_page); if (dst =3D=3D PAGE_SIZE) dst_page--; else @@ -251,26 +251,26 @@ void hfs_bnode_move(struct hfs_bnode *node, int dst, = int src, int len) =20 if (src =3D=3D dst) { l =3D min_t(int, len, PAGE_SIZE - src); - memmove(kmap(*dst_page) + src, - kmap(*src_page) + src, l); - kunmap(*src_page); + memmove(kmap_thread(*dst_page) + src, + kmap_thread(*src_page) + src, l); + kunmap_thread(*src_page); set_page_dirty(*dst_page); - kunmap(*dst_page); + kunmap_thread(*dst_page); =20 while ((len -=3D l) !=3D 0) { l =3D min_t(int, len, PAGE_SIZE); - memmove(kmap(*++dst_page), - kmap(*++src_page), l); - kunmap(*src_page); + memmove(kmap_thread(*++dst_page), + kmap_thread(*++src_page), l); + kunmap_thread(*src_page); set_page_dirty(*dst_page); - kunmap(*dst_page); + kunmap_thread(*dst_page); } } else { void *src_ptr, *dst_ptr; =20 do { - src_ptr =3D kmap(*src_page) + src; - dst_ptr =3D kmap(*dst_page) + dst; + src_ptr =3D kmap_thread(*src_page) + src; + dst_ptr =3D kmap_thread(*dst_page) + dst; if (PAGE_SIZE - src < PAGE_SIZE - dst) { l =3D PAGE_SIZE - src; @@ -283,9 +283,9 @@ void hfs_bnode_move(struct hfs_bnode *node, int dst, in= t src, int len) } l =3D min(len, l); memmove(dst_ptr, src_ptr, l); - kunmap(*src_page); + kunmap_thread(*src_page); set_page_dirty(*dst_page); - kunmap(*dst_page); + kunmap_thread(*dst_page); if (!dst) dst_page++; else @@ -502,14 +502,14 @@ struct hfs_bnode *hfs_bnode_find(struct hfs_btree *tr= ee, u32 num) if (!test_bit(HFS_BNODE_NEW, &node->flags)) return node; =20 - desc =3D (struct hfs_bnode_desc *)(kmap(node->page[0]) + + desc =3D (struct hfs_bnode_desc *)(kmap_thread(node->page[0]) + node->page_offset); node->prev =3D be32_to_cpu(desc->prev); node->next =3D be32_to_cpu(desc->next); node->num_recs =3D be16_to_cpu(desc->num_recs); node->type =3D desc->type; node->height =3D desc->height; - kunmap(node->page[0]); + kunmap_thread(node->page[0]); =20 switch (node->type) { case HFS_NODE_HEADER: @@ -593,14 +593,14 @@ struct hfs_bnode *hfs_bnode_create(struct hfs_btree *= tree, u32 num) } =20 pagep =3D node->page; - memset(kmap(*pagep) + node->page_offset, 0, + memset(kmap_thread(*pagep) + node->page_offset, 0, min_t(int, PAGE_SIZE, tree->node_size)); set_page_dirty(*pagep); - kunmap(*pagep); + kunmap_thread(*pagep); for (i =3D 1; i < tree->pages_per_bnode; i++) { - memset(kmap(*++pagep), 0, PAGE_SIZE); + memset(kmap_thread(*++pagep), 0, PAGE_SIZE); set_page_dirty(*pagep); - kunmap(*pagep); + kunmap_thread(*pagep); } clear_bit(HFS_BNODE_NEW, &node->flags); wake_up(&node->lock_wq); diff --git a/fs/hfsplus/btree.c b/fs/hfsplus/btree.c index 66774f4cb4fd..74fcef3a1628 100644 --- a/fs/hfsplus/btree.c +++ b/fs/hfsplus/btree.c @@ -394,7 +394,7 @@ struct hfs_bnode *hfs_bmap_alloc(struct hfs_btree *tree) =20 off +=3D node->page_offset; pagep =3D node->page + (off >> PAGE_SHIFT); - data =3D kmap(*pagep); + data =3D kmap_thread(*pagep); off &=3D ~PAGE_MASK; idx =3D 0; =20 @@ -407,7 +407,7 @@ struct hfs_bnode *hfs_bmap_alloc(struct hfs_btree *tree) idx +=3D i; data[off] |=3D m; set_page_dirty(*pagep); - kunmap(*pagep); + kunmap_thread(*pagep); tree->free_nodes--; mark_inode_dirty(tree->inode); hfs_bnode_put(node); @@ -417,14 +417,14 @@ struct hfs_bnode *hfs_bmap_alloc(struct hfs_btree *tr= ee) } } if (++off >=3D PAGE_SIZE) { - kunmap(*pagep); - data =3D kmap(*++pagep); + kunmap_thread(*pagep); + data =3D kmap_thread(*++pagep); off =3D 0; } idx +=3D 8; len--; } - kunmap(*pagep); + kunmap_thread(*pagep); nidx =3D node->next; if (!nidx) { hfs_dbg(BNODE_MOD, "create new bmap node\n"); @@ -440,7 +440,7 @@ struct hfs_bnode *hfs_bmap_alloc(struct hfs_btree *tree) off =3D off16; off +=3D node->page_offset; pagep =3D node->page + (off >> PAGE_SHIFT); - data =3D kmap(*pagep); + data =3D kmap_thread(*pagep); off &=3D ~PAGE_MASK; } } @@ -490,7 +490,7 @@ void hfs_bmap_free(struct hfs_bnode *node) } off +=3D node->page_offset + nidx / 8; page =3D node->page[off >> PAGE_SHIFT]; - data =3D kmap(page); + data =3D kmap_thread(page); off &=3D ~PAGE_MASK; m =3D 1 << (~nidx & 7); byte =3D data[off]; @@ -498,13 +498,13 @@ void hfs_bmap_free(struct hfs_bnode *node) pr_crit("trying to free free bnode " "%u(%d)\n", node->this, node->type); - kunmap(page); + kunmap_thread(page); hfs_bnode_put(node); return; } data[off] =3D byte & ~m; set_page_dirty(page); - kunmap(page); + kunmap_thread(page); hfs_bnode_put(node); tree->free_nodes++; mark_inode_dirty(tree->inode); --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273137; cv=none; d=zohomail.com; s=zohoarc; b=gzeo0XX/KcHMvxYrbnkQrwzerG0F92EEAljIhGMnqIRRlDmB8DPInhExjKcmu+v13JWoa/sKEECKhKbwAd6lFwxPap5xzIj2uMPbmZ8cbUoyHhddkAxBIAwvO9KrEHsePPHFACRuD4yF9ahg8v+x1xDAgSOiwPJtCSH/6nhNpf4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273137; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ucXpsyt259fcSej4JUNwKng0FX7fc1IQwhF+upmFR+g=; b=kM/KR1wXWdsFdELJNDKNf0xBIr49ueCHM/6iG+RmVrKb0elx3jPnGNCQMe1ap8JXHz2DtlPQVpnr7LBCr0YJ81kLkHGcOzhPJlNurqEqTZ7vD7rabkxaHUsDSsyZioG52PH26Lc+aiN+3L5eVMoLKDfSo+d9ak7L3kKrmLKt1+Y= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273137900433.6475686662533; Fri, 9 Oct 2020 12:52:17 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5070.13097 (Exim 4.92) (envelope-from ) id 1kQyQt-0002gw-Pl; Fri, 09 Oct 2020 19:52:03 +0000 Received: by outflank-mailman (output) from mailman id 5070.13097; Fri, 09 Oct 2020 19:52:03 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQt-0002go-KP; Fri, 09 Oct 2020 19:52:03 +0000 Received: by outflank-mailman (input) for mailman id 5070; Fri, 09 Oct 2020 19:52:01 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQr-0002d3-KD for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:01 +0000 Received: from mga05.intel.com (unknown [192.55.52.43]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id ad65a983-4fff-4a15-add7-cf80a5a90236; Fri, 09 Oct 2020 19:52:00 +0000 (UTC) Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:59 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:57 -0700 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyQr-0002d3-KD for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:01 +0000 Received: from mga05.intel.com (unknown [192.55.52.43]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id ad65a983-4fff-4a15-add7-cf80a5a90236; Fri, 09 Oct 2020 19:52:00 +0000 (UTC) Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:59 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:51:57 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: ad65a983-4fff-4a15-add7-cf80a5a90236 IronPort-SDR: tfPYQjWZcvUNnpYePsAkAMaOg6Pbh7V3JU1drmegAKrQ3tb8GFnTuTFhk8DBuRopBRHq/BF4wa BVH26UoDbF/A== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="250226060" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="250226060" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: eWSKFRksQmWHvS1j4lFouXjU/VQ78asIZFlodYo3aryNHFOArT/TLAMBqja15iBonRYEaVT+Tm vvSyZvytK3gg== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="462300719" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , David Woodhouse , Richard Weinberger , 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 20/58] fs/jffs2: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:49:55 -0700 Message-Id: <20201009195033.3208459-21-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 Content-Type: text/plain; charset="utf-8" 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: David Woodhouse Cc: Richard Weinberger Signed-off-by: Ira Weiny --- fs/jffs2/file.c | 4 ++-- fs/jffs2/gc.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/fs/jffs2/file.c b/fs/jffs2/file.c index f8fb89b10227..3e6d54f9b011 100644 --- a/fs/jffs2/file.c +++ b/fs/jffs2/file.c @@ -88,7 +88,7 @@ static int jffs2_do_readpage_nolock (struct inode *inode,= struct page *pg) =20 BUG_ON(!PageLocked(pg)); =20 - pg_buf =3D kmap(pg); + pg_buf =3D kmap_thread(pg); /* FIXME: Can kmap fail? */ =20 ret =3D jffs2_read_inode_range(c, f, pg_buf, pg->index << PAGE_SHIFT, @@ -103,7 +103,7 @@ static int jffs2_do_readpage_nolock (struct inode *inod= e, struct page *pg) } =20 flush_dcache_page(pg); - kunmap(pg); + kunmap_thread(pg); =20 jffs2_dbg(2, "readpage finished\n"); return ret; diff --git a/fs/jffs2/gc.c b/fs/jffs2/gc.c index 373b3b7c9f44..a7259783ab84 100644 --- a/fs/jffs2/gc.c +++ b/fs/jffs2/gc.c @@ -1335,7 +1335,7 @@ static int jffs2_garbage_collect_dnode(struct jffs2_s= b_info *c, struct jffs2_era return PTR_ERR(page); } =20 - pg_ptr =3D kmap(page); + pg_ptr =3D kmap_thread(page); mutex_lock(&f->sem); =20 offset =3D start; @@ -1400,7 +1400,7 @@ static int jffs2_garbage_collect_dnode(struct jffs2_s= b_info *c, struct jffs2_era } } =20 - kunmap(page); + kunmap_thread(page); put_page(page); return ret; } --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273146; cv=none; d=zohomail.com; s=zohoarc; b=ASSThz3OKC9B05aaqVHynE43inYxycQwueB6DoLWZD+nJ7S3gD6OIvIgyB/mvT0WwQDLihKtRmrMuHOHbkU1tRb2Lv4z/wqGe20tDdjxwosDzlCMr3Y31JZNhVbEFX+pLypooWsjL/2xPIYtxGHYWXQL/+1MxMZe9Nj8xQ8Jz2Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273146; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=xRvGR0eBD0WcAnlMGNwryqwVocpCArAK6mw1NefMA5k=; b=CRDQiKALZTiLV8+hXrzVtxy0HNwPn660ZMqut+XzP1I4zXYRAN1YoRa4Uyjg9BkcSKZcE6l1rzBGhZu+R6GtI9mQE0e9DVjlR367PZm5M50B8jBofprIu8ATTcd678SvQSo53nYKEbqv35rIc2Ch2LVFNvHgAfT6PQoNWUcQEIo= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273146354375.9176494647469; Fri, 9 Oct 2020 12:52:26 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5074.13120 (Exim 4.92) (envelope-from ) id 1kQyR2-0002up-Db; Fri, 09 Oct 2020 19:52:12 +0000 Received: by outflank-mailman (output) from mailman id 5074.13120; Fri, 09 Oct 2020 19:52:12 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyR2-0002uf-A1; Fri, 09 Oct 2020 19:52:12 +0000 Received: by outflank-mailman (input) for mailman id 5074; Fri, 09 Oct 2020 19:52:11 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyR1-0002d3-Im for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:11 +0000 Received: from mga01.intel.com (unknown [192.55.52.88]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 30150e07-14e3-48da-a02e-f5f16bf31f29; Fri, 09 Oct 2020 19:52:02 +0000 (UTC) Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:01 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:01 -0700 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyR1-0002d3-Im for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:11 +0000 Received: from mga01.intel.com (unknown [192.55.52.88]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 30150e07-14e3-48da-a02e-f5f16bf31f29; Fri, 09 Oct 2020 19:52:02 +0000 (UTC) Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:01 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:01 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 30150e07-14e3-48da-a02e-f5f16bf31f29 IronPort-SDR: CwCqh1jTT86tyWyXIuTm8S1/lWi685IvGTH5/sYLRrcdqRctlM76XwR4KnDXsehQEdaeq4f1lR nQoAjJpJtE4Q== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="182976218" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="182976218" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: tVhE30/49ehqkoc80ZCcDXB4dMTZze5YTnWPIjaBRWP4P6o/AEUDuRNENWQluyt3yOqCx99fob q9C+vTCoMURQ== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="519846944" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Trond Myklebust , Anna Schumaker , 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 21/58] fs/nfs: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:49:56 -0700 Message-Id: <20201009195033.3208459-22-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 Content-Type: text/plain; charset="utf-8" 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: Trond Myklebust Cc: Anna Schumaker Signed-off-by: Ira Weiny --- fs/nfs/dir.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index cb52db9a0cfb..fee321acccb4 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c @@ -213,7 +213,7 @@ int nfs_readdir_make_qstr(struct qstr *string, const ch= ar *name, unsigned int le static int nfs_readdir_add_to_array(struct nfs_entry *entry, struct page *page) { - struct nfs_cache_array *array =3D kmap(page); + struct nfs_cache_array *array =3D kmap_thread(page); struct nfs_cache_array_entry *cache_entry; int ret; =20 @@ -235,7 +235,7 @@ int nfs_readdir_add_to_array(struct nfs_entry *entry, s= truct page *page) if (entry->eof !=3D 0) array->eof_index =3D array->size; out: - kunmap(page); + kunmap_thread(page); return ret; } =20 @@ -347,7 +347,7 @@ int nfs_readdir_search_array(nfs_readdir_descriptor_t *= desc) struct nfs_cache_array *array; int status; =20 - array =3D kmap(desc->page); + array =3D kmap_thread(desc->page); =20 if (*desc->dir_cookie =3D=3D 0) status =3D nfs_readdir_search_for_pos(array, desc); @@ -359,7 +359,7 @@ int nfs_readdir_search_array(nfs_readdir_descriptor_t *= desc) desc->current_index +=3D array->size; desc->page_index++; } - kunmap(desc->page); + kunmap_thread(desc->page); return status; } =20 @@ -602,10 +602,10 @@ int nfs_readdir_page_filler(nfs_readdir_descriptor_t = *desc, struct nfs_entry *en =20 out_nopages: if (count =3D=3D 0 || (status =3D=3D -EBADCOOKIE && entry->eof !=3D 0)) { - array =3D kmap(page); + array =3D kmap_thread(page); array->eof_index =3D array->size; status =3D 0; - kunmap(page); + kunmap_thread(page); } =20 put_page(scratch); @@ -669,7 +669,7 @@ int nfs_readdir_xdr_to_array(nfs_readdir_descriptor_t *= desc, struct page *page, goto out; } =20 - array =3D kmap(page); + array =3D kmap_thread(page); =20 status =3D nfs_readdir_alloc_pages(pages, array_size); if (status < 0) @@ -691,7 +691,7 @@ int nfs_readdir_xdr_to_array(nfs_readdir_descriptor_t *= desc, struct page *page, =20 nfs_readdir_free_pages(pages, array_size); out_release_array: - kunmap(page); + kunmap_thread(page); nfs4_label_free(entry.label); out: nfs_free_fattr(entry.fattr); @@ -803,7 +803,7 @@ int nfs_do_filldir(nfs_readdir_descriptor_t *desc) struct nfs_cache_array *array =3D NULL; struct nfs_open_dir_context *ctx =3D file->private_data; =20 - array =3D kmap(desc->page); + array =3D kmap_thread(desc->page); for (i =3D desc->cache_entry_index; i < array->size; i++) { struct nfs_cache_array_entry *ent; =20 @@ -827,7 +827,7 @@ int nfs_do_filldir(nfs_readdir_descriptor_t *desc) if (array->eof_index >=3D 0) desc->eof =3D true; =20 - kunmap(desc->page); + kunmap_thread(desc->page); dfprintk(DIRCACHE, "NFS: nfs_do_filldir() filling ended @ cookie %Lu; ret= urning =3D %d\n", (unsigned long long)*desc->dir_cookie, res); return res; --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273151; cv=none; d=zohomail.com; s=zohoarc; b=Bqayl6J4jt4Ol0tdv58k5rKakN5oPgDYiQwrEPo9gLIHy04bz4MvYRTxpFAcbeY4tVKMt4DFbyAqWFwlqXOe48fa78/nWKSHSmTIxH3ik0hkstp5DtvDbaPQhhoL9Nv10IqEXLBfmjli1TFj7gxGEps/KvrgGmYtPmWfFdgzORI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273151; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=flZGN9JbxwJaEbGsNwBMA77e4O49GKSIFNeRObvybHc=; b=hv21BE3+o1XHd1+jq5I3o/vqqaAktVVg818gv4nVEpW2J5RWYOsykzTGTr/4vpQgnEmzGUnsXf/QNhoBo24Y4yPFSHhNdSPIY+xpWLuKft/xzOUCT7ObPOLUjfSx0k9SRrZdgBKQMKCkaADzYON9rgdW5TKRcK+j7BpkkqOLDgo= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273151671941.0299367311565; Fri, 9 Oct 2020 12:52:31 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5076.13145 (Exim 4.92) (envelope-from ) id 1kQyR7-00035l-RV; Fri, 09 Oct 2020 19:52:17 +0000 Received: by outflank-mailman (output) from mailman id 5076.13145; Fri, 09 Oct 2020 19:52:17 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyR7-00035S-Lg; Fri, 09 Oct 2020 19:52:17 +0000 Received: by outflank-mailman (input) for mailman id 5076; Fri, 09 Oct 2020 19:52:16 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyR6-0002d3-Ip for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:16 +0000 Received: from mga01.intel.com (unknown [192.55.52.88]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 25d30baa-8627-4539-9a37-76ca83e75cd5; Fri, 09 Oct 2020 19:52:05 +0000 (UTC) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:05 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:04 -0700 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyR6-0002d3-Ip for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:16 +0000 Received: from mga01.intel.com (unknown [192.55.52.88]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 25d30baa-8627-4539-9a37-76ca83e75cd5; Fri, 09 Oct 2020 19:52:05 +0000 (UTC) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:05 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:04 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 25d30baa-8627-4539-9a37-76ca83e75cd5 IronPort-SDR: JxxB9TTBSbIEnWjpq1IRg59LzNcV9PhmlWv9G263YWDUYkGI1BEGNxnTI82gi7w7iw/d3BJ8F5 +pbmiyGJD+OQ== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="182976229" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="182976229" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: UirI0CQIu4U61+QlSzJhUSBnMwMbOjm+hcyTouEwvOwx6I0trp+50TKD6KEUa5cRPFVp+hPY69 eHlTO5RS+u4A== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="343972211" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Jaegeuk Kim , Chao Yu , 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 22/58] fs/f2fs: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:49:57 -0700 Message-Id: <20201009195033.3208459-23-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 Content-Type: text/plain; charset="utf-8" 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: Jaegeuk Kim Cc: Chao Yu Signed-off-by: Ira Weiny --- fs/f2fs/f2fs.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index d9e52a7f3702..ff72a45a577e 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h @@ -2410,12 +2410,12 @@ static inline struct page *f2fs_pagecache_get_page( =20 static inline void f2fs_copy_page(struct page *src, struct page *dst) { - char *src_kaddr =3D kmap(src); - char *dst_kaddr =3D kmap(dst); + char *src_kaddr =3D kmap_thread(src); + char *dst_kaddr =3D kmap_thread(dst); =20 memcpy(dst_kaddr, src_kaddr, PAGE_SIZE); - kunmap(dst); - kunmap(src); + kunmap_thread(dst); + kunmap_thread(src); } =20 static inline void f2fs_put_page(struct page *page, int unlock) --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273150; cv=none; d=zohomail.com; s=zohoarc; b=UuC6Zxe1BJSrKfRX/x3Ja0TCmThO3MFvnwwBUv6sC75BeO8cgS9ezdySRApikgObELaNBjTrIHlN20Vysdcu2pYBoSnJPRCUHyDSOMCgZSA/XdmbaCUD0ikY3ZEG1LQ1ERjAkBjefuFBvEdva4QaBPLLtz8CSc6Bc5IbRA1alx0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273150; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Zar3mHRcglHXZq0rXLYKr9WwILpPSa8Lbdf+POwELkA=; b=Tukg8lF6StcFAijgZPRYJabzTCTi7RgCbZGfVxb7mF/GfOzMgQ9uWft/YiYnUMSXuqCrL7XJHnS+5KgbDcFCOrlz9mik/X86ASz9A3Em92q2Fn4eRr8WuFaMwQz1HPvQo3jtL1BW97OWmb6zUMO0wQBsA0/FZIhEcgLVyRen6sY= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273150298383.4923778209302; Fri, 9 Oct 2020 12:52:30 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5075.13127 (Exim 4.92) (envelope-from ) id 1kQyR3-0002w9-3M; Fri, 09 Oct 2020 19:52:13 +0000 Received: by outflank-mailman (output) from mailman id 5075.13127; Fri, 09 Oct 2020 19:52:13 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyR2-0002vq-Px; Fri, 09 Oct 2020 19:52:12 +0000 Received: by outflank-mailman (input) for mailman id 5075; Fri, 09 Oct 2020 19:52:11 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyR1-0002tp-Mb for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:11 +0000 Received: from mga05.intel.com (unknown [192.55.52.43]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id b9ddbe04-042d-40ae-b137-5053db29f448; Fri, 09 Oct 2020 19:52:10 +0000 (UTC) Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:09 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:08 -0700 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyR1-0002tp-Mb for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:11 +0000 Received: from mga05.intel.com (unknown [192.55.52.43]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id b9ddbe04-042d-40ae-b137-5053db29f448; Fri, 09 Oct 2020 19:52:10 +0000 (UTC) Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:09 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:08 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: b9ddbe04-042d-40ae-b137-5053db29f448 IronPort-SDR: AVSKZFwlV1ldgQIvgIgp+VNk1rb9F997DQAB5T/JQHKkrwSWqMMgm3DTpbU3qi5SJJPXOhr8iA DoV7+m7jZIoQ== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="250226094" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="250226094" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: zRSzmM1HZFGhzQcGhWxIWUdt7PON477D2ysFpCnQTUxdw9Z8VdaNQXVN+6ixBePqleDwfFxfgw K58aOn7YePQQ== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="317147210" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Miklos Szeredi , 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 23/58] fs/fuse: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:49:58 -0700 Message-Id: <20201009195033.3208459-24-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 Content-Type: text/plain; charset="utf-8" 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: Miklos Szeredi Signed-off-by: Ira Weiny --- fs/fuse/readdir.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/fuse/readdir.c b/fs/fuse/readdir.c index 90e3f01bd796..953ffe6f56e3 100644 --- a/fs/fuse/readdir.c +++ b/fs/fuse/readdir.c @@ -536,9 +536,9 @@ static int fuse_readdir_cached(struct file *file, struc= t dir_context *ctx) * Contents of the page are now protected against changing by holding * the page lock. */ - addr =3D kmap(page); + addr =3D kmap_thread(page); res =3D fuse_parse_cache(ff, addr, size, ctx); - kunmap(page); + kunmap_thread(page); unlock_page(page); put_page(page); =20 --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273157; cv=none; d=zohomail.com; s=zohoarc; b=A7lHD1ML2Nd1ChF+iecYnwhPRy/qmx7lfOZODCDhTYa6nNGGqmMYIMV8DSqp/kLgKFaBDI6xwc6OOqZWe40TR+QYXQHVcqUyKeSr1T0T0u8lN0koVXbfxUBym+z9tWBqaa67uc/wDNiHVV5iRQ5qUcZ6rjT6HkKaifUxuaJwliM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273157; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=8DwmtrTH5u3kAZXwJil7Rl4RJz1dxfvuS+29Vv3tPOM=; b=OODbm/mywxOJzaV/Y5+zXGSkkbA6eZBARfUA3DrjV/MJ4BV2eQrMpbr75zKYK7q1Fmd4FH0kY+rX1tj4dIjkj+mhrPUtYGNddyBqNTnShpO/IFTsum5my1l7pnzVOPForQI2qKLCrO4P+5Ka81YFmHHL05ird255uYVCX4qy8U8= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 160227315768658.99415468392954; Fri, 9 Oct 2020 12:52:37 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5078.13157 (Exim 4.92) (envelope-from ) id 1kQyRD-0003Ew-88; Fri, 09 Oct 2020 19:52:23 +0000 Received: by outflank-mailman (output) from mailman id 5078.13157; Fri, 09 Oct 2020 19:52:23 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRD-0003Em-37; Fri, 09 Oct 2020 19:52:23 +0000 Received: by outflank-mailman (input) for mailman id 5078; Fri, 09 Oct 2020 19:52:21 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRB-0002d3-It for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:21 +0000 Received: from mga14.intel.com (unknown [192.55.52.115]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 2749c6a6-7012-41e4-b3da-3db0212b39f1; Fri, 09 Oct 2020 19:52:15 +0000 (UTC) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:14 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:13 -0700 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRB-0002d3-It for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:21 +0000 Received: from mga14.intel.com (unknown [192.55.52.115]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 2749c6a6-7012-41e4-b3da-3db0212b39f1; Fri, 09 Oct 2020 19:52:15 +0000 (UTC) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:14 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:13 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 2749c6a6-7012-41e4-b3da-3db0212b39f1 IronPort-SDR: v5b9Q8Z2GSzBmZpclLi79CDcBclwnaLDng+afkWHJyp8MtfG51HJ/dnMv79JJlXETxnoSQaMLm BTw3tczoCwBA== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="164743881" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="164743881" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: 3JX06O44Su5jMQA8yIL2WSzzn7vN3G6TESZobv60VERxc/1W/c4pPVNWJf815mQW07ftkYqATa 1m7LiUgK4+Rg== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="312652755" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Christoph Hellwig , 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 24/58] fs/freevxfs: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:49:59 -0700 Message-Id: <20201009195033.3208459-25-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 Content-Type: text/plain; charset="utf-8" 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: Christoph Hellwig Signed-off-by: Ira Weiny --- fs/freevxfs/vxfs_immed.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/freevxfs/vxfs_immed.c b/fs/freevxfs/vxfs_immed.c index bfc780c682fb..9c42fec4cd85 100644 --- a/fs/freevxfs/vxfs_immed.c +++ b/fs/freevxfs/vxfs_immed.c @@ -69,9 +69,9 @@ vxfs_immed_readpage(struct file *fp, struct page *pp) u_int64_t offset =3D (u_int64_t)pp->index << PAGE_SHIFT; caddr_t kaddr; =20 - kaddr =3D kmap(pp); + kaddr =3D kmap_thread(pp); memcpy(kaddr, vip->vii_immed.vi_immed + offset, PAGE_SIZE); - kunmap(pp); + kunmap_thread(pp); =09 flush_dcache_page(pp); SetPageUptodate(pp); --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273157; cv=none; d=zohomail.com; s=zohoarc; b=Eh1ce21hW3nHoU1h3ry20NlNS1oTIP6yiqvBAc+Mo5VmXVDb65pkdaa72MInMRuFzl9nU7RTpCBKkpHiv9rlhfnxbqLqfYex7Afxl9MfZYdXSnAQimVCCE/AIFWe+Z6aKFFijGB6yr4DyfTqPVGus1H58+nYwDx6cw52IdSJbhU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273157; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=DPizkRBEchUUF/vBkgyZwzl320WHImxPlyHOlSarJnQ=; b=kPdmebOGPorHSYrt5mUfA13t1L+Ht8dF/XBdBZqo7d1Z+pRO0ovkh2ffsNRB5Ukx7U2LgpAxm8oISUTPy+UXV2oqrv5jLtHPpj6yQGJQrnDUV+b5rxxUG/Qh7WAH3KPkHYoW3iOsih/WCfBgCMm8ICurQ4Au9dPX/+v3Cu64wTo= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273157839420.1647313175048; Fri, 9 Oct 2020 12:52:37 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5079.13164 (Exim 4.92) (envelope-from ) id 1kQyRD-0003GE-R4; Fri, 09 Oct 2020 19:52:23 +0000 Received: by outflank-mailman (output) from mailman id 5079.13164; Fri, 09 Oct 2020 19:52:23 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRD-0003Fi-FQ; Fri, 09 Oct 2020 19:52:23 +0000 Received: by outflank-mailman (input) for mailman id 5079; Fri, 09 Oct 2020 19:52:22 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRB-0003DD-TA for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:21 +0000 Received: from mga02.intel.com (unknown [134.134.136.20]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 114dd5ee-a9ba-4bfb-9ece-c3908f972bfd; Fri, 09 Oct 2020 19:52:19 +0000 (UTC) Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:18 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga006-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:18 -0700 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRB-0003DD-TA for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:21 +0000 Received: from mga02.intel.com (unknown [134.134.136.20]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 114dd5ee-a9ba-4bfb-9ece-c3908f972bfd; Fri, 09 Oct 2020 19:52:19 +0000 (UTC) Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:18 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga006-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:18 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 114dd5ee-a9ba-4bfb-9ece-c3908f972bfd IronPort-SDR: HyfS7VmAzOeN0qMivQvoCHw/UhQd5NKN33p3DiiNbudQeqTB6/LL6bWl26oONTrvqBH8rxjgdt Hlf0ywrei4ng== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="152450959" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="152450959" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: wr8yF8/sTlHJunnzFelUAfkdGIrCwMwbAv+fVYfwv9n4Q9ri2s7tZy/sCWglaZc+50HSVTr6HF aNXvhi/ktrcA== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="518801285" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Jan Kara , "Theodore Ts'o" , Randy Dunlap , Alex Shi , 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 25/58] fs/reiserfs: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:50:00 -0700 Message-Id: <20201009195033.3208459-26-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 Content-Type: text/plain; charset="utf-8" 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: Jan Kara Cc: "Theodore Ts'o" Cc: Randy Dunlap Cc: Alex Shi Signed-off-by: Ira Weiny --- fs/reiserfs/journal.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/reiserfs/journal.c b/fs/reiserfs/journal.c index e98f99338f8f..be8f56261e8c 100644 --- a/fs/reiserfs/journal.c +++ b/fs/reiserfs/journal.c @@ -4194,11 +4194,11 @@ static int do_journal_end(struct reiserfs_transacti= on_handle *th, int flags) SB_ONDISK_JOURNAL_SIZE(sb))); set_buffer_uptodate(tmp_bh); page =3D cn->bh->b_page; - addr =3D kmap(page); + addr =3D kmap_thread(page); memcpy(tmp_bh->b_data, addr + offset_in_page(cn->bh->b_data), cn->bh->b_size); - kunmap(page); + kunmap_thread(page); mark_buffer_dirty(tmp_bh); jindex++; set_buffer_journal_dirty(cn->bh); --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273167; cv=none; d=zohomail.com; s=zohoarc; b=Mr7oqmC1VA3Xb/WW+IwLeLOWZBcwogoXn57RJSjyeXZtZzYRhsgNOuPQqIR2BEBCwrf4WEhxMqHFuC4rIAssRBTozTfclDtIQojXI8jCLO4RaAp7MKDtMPQ38dpRS8gSyTT3oNSUk19XmQUzJC7SO7hLQm3oCqLrClJxMfkxugE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273167; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=E//zmHfSL2wsRGl+CI77v9++m76kSkC/Y15aincz88o=; b=nMRUqLm83UFszxfZQHdtVagYFjTFYuPEY6i6DXASPfw0/B8WlzhvDQZlsbIGK/rPjMgsqSu2RCNfccGGgDAKk0nYNegJvdBYZoSAIagCFJ11LQ4R5O0LmkDxysdw2+CCa9vQaMvnsSDx1H2xI1x+YPQUonFgxVEWuNSFGCv4/b0= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273167392581.9844053400986; Fri, 9 Oct 2020 12:52:47 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5081.13180 (Exim 4.92) (envelope-from ) id 1kQyRN-0003Wh-7O; Fri, 09 Oct 2020 19:52:33 +0000 Received: by outflank-mailman (output) from mailman id 5081.13180; Fri, 09 Oct 2020 19:52:33 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRN-0003WZ-3i; Fri, 09 Oct 2020 19:52:33 +0000 Received: by outflank-mailman (input) for mailman id 5081; Fri, 09 Oct 2020 19:52:31 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRL-0002d3-JS for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:31 +0000 Received: from mga18.intel.com (unknown [134.134.136.126]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id c7d70813-3935-4011-8eb3-d3dc4f9da9a3; Fri, 09 Oct 2020 19:52:23 +0000 (UTC) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:22 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:21 -0700 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRL-0002d3-JS for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:31 +0000 Received: from mga18.intel.com (unknown [134.134.136.126]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id c7d70813-3935-4011-8eb3-d3dc4f9da9a3; Fri, 09 Oct 2020 19:52:23 +0000 (UTC) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:22 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:21 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: c7d70813-3935-4011-8eb3-d3dc4f9da9a3 IronPort-SDR: nMC9K3ubWzfvYuZ7DSyCCO9Sbt6ISBPe0BjddKTp38eJH4KzOv9asRhjkuiaQ6OmoyxfQFymq/ fyG07zfZVnFQ== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="153363585" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="153363585" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: 66NbHcTTg+QzLX/XjjZVbeOCocpzHQlXc/1uyGjsCwgKA6U0t9qDgsp0fGjjJhdH2o4WKM8nKt 1m4fFh6MimYQ== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="354959189" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Damien Le Moal , Naohiro Aota , 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 26/58] fs/zonefs: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:50:01 -0700 Message-Id: <20201009195033.3208459-27-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 Content-Type: text/plain; charset="utf-8" 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: Damien Le Moal Cc: Naohiro Aota Signed-off-by: Ira Weiny --- fs/zonefs/super.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/zonefs/super.c b/fs/zonefs/super.c index 8ec7c8f109d7..2fd6c86beee1 100644 --- a/fs/zonefs/super.c +++ b/fs/zonefs/super.c @@ -1297,7 +1297,7 @@ static int zonefs_read_super(struct super_block *sb) if (ret) goto free_page; =20 - super =3D kmap(page); + super =3D kmap_thread(page); =20 ret =3D -EINVAL; if (le32_to_cpu(super->s_magic) !=3D ZONEFS_MAGIC) @@ -1349,7 +1349,7 @@ static int zonefs_read_super(struct super_block *sb) ret =3D 0; =20 unmap: - kunmap(page); + kunmap_thread(page); free_page: __free_page(page); =20 --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273172; cv=none; d=zohomail.com; s=zohoarc; b=SSQanfYA/4wUriA5vQoB2yDnbU/irwhRQMTu57umeKOifxpBfutKblp9EJnnBCMLrU7CSM2hJ1X7OnW28lLL87A10bXOaTPWmDjHGPBNG/W+7USLUPd4BKk+DhGrTbwG+kPcuTo0gD7BKgH2VqnlpCo4FkC+LJ92KD3jczlFkM0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273172; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=9KbsfZWLnD6r/Dd+XCCtLeQxjuyiauqNm6DkII+MfbA=; b=D960uygT3BbWMQoMEzoGynmHbgh+hq8xRvVvLeLFIe78YkVOJ5NVu/tj7VPEKF4RxvqishsS14NiCARK0m56O2K3cHqjaAYEhkZa+6HagWrU9WqKMyRGQrLUFE8CfWDQhI4ylVT+blbcOZ+2WPACYyXU1ERE1vMYmvS76AKBPCs= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 160227317298528.346798019460266; Fri, 9 Oct 2020 12:52:52 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5085.13204 (Exim 4.92) (envelope-from ) id 1kQyRS-0003ge-9D; Fri, 09 Oct 2020 19:52:38 +0000 Received: by outflank-mailman (output) from mailman id 5085.13204; Fri, 09 Oct 2020 19:52:38 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRS-0003gS-3y; Fri, 09 Oct 2020 19:52:38 +0000 Received: by outflank-mailman (input) for mailman id 5085; Fri, 09 Oct 2020 19:52:36 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRQ-0002d3-Jj for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:36 +0000 Received: from mga06.intel.com (unknown [134.134.136.31]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id cc8e77bf-2006-4dac-810f-8f63fcceecbd; Fri, 09 Oct 2020 19:52:27 +0000 (UTC) Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:26 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:25 -0700 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRQ-0002d3-Jj for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:36 +0000 Received: from mga06.intel.com (unknown [134.134.136.31]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id cc8e77bf-2006-4dac-810f-8f63fcceecbd; Fri, 09 Oct 2020 19:52:27 +0000 (UTC) Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:26 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:25 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: cc8e77bf-2006-4dac-810f-8f63fcceecbd IronPort-SDR: kH9/s/sUlXbDXcGE7Zkt2tcUwxSSR+7F2MO4VqVSmD1FVEMG0jDSuFnDzi2AqTzRqF/4bThxVz 4InDf5c+JUaQ== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="227179028" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="227179028" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: enOwdrUvox960YRmC5C0rYPH71vGkXRrRSf++MkJJnBOIwe1z1BLjEriaudfjb7SF8F3v1X02a epHq/DZLuLjw== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="355863002" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Richard Weinberger , 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 27/58] fs/ubifs: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:50:02 -0700 Message-Id: <20201009195033.3208459-28-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 Content-Type: text/plain; charset="utf-8" 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: Richard Weinberger Signed-off-by: Ira Weiny --- fs/ubifs/file.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/fs/ubifs/file.c b/fs/ubifs/file.c index b77d1637bbbc..a3537447a885 100644 --- a/fs/ubifs/file.c +++ b/fs/ubifs/file.c @@ -111,7 +111,7 @@ static int do_readpage(struct page *page) ubifs_assert(c, !PageChecked(page)); ubifs_assert(c, !PagePrivate(page)); =20 - addr =3D kmap(page); + addr =3D kmap_thread(page); =20 block =3D page->index << UBIFS_BLOCKS_PER_PAGE_SHIFT; beyond =3D (i_size + UBIFS_BLOCK_SIZE - 1) >> UBIFS_BLOCK_SHIFT; @@ -174,7 +174,7 @@ static int do_readpage(struct page *page) SetPageUptodate(page); ClearPageError(page); flush_dcache_page(page); - kunmap(page); + kunmap_thread(page); return 0; =20 error: @@ -182,7 +182,7 @@ static int do_readpage(struct page *page) ClearPageUptodate(page); SetPageError(page); flush_dcache_page(page); - kunmap(page); + kunmap_thread(page); return err; } =20 @@ -616,7 +616,7 @@ static int populate_page(struct ubifs_info *c, struct p= age *page, dbg_gen("ino %lu, pg %lu, i_size %lld, flags %#lx", inode->i_ino, page->index, i_size, page->flags); =20 - addr =3D zaddr =3D kmap(page); + addr =3D zaddr =3D kmap_thread(page); =20 end_index =3D (i_size - 1) >> PAGE_SHIFT; if (!i_size || page->index > end_index) { @@ -692,7 +692,7 @@ static int populate_page(struct ubifs_info *c, struct p= age *page, SetPageUptodate(page); ClearPageError(page); flush_dcache_page(page); - kunmap(page); + kunmap_thread(page); *n =3D nn; return 0; =20 @@ -700,7 +700,7 @@ static int populate_page(struct ubifs_info *c, struct p= age *page, ClearPageUptodate(page); SetPageError(page); flush_dcache_page(page); - kunmap(page); + kunmap_thread(page); ubifs_err(c, "bad data node (block %u, inode %lu)", page_block, inode->i_ino); return -EINVAL; @@ -918,7 +918,7 @@ static int do_writepage(struct page *page, int len) /* Update radix tree tags */ set_page_writeback(page); =20 - addr =3D kmap(page); + addr =3D kmap_thread(page); block =3D page->index << UBIFS_BLOCKS_PER_PAGE_SHIFT; i =3D 0; while (len) { @@ -950,7 +950,7 @@ static int do_writepage(struct page *page, int len) ClearPagePrivate(page); ClearPageChecked(page); =20 - kunmap(page); + kunmap_thread(page); unlock_page(page); end_page_writeback(page); return err; --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273167; cv=none; d=zohomail.com; s=zohoarc; b=dKu/2IR00uHfp7bfDaoF5qMe0q19kKm71onfX8RkwN7oafvE0GXyTVL37oe4Mb8WZ0OaZ74923vIyJEe5T3rDOqMqqsiorafDUkAR2LGfelGX0Dj1c/2b9hhnne7QRcx0Mqw0UfSLYkmJkhGJAHAYrmEAcPEBWKH8IYQ+l8ebwg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273167; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=//sRsHL2Nm/RWgD18ulLYIBA9Id0cesSTX+SEs1Gu8c=; b=QTTPBhWtbWCKZb3v0c/i6U/FhiTOYU+h2/nVZytZKGgQYx+a8TArv9Fowbi9PK/PBVEGkB7bhiZTY4Gu/B1w2xt7uyOzosKcZCWzRxP2vEQ+F9zETPTK7CPaQoueCSxaH7ET1tRVp73hNQNH+feXqbXSaur/zoNec2eyn516/4c= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273167241416.12585958251407; Fri, 9 Oct 2020 12:52:47 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5082.13193 (Exim 4.92) (envelope-from ) id 1kQyRO-0003Zf-Mp; Fri, 09 Oct 2020 19:52:34 +0000 Received: by outflank-mailman (output) from mailman id 5082.13193; Fri, 09 Oct 2020 19:52:34 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRO-0003ZT-H9; Fri, 09 Oct 2020 19:52:34 +0000 Received: by outflank-mailman (input) for mailman id 5082; Fri, 09 Oct 2020 19:52:32 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRM-0003VG-6w for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:32 +0000 Received: from mga18.intel.com (unknown [134.134.136.126]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id ab7fd60a-f541-4ba8-8f03-1ab0e710db19; Fri, 09 Oct 2020 19:52:31 +0000 (UTC) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:30 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:29 -0700 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRM-0003VG-6w for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:32 +0000 Received: from mga18.intel.com (unknown [134.134.136.126]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id ab7fd60a-f541-4ba8-8f03-1ab0e710db19; Fri, 09 Oct 2020 19:52:31 +0000 (UTC) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:30 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:29 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: ab7fd60a-f541-4ba8-8f03-1ab0e710db19 IronPort-SDR: ANd9sD4ETF8cDNeNNLHF1xEZdjjzmZGxw88XeOjm10HKAa6Lb2UuTqdSALqYxupiNLRRqyS0Tg lhpFpcbFa9GQ== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="153363625" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="153363625" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: R8dnd4Gi4VR6B2jqh++vX5H71gVtYpBk3ChyBwkq2ll0tg176OYljcvG78jHbXA7T9l0eBxuZS YLX/odwmLDNw== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="329006590" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , David Howells , 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 28/58] fs/cachefiles: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:50:03 -0700 Message-Id: <20201009195033.3208459-29-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 Content-Type: text/plain; charset="utf-8" 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: David Howells Signed-off-by: Ira Weiny --- fs/cachefiles/rdwr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/cachefiles/rdwr.c b/fs/cachefiles/rdwr.c index 3080cda9e824..2468e5c067ba 100644 --- a/fs/cachefiles/rdwr.c +++ b/fs/cachefiles/rdwr.c @@ -936,9 +936,9 @@ int cachefiles_write_page(struct fscache_storage *op, s= truct page *page) } } =20 - data =3D kmap(page); + data =3D kmap_thread(page); ret =3D kernel_write(file, data, len, &pos); - kunmap(page); + kunmap_thread(page); fput(file); if (ret !=3D len) goto error_eio; --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273172; cv=none; d=zohomail.com; s=zohoarc; b=YOZwv97XljOoEW5bfhEPlTcHgjJQsNcl0gTkCOke2B62kg3wkfo0NRS99vMgYM0nUQWxZ6FEnebnUlg7TdU/uNMEFNYI/mNlNi0t21ctPIoRsXjZgZI5cgkaf3R1OLzhjFqovmxoLRTfO5NeV231hbGp+SdzJ3x9xZIXfJVw0gQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273172; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=AdyqCM5wRuQzg6yZB/pAa1WOhV+jILZ6Olqh8Q1SACk=; b=I7OHJluzhPoN+eYCuMl6sdtj3BpqLyJmnyiTNR6hUOJBZwiXG25fDyxXgBE/iig/+DKfpK+WyyUNUII7t54tAfK+ZhofZnTEvl0G92JCNIuiW0GSfd8jDnSG2WNScnfv6tBEHS6QycFe7C8uO1LPTxNgExN7cQb5/xdyAO011Cc= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273172183925.9750429466372; Fri, 9 Oct 2020 12:52:52 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5086.13212 (Exim 4.92) (envelope-from ) id 1kQyRS-0003hs-S6; Fri, 09 Oct 2020 19:52:38 +0000 Received: by outflank-mailman (output) from mailman id 5086.13212; Fri, 09 Oct 2020 19:52:38 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRS-0003hW-ID; Fri, 09 Oct 2020 19:52:38 +0000 Received: by outflank-mailman (input) for mailman id 5086; Fri, 09 Oct 2020 19:52:37 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRR-0003VG-4U for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:37 +0000 Received: from mga18.intel.com (unknown [134.134.136.126]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id e58c0191-cb0d-42e4-82e6-add0ebb4508f; Fri, 09 Oct 2020 19:52:33 +0000 (UTC) Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:33 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:32 -0700 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRR-0003VG-4U for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:37 +0000 Received: from mga18.intel.com (unknown [134.134.136.126]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id e58c0191-cb0d-42e4-82e6-add0ebb4508f; Fri, 09 Oct 2020 19:52:33 +0000 (UTC) Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:33 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:32 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: e58c0191-cb0d-42e4-82e6-add0ebb4508f IronPort-SDR: Lo2XtPowmQYnTWHphnBW2bQKZ2oio1YDqSAzSkZkJbRd28sKJh/91jcB/8RpILqScKg5Y2mPSC mGB3S19zQb1Q== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="153363640" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="153363640" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: XHP7HCDttdXyLYHE1MyL2Bm/StJaryejpRmS+iQtfLlXLzP04sJOdLalPQz60Qvt6cf6bIW1lg L4ex5grUzrzg== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="298419726" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Anton Altaparmakov , 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 29/58] fs/ntfs: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:50:04 -0700 Message-Id: <20201009195033.3208459-30-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 Content-Type: text/plain; charset="utf-8" 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: Anton Altaparmakov Signed-off-by: Ira Weiny --- fs/ntfs/aops.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/ntfs/aops.c b/fs/ntfs/aops.c index bb0a43860ad2..11633d732809 100644 --- a/fs/ntfs/aops.c +++ b/fs/ntfs/aops.c @@ -1099,7 +1099,7 @@ static int ntfs_write_mst_block(struct page *page, if (!nr_bhs) goto done; /* Map the page so we can access its contents. */ - kaddr =3D kmap(page); + kaddr =3D kmap_thread(page); /* Clear the page uptodate flag whilst the mst fixups are applied. */ BUG_ON(!PageUptodate(page)); ClearPageUptodate(page); @@ -1276,7 +1276,7 @@ static int ntfs_write_mst_block(struct page *page, iput(VFS_I(base_tni)); } SetPageUptodate(page); - kunmap(page); + kunmap_thread(page); done: if (unlikely(err && err !=3D -ENOMEM)) { /* --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273177; cv=none; d=zohomail.com; s=zohoarc; b=Njuz1B3dh8PkrNeZdDV7YirX2LGTi1iKEh0Wb4BtQEu/jhE9116Rj9RVfwhiGcAyfl3F3YoqQVXWu0f7sRxrhWg82YqOR/C+cCk/tXChYZc3Ljq9UPimvRvBb24Y0e5n5HcNIzBUMSnpY1v+bpE6/pqZzwOnge4MeswIcc/oC18= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273177; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=O/cSNMw6E+IGrdxWo6PDWKESG5pI3TH1EBSIq669aw8=; b=QA0OWV1Bd7a1Z+g3QPtuzksD/ZCkBFaVtnjYusab2bbxey/oRIJIynBlQ+dvkcn129338LhRC/NcUIcsB/8tR8R2y15F+gwBy7Z4EgqqqYzzQ8ZvOsks0n/7nc2NUXjDTKQMiEvTLlvModWORDvE1Jv9cUTz5iOVYBqnB07+2Ec= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 160227317718257.34314785093807; Fri, 9 Oct 2020 12:52:57 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5087.13229 (Exim 4.92) (envelope-from ) id 1kQyRX-0003rA-AW; Fri, 09 Oct 2020 19:52:43 +0000 Received: by outflank-mailman (output) from mailman id 5087.13229; Fri, 09 Oct 2020 19:52:43 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRX-0003qu-55; Fri, 09 Oct 2020 19:52:43 +0000 Received: by outflank-mailman (input) for mailman id 5087; Fri, 09 Oct 2020 19:52:42 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRW-0003VG-4U for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:42 +0000 Received: from mga18.intel.com (unknown [134.134.136.126]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 1b2ad870-6b3b-4492-9208-b18e08b18cd8; Fri, 09 Oct 2020 19:52:37 +0000 (UTC) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:37 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga002-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:36 -0700 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRW-0003VG-4U for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:42 +0000 Received: from mga18.intel.com (unknown [134.134.136.126]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 1b2ad870-6b3b-4492-9208-b18e08b18cd8; Fri, 09 Oct 2020 19:52:37 +0000 (UTC) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:37 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga002-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:36 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 1b2ad870-6b3b-4492-9208-b18e08b18cd8 IronPort-SDR: CUDWesW2Va/hB/jfTCoGkbhArBK0AbkZL9zvo/5/AypRvI6V34y6IeJs/Wo0Cre+qSM4x94xIj tZITQ10Kb0/w== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="153363661" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="153363661" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: y48WLHg756NhaQ3a3jufh8VKJ1E37wUwe8fJ/HzDHZ6hDk/W8p1+XzOieTDyZGUDdKxAAVZp75 YdcYJzI+gesw== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="349957490" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , 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 30/58] fs/romfs: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:50:05 -0700 Message-Id: <20201009195033.3208459-31-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 Content-Type: text/plain; charset="utf-8" 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. Signed-off-by: Ira Weiny --- fs/romfs/super.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/romfs/super.c b/fs/romfs/super.c index e582d001f792..9050074c6755 100644 --- a/fs/romfs/super.c +++ b/fs/romfs/super.c @@ -107,7 +107,7 @@ static int romfs_readpage(struct file *file, struct pag= e *page) void *buf; int ret; =20 - buf =3D kmap(page); + buf =3D kmap_thread(page); if (!buf) return -ENOMEM; =20 @@ -136,7 +136,7 @@ static int romfs_readpage(struct file *file, struct pag= e *page) SetPageUptodate(page); =20 flush_dcache_page(page); - kunmap(page); + kunmap_thread(page); unlock_page(page); return ret; } --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273189; cv=none; d=zohomail.com; s=zohoarc; b=aswdRySLB3t755GfQbaT6F6Fz6LZ3ooiNaPOT/F+gFlMV9RvN37NryzwnoFvamvZHwqBG8qAaJaThNDoqYruqf89YNudBxC9IYzwmFqZyGim+2ujz3VOBGiyZquCUDaQ2VEkIrTgYHYO3GIjwJdvbcL22t3YXIesCFQJo9VmW74= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273189; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=lh9gmvVqrxHMfM0MsOoXi4Z8DwsQ8sECvcW5T66A7XY=; b=XW+0oXDd2ief4sdHvMKPF78G4SjHM+sY50ad0l3TSrnVtA8BCv/yyA6GCMM5Au3/QQZ8Xx5iBQ8D8HZEPe00v8PDUIyK+J7I6QuLOBmxrOoV5IzL33ZLMW3PPgL949wEaKHezWdo5J79/Em2ibwSJjz3kf5n7W8FRP9coRCrPWo= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273189499797.8960939734366; Fri, 9 Oct 2020 12:53:09 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5092.13248 (Exim 4.92) (envelope-from ) id 1kQyRh-00047s-DW; Fri, 09 Oct 2020 19:52:53 +0000 Received: by outflank-mailman (output) from mailman id 5092.13248; Fri, 09 Oct 2020 19:52:53 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRh-00047S-1Y; Fri, 09 Oct 2020 19:52:53 +0000 Received: by outflank-mailman (input) for mailman id 5092; Fri, 09 Oct 2020 19:52:52 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRg-0003VG-4o for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:52 +0000 Received: from mga17.intel.com (unknown [192.55.52.151]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 621cbdbf-5a40-44ce-83c9-a302c14e923e; Fri, 09 Oct 2020 19:52:42 +0000 (UTC) Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:41 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:40 -0700 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRg-0003VG-4o for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:52 +0000 Received: from mga17.intel.com (unknown [192.55.52.151]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 621cbdbf-5a40-44ce-83c9-a302c14e923e; Fri, 09 Oct 2020 19:52:42 +0000 (UTC) Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:41 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:40 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 621cbdbf-5a40-44ce-83c9-a302c14e923e IronPort-SDR: imeySJ6f3Q9sudI3xVuxsFxeYZjwfBmWOs3m2f93+9txgw1kzGjh0BHC4WQZKliadxJEcB8gow 6RHcn4LZ75Og== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="145397496" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="145397496" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: L0Vefok2A93xih84zuFNBu3LKLwMRamDsDkR1F4Gust5uwQPsEktlHxFcxfQt1U0vxS4VptD4d rIp50GoBaQKg== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="345148048" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Hans de Goede , 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 31/58] fs/vboxsf: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:50:06 -0700 Message-Id: <20201009195033.3208459-32-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 Content-Type: text/plain; charset="utf-8" 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: Hans de Goede Signed-off-by: Ira Weiny --- fs/vboxsf/file.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/vboxsf/file.c b/fs/vboxsf/file.c index c4ab5996d97a..d9c7e6b7b4cc 100644 --- a/fs/vboxsf/file.c +++ b/fs/vboxsf/file.c @@ -216,7 +216,7 @@ static int vboxsf_readpage(struct file *file, struct pa= ge *page) u8 *buf; int err; =20 - buf =3D kmap(page); + buf =3D kmap_thread(page); =20 err =3D vboxsf_read(sf_handle->root, sf_handle->handle, off, &nread, buf); if (err =3D=3D 0) { @@ -227,7 +227,7 @@ static int vboxsf_readpage(struct file *file, struct pa= ge *page) SetPageError(page); } =20 - kunmap(page); + kunmap_thread(page); unlock_page(page); return err; } @@ -268,10 +268,10 @@ static int vboxsf_writepage(struct page *page, struct= writeback_control *wbc) if (!sf_handle) return -EBADF; =20 - buf =3D kmap(page); + buf =3D kmap_thread(page); err =3D vboxsf_write(sf_handle->root, sf_handle->handle, off, &nwrite, buf); - kunmap(page); + kunmap_thread(page); =20 kref_put(&sf_handle->refcount, vboxsf_handle_release); =20 @@ -302,10 +302,10 @@ static int vboxsf_write_end(struct file *file, struct= address_space *mapping, if (!PageUptodate(page) && copied < len) zero_user(page, from + copied, len - copied); =20 - buf =3D kmap(page); + buf =3D kmap_thread(page); err =3D vboxsf_write(sf_handle->root, sf_handle->handle, pos, &nwritten, buf + from); - kunmap(page); + kunmap_thread(page); =20 if (err) { nwritten =3D 0; --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273191; cv=none; d=zohomail.com; s=zohoarc; b=d0ICnsHRUV4HjIQu/YaZB7sySKu/cpCr/g1AmnV8I0f0r85Ij5fMO6w15xT+ziYq326w49sNbfqEa/z5bfPKKkI4RNX380sR4S0YCZe69UnZDp00cMLFIhNz0owTLR0UkCy8MgCmnZVySvGM9h3XQIdsLfb3XfPFq+vaPjOaVkc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273191; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=JLU/lXjGyOieQLTinQaGPywPXMUbH1TjmAZuDLSzykE=; b=AUfleSUlBx7ea6v7JFRA+Gjk+fkI2FUXnkfFyn6CoF4Hc3s40Rnhu2UWAvp1/azdCdJh7xZrtMc8XABhUgl1R4iDPrjafqaUiqvkMsWH4c9TLXfnZJ8pJdRlVvG9Vu3aV2Ex3aKwNB0petiwX5nvG50MDOwWxXiV2fKW8dPhfd0= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273191465842.8107143144762; Fri, 9 Oct 2020 12:53:11 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5094.13265 (Exim 4.92) (envelope-from ) id 1kQyRm-0004Hf-Mm; Fri, 09 Oct 2020 19:52:58 +0000 Received: by outflank-mailman (output) from mailman id 5094.13265; Fri, 09 Oct 2020 19:52:58 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRm-0004HT-IP; Fri, 09 Oct 2020 19:52:58 +0000 Received: by outflank-mailman (input) for mailman id 5094; Fri, 09 Oct 2020 19:52:57 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRl-0003VG-4q for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:57 +0000 Received: from mga11.intel.com (unknown [192.55.52.93]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id bf302556-a958-407d-bd09-6bb7935b5582; Fri, 09 Oct 2020 19:52:46 +0000 (UTC) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:45 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:43 -0700 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRl-0003VG-4q for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:57 +0000 Received: from mga11.intel.com (unknown [192.55.52.93]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id bf302556-a958-407d-bd09-6bb7935b5582; Fri, 09 Oct 2020 19:52:46 +0000 (UTC) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:45 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:43 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: bf302556-a958-407d-bd09-6bb7935b5582 IronPort-SDR: i9q3zJ+uL+2benq9Ca20fKVcvn5UbbjweCphprj2Vg+SWY5xTRvk1nOW4rQlhM7h2o8WQcpn4t 4Hs+X+9kVweA== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="162068029" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="162068029" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: A7QVfEYpWd+zukvvJSzSDlmpc6UtcI1VTl49mnWle7o9+shZWHPb4ayBrZUheEhKcyM4kHv/QX ai2WmfcpOoFA== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="389237190" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Jeff Dike , Richard Weinberger , Anton Ivanov , 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 32/58] fs/hostfs: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:50:07 -0700 Message-Id: <20201009195033.3208459-33-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 Content-Type: text/plain; charset="utf-8" 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: Jeff Dike Cc: Richard Weinberger Cc: Anton Ivanov Signed-off-by: Ira Weiny --- fs/hostfs/hostfs_kern.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/hostfs/hostfs_kern.c b/fs/hostfs/hostfs_kern.c index c070c0d8e3e9..608efd0f83cb 100644 --- a/fs/hostfs/hostfs_kern.c +++ b/fs/hostfs/hostfs_kern.c @@ -409,7 +409,7 @@ static int hostfs_writepage(struct page *page, struct w= riteback_control *wbc) if (page->index >=3D end_index) count =3D inode->i_size & (PAGE_SIZE-1); =20 - buffer =3D kmap(page); + buffer =3D kmap_thread(page); =20 err =3D write_file(HOSTFS_I(inode)->fd, &base, buffer, count); if (err !=3D count) { @@ -425,7 +425,7 @@ static int hostfs_writepage(struct page *page, struct w= riteback_control *wbc) err =3D 0; =20 out: - kunmap(page); + kunmap_thread(page); =20 unlock_page(page); return err; @@ -437,7 +437,7 @@ static int hostfs_readpage(struct file *file, struct pa= ge *page) loff_t start =3D page_offset(page); int bytes_read, ret =3D 0; =20 - buffer =3D kmap(page); + buffer =3D kmap_thread(page); bytes_read =3D read_file(FILE_HOSTFS_I(file)->fd, &start, buffer, PAGE_SIZE); if (bytes_read < 0) { @@ -454,7 +454,7 @@ static int hostfs_readpage(struct file *file, struct pa= ge *page) =20 out: flush_dcache_page(page); - kunmap(page); + kunmap_thread(page); unlock_page(page); return ret; } @@ -480,9 +480,9 @@ static int hostfs_write_end(struct file *file, struct a= ddress_space *mapping, unsigned from =3D pos & (PAGE_SIZE - 1); int err; =20 - buffer =3D kmap(page); + buffer =3D kmap_thread(page); err =3D write_file(FILE_HOSTFS_I(file)->fd, &pos, buffer + from, copied); - kunmap(page); + kunmap_thread(page); =20 if (!PageUptodate(page) && err =3D=3D PAGE_SIZE) SetPageUptodate(page); --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273186; cv=none; d=zohomail.com; s=zohoarc; b=IC0RjH7biBZM/1qbGIcJfa0EryoDVQjSTg6u8A00XtT37RgIqVFq1x1KUfP0Zny6m6qQb1NETSDuojquApxyuZAcu69yt8qPNxDycdjhQKU4UDzOQb2zlLXW2iPX9gnjTVnhnMCOAgnzZjDn22j5uBlaH/gakdYpgDxEb+NG+HA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273186; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=xhVbOy4rxKksciu3/941fMSmqeHo+GcYjZNFp3B/dZ8=; b=RpABGqH5qx4YbcozFI8ZV4koVSodZHPt+HQrojCQEeSHDpv5fcVs2ah/8OcSo7J5HqxfYdmSUh/jRZNwyBFxr/aI1hUKdiWvuma66ErnWRnWn1FU9iDfp8UZ/aTnHgNQjsgUeHrsdqwltKVVwHUoVI+0769L/aVjLeXysUI7xfw= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273186169214.52568126744063; Fri, 9 Oct 2020 12:53:06 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5091.13241 (Exim 4.92) (envelope-from ) id 1kQyRg-00046d-NV; Fri, 09 Oct 2020 19:52:52 +0000 Received: by outflank-mailman (output) from mailman id 5091.13241; Fri, 09 Oct 2020 19:52:52 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRg-00046K-JT; Fri, 09 Oct 2020 19:52:52 +0000 Received: by outflank-mailman (input) for mailman id 5091; Fri, 09 Oct 2020 19:52:50 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRe-00043i-HP for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:50 +0000 Received: from mga14.intel.com (unknown [192.55.52.115]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 6b734728-88a0-41f1-9504-607647bc49b5; Fri, 09 Oct 2020 19:52:49 +0000 (UTC) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:48 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga001-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:47 -0700 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRe-00043i-HP for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:52:50 +0000 Received: from mga14.intel.com (unknown [192.55.52.115]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 6b734728-88a0-41f1-9504-607647bc49b5; Fri, 09 Oct 2020 19:52:49 +0000 (UTC) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:48 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga001-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:47 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 6b734728-88a0-41f1-9504-607647bc49b5 IronPort-SDR: N7voPqBiOJWo/YvfTgf0df/GIAxVqFAdmol5LxUitt2JNgrbMo2iP2Jv81aeB8EE9Jq27j+af+ 6lwJy/d34Ipw== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="164743960" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="164743960" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: 0rzHuL4N+KM4WVW+vmL+eEj1y192PC4ThPKt2jdycOAoxaq6uEUOpoOJAuFDFbsfnCMTEcEeiF lMErav9d18Iw== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="419537108" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Nicolas Pitre , 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 33/58] fs/cramfs: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:50:08 -0700 Message-Id: <20201009195033.3208459-34-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 Content-Type: text/plain; charset="utf-8" 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: Nicolas Pitre Signed-off-by: Ira Weiny Acked-by: Nicolas Pitre --- fs/cramfs/inode.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/fs/cramfs/inode.c b/fs/cramfs/inode.c index 912308600d39..003c014a42ed 100644 --- a/fs/cramfs/inode.c +++ b/fs/cramfs/inode.c @@ -247,8 +247,8 @@ static void *cramfs_blkdev_read(struct super_block *sb,= unsigned int offset, struct page *page =3D pages[i]; =20 if (page) { - memcpy(data, kmap(page), PAGE_SIZE); - kunmap(page); + memcpy(data, kmap_thread(page), PAGE_SIZE); + kunmap_thread(page); put_page(page); } else memset(data, 0, PAGE_SIZE); @@ -826,7 +826,7 @@ static int cramfs_readpage(struct file *file, struct pa= ge *page) =20 maxblock =3D (inode->i_size + PAGE_SIZE - 1) >> PAGE_SHIFT; bytes_filled =3D 0; - pgdata =3D kmap(page); + pgdata =3D kmap_thread(page); =20 if (page->index < maxblock) { struct super_block *sb =3D inode->i_sb; @@ -914,13 +914,13 @@ static int cramfs_readpage(struct file *file, struct = page *page) =20 memset(pgdata + bytes_filled, 0, PAGE_SIZE - bytes_filled); flush_dcache_page(page); - kunmap(page); + kunmap_thread(page); SetPageUptodate(page); unlock_page(page); return 0; =20 err: - kunmap(page); + kunmap_thread(page); ClearPageUptodate(page); SetPageError(page); unlock_page(page); --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273198; cv=none; d=zohomail.com; s=zohoarc; b=EvfWnNZrvdTMC9//F/KVT7QYZZaFStALG2WUM5N246TItQmGXKd9hTswmITTpvhCkU1WOTbGW8FPD25m3LxnYYoOis0vs6Nwdsh9nxDi1FYjsquffwt+aSqlKKzGue5hXwhQbfOQQiCtq+z02KmgCDurSJ4CEyXzDTSUkWyfQws= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273198; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=kxXPyXVSxQURySsCVyDDf1/2YmYMiHHbJkHA4A0p5s0=; b=fldA++oQG1NQ9RarsEu43c+geqhtgH/TdkKdY2+4mjKBJt+3qZUhyePcMLA7shnYb9z0QcMCSYOo/NrwG+TBQt7FM1tnueSKOCcynNoYmuB0OejCeLNWFUAEieAaGhgI6ZqJ50D4Lh2QKwgWcQ7enNJf/O7kDCydp1qztKq+L0A= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273198756101.48656763000179; Fri, 9 Oct 2020 12:53:18 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5097.13277 (Exim 4.92) (envelope-from ) id 1kQyRr-0004QT-FT; Fri, 09 Oct 2020 19:53:03 +0000 Received: by outflank-mailman (output) from mailman id 5097.13277; Fri, 09 Oct 2020 19:53:03 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRr-0004QE-9c; Fri, 09 Oct 2020 19:53:03 +0000 Received: by outflank-mailman (input) for mailman id 5097; Fri, 09 Oct 2020 19:53:02 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRq-0003VG-51 for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:02 +0000 Received: from mga07.intel.com (unknown [134.134.136.100]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 994c5aca-c014-4148-96d9-691c33e44643; Fri, 09 Oct 2020 19:52:52 +0000 (UTC) Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:51 -0700 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:52:50 -0700 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRq-0003VG-51 for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:02 +0000 Received: from mga07.intel.com (unknown [134.134.136.100]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 994c5aca-c014-4148-96d9-691c33e44643; Fri, 09 Oct 2020 19:52:52 +0000 (UTC) Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:51 -0700 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:52:50 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 994c5aca-c014-4148-96d9-691c33e44643 IronPort-SDR: iZxtaX4a/lCACf+YZwwn03jGiMwUdb8+s7en1JzcNOvZAONZ1adgEI+dukjN+iYbwuwNtfJ36u 1Mp66w6EBhcw== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="229715276" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="229715276" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: raa31ON9t7yf3LIgfzeAsEKPUCppaesVfvBVJ2ruufMJvWsy9JzU1jTdgl2++U0w8tR7AuyOxm Q4+3OjaqYbiw== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="298531317" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Gao Xiang , Chao Yu , 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 34/58] fs/erofs: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:50:09 -0700 Message-Id: <20201009195033.3208459-35-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 Content-Type: text/plain; charset="utf-8" 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: Gao Xiang Cc: Chao Yu Signed-off-by: Ira Weiny --- fs/erofs/super.c | 4 ++-- fs/erofs/xattr.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/fs/erofs/super.c b/fs/erofs/super.c index ddaa516c008a..41696b60f1b3 100644 --- a/fs/erofs/super.c +++ b/fs/erofs/super.c @@ -139,7 +139,7 @@ static int erofs_read_superblock(struct super_block *sb) =20 sbi =3D EROFS_SB(sb); =20 - data =3D kmap(page); + data =3D kmap_thread(page); dsb =3D (struct erofs_super_block *)(data + EROFS_SUPER_OFFSET); =20 ret =3D -EINVAL; @@ -189,7 +189,7 @@ static int erofs_read_superblock(struct super_block *sb) } ret =3D 0; out: - kunmap(page); + kunmap_thread(page); put_page(page); return ret; } diff --git a/fs/erofs/xattr.c b/fs/erofs/xattr.c index c8c381eadcd6..1771baa99d77 100644 --- a/fs/erofs/xattr.c +++ b/fs/erofs/xattr.c @@ -20,7 +20,7 @@ static inline void xattr_iter_end(struct xattr_iter *it, = bool atomic) { /* the only user of kunmap() is 'init_inode_xattrs' */ if (!atomic) - kunmap(it->page); + kunmap_thread(it->page); else kunmap_atomic(it->kaddr); =20 @@ -96,7 +96,7 @@ static int init_inode_xattrs(struct inode *inode) } =20 /* read in shared xattr array (non-atomic, see kmalloc below) */ - it.kaddr =3D kmap(it.page); + it.kaddr =3D kmap_thread(it.page); atomic_map =3D false; =20 ih =3D (struct erofs_xattr_ibody_header *)(it.kaddr + it.ofs); --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273209; cv=none; d=zohomail.com; s=zohoarc; b=VDLCXNWqW2/HGiO3eUiIIh4v1JwSqNEGXw+MGhej5+hD2xxW5igQtL8Rte1hoRcF0VZHJegFx5uEUGQsz4lN5nGtwDVj6btklC6edLJ/7KVERG+lsJWAqqAiiYzssesVsBjXEo2UNz+pm4HS/jaQKWErJHBwNgjNacTFYgRLJHo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273209; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=c39ZoYF8cJvmaRq6EtNlpv+U38JK28bYyww8yBaKZ2g=; b=YkVJzobaQu3DwFXXLNYTFRC7prLdbuOlxUAMw2JLD32K5iVX2Wt3l3DKJBILIpwzmCdSJz59Sp75KFP3E3Av4z89VDBwa0U5fDpPvsgAE53EekIJs/JLrNWTZ5MXP5Wij3wJikfdi/4J22vGWBtfD1LAIkRa2b6X5uXqh376g6U= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273209324490.9118639053348; Fri, 9 Oct 2020 12:53:29 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5105.13313 (Exim 4.92) (envelope-from ) id 1kQyS2-0004le-2H; Fri, 09 Oct 2020 19:53:14 +0000 Received: by outflank-mailman (output) from mailman id 5105.13313; Fri, 09 Oct 2020 19:53:13 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyS1-0004lO-SZ; Fri, 09 Oct 2020 19:53:13 +0000 Received: by outflank-mailman (input) for mailman id 5105; Fri, 09 Oct 2020 19:53:12 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyS0-0003VG-5W for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:12 +0000 Received: from mga11.intel.com (unknown [192.55.52.93]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id f6a952ee-b302-4050-8ce5-5482337f9bb5; Fri, 09 Oct 2020 19:52:56 +0000 (UTC) Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:55 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:54 -0700 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyS0-0003VG-5W for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:12 +0000 Received: from mga11.intel.com (unknown [192.55.52.93]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id f6a952ee-b302-4050-8ce5-5482337f9bb5; Fri, 09 Oct 2020 19:52:56 +0000 (UTC) Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:55 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:54 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: f6a952ee-b302-4050-8ce5-5482337f9bb5 IronPort-SDR: HeQeWn0p/UqbYkNt0JKeVeSxNj8mIesXlUIJCv0vTU0iyGMGJUfZbqb7TupHI2SCJe6szIUfd3 x6vVlPS8SQQQ== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="162068044" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="162068044" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: TN82OMSOJnR+1dzdu/wtYu+HarPMiqU5tCJLq9k+HDWuiKzSJliaVoZHfBedXzzykRk72guGi9 gJFQG6Pg4N1Q== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="529053748" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Alexander Viro , Jens Axboe , 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 35/58] fs: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:50:10 -0700 Message-Id: <20201009195033.3208459-36-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny These kmap() calls are localized to a single thread. To avoid the over head of global PKRS updates use the new kmap_thread() call. Cc: Alexander Viro Cc: Jens Axboe Signed-off-by: Ira Weiny --- fs/aio.c | 4 ++-- fs/binfmt_elf.c | 4 ++-- fs/binfmt_elf_fdpic.c | 4 ++-- fs/exec.c | 10 +++++----- fs/io_uring.c | 4 ++-- fs/splice.c | 4 ++-- 6 files changed, 15 insertions(+), 15 deletions(-) diff --git a/fs/aio.c b/fs/aio.c index d5ec30385566..27f95996d25f 100644 --- a/fs/aio.c +++ b/fs/aio.c @@ -1223,10 +1223,10 @@ static long aio_read_events_ring(struct kioctx *ctx, avail =3D min(avail, nr - ret); avail =3D min_t(long, avail, AIO_EVENTS_PER_PAGE - pos); =20 - ev =3D kmap(page); + ev =3D kmap_thread(page); copy_ret =3D copy_to_user(event + ret, ev + pos, sizeof(*ev) * avail); - kunmap(page); + kunmap_thread(page); =20 if (unlikely(copy_ret)) { ret =3D -EFAULT; diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c index 13d053982dd7..1a332ef1ae03 100644 --- a/fs/binfmt_elf.c +++ b/fs/binfmt_elf.c @@ -2430,9 +2430,9 @@ static int elf_core_dump(struct coredump_params *cprm) =20 page =3D get_dump_page(addr); if (page) { - void *kaddr =3D kmap(page); + void *kaddr =3D kmap_thread(page); stop =3D !dump_emit(cprm, kaddr, PAGE_SIZE); - kunmap(page); + kunmap_thread(page); put_page(page); } else stop =3D !dump_skip(cprm, PAGE_SIZE); diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c index 50f845702b92..8fbe188e0fdd 100644 --- a/fs/binfmt_elf_fdpic.c +++ b/fs/binfmt_elf_fdpic.c @@ -1542,9 +1542,9 @@ static bool elf_fdpic_dump_segments(struct coredump_p= arams *cprm) bool res; struct page *page =3D get_dump_page(addr); if (page) { - void *kaddr =3D kmap(page); + void *kaddr =3D kmap_thread(page); res =3D dump_emit(cprm, kaddr, PAGE_SIZE); - kunmap(page); + kunmap_thread(page); put_page(page); } else { res =3D dump_skip(cprm, PAGE_SIZE); diff --git a/fs/exec.c b/fs/exec.c index a91003e28eaa..3948b8511e3a 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -575,11 +575,11 @@ static int copy_strings(int argc, struct user_arg_ptr= argv, =20 if (kmapped_page) { flush_kernel_dcache_page(kmapped_page); - kunmap(kmapped_page); + kunmap_thread(kmapped_page); put_arg_page(kmapped_page); } kmapped_page =3D page; - kaddr =3D kmap(kmapped_page); + kaddr =3D kmap_thread(kmapped_page); kpos =3D pos & PAGE_MASK; flush_arg_page(bprm, kpos, kmapped_page); } @@ -593,7 +593,7 @@ static int copy_strings(int argc, struct user_arg_ptr a= rgv, out: if (kmapped_page) { flush_kernel_dcache_page(kmapped_page); - kunmap(kmapped_page); + kunmap_thread(kmapped_page); put_arg_page(kmapped_page); } return ret; @@ -871,11 +871,11 @@ int transfer_args_to_stack(struct linux_binprm *bprm, =20 for (index =3D MAX_ARG_PAGES - 1; index >=3D stop; index--) { unsigned int offset =3D index =3D=3D stop ? bprm->p & ~PAGE_MASK : 0; - char *src =3D kmap(bprm->page[index]) + offset; + char *src =3D kmap_thread(bprm->page[index]) + offset; sp -=3D PAGE_SIZE - offset; if (copy_to_user((void *) sp, src, PAGE_SIZE - offset) !=3D 0) ret =3D -EFAULT; - kunmap(bprm->page[index]); + kunmap_thread(bprm->page[index]); if (ret) goto out; } diff --git a/fs/io_uring.c b/fs/io_uring.c index aae0ef2ec34d..f59bb079822d 100644 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -2903,7 +2903,7 @@ static ssize_t loop_rw_iter(int rw, struct file *file= , struct kiocb *kiocb, iovec =3D iov_iter_iovec(iter); } else { /* fixed buffers import bvec */ - iovec.iov_base =3D kmap(iter->bvec->bv_page) + iovec.iov_base =3D kmap_thread(iter->bvec->bv_page) + iter->iov_offset; iovec.iov_len =3D min(iter->count, iter->bvec->bv_len - iter->iov_offset); @@ -2918,7 +2918,7 @@ static ssize_t loop_rw_iter(int rw, struct file *file= , struct kiocb *kiocb, } =20 if (iov_iter_is_bvec(iter)) - kunmap(iter->bvec->bv_page); + kunmap_thread(iter->bvec->bv_page); =20 if (nr < 0) { if (!ret) diff --git a/fs/splice.c b/fs/splice.c index ce75aec52274..190c4d218c30 100644 --- a/fs/splice.c +++ b/fs/splice.c @@ -815,9 +815,9 @@ static int write_pipe_buf(struct pipe_inode_info *pipe,= struct pipe_buffer *buf, void *data; loff_t tmp =3D sd->pos; =20 - data =3D kmap(buf->page); + data =3D kmap_thread(buf->page); ret =3D __kernel_write(sd->u.file, data + buf->offset, sd->len, &tmp); - kunmap(buf->page); + kunmap_thread(buf->page); =20 return ret; } --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273198; cv=none; d=zohomail.com; s=zohoarc; b=UwlGqd/i2lhzXx7Mlaktjt6si0r3TTSl6Bi6ZVSR5JCx2VVvrSGq+QLPXO+d/ErNDdroqyOX1vj/TG7mY8m9zlStMBbGgtYUesql5IVrMbWN1HD7z/5A6UG+9wPwyMML4SxNcgK8isyjuTMqm+ZWISuQuvUimzlq125l87oVpnk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273198; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=nVlEXZmksJs+3f1FX0vYm79rJ/7WjtQTcmaR9iEGzsg=; b=UMHHT2q6w0yp99JIjWX4v0V1HjBkm+QUYV6LRzCrV3fAzVcdxfJbfpiVxD/nqRNrEqna2HE4Qv8zTh9EBkrN2tbUkSvk0/+rSs9rfL/OhuCVu7sUqoGoyNTMG9CS9BAJ7ldxRv33jTJZblRDKFowSSjFzAneqTvAr0cz4rmc6wo= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273198272851.830904903941; Fri, 9 Oct 2020 12:53:18 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5098.13283 (Exim 4.92) (envelope-from ) id 1kQyRs-0004Rf-72; Fri, 09 Oct 2020 19:53:04 +0000 Received: by outflank-mailman (output) from mailman id 5098.13283; Fri, 09 Oct 2020 19:53:04 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRr-0004RC-Ol; Fri, 09 Oct 2020 19:53:03 +0000 Received: by outflank-mailman (input) for mailman id 5098; Fri, 09 Oct 2020 19:53:02 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRq-0004ON-92 for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:02 +0000 Received: from mga02.intel.com (unknown [134.134.136.20]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 82058a1b-985d-469f-87e3-9a30a06f5c85; Fri, 09 Oct 2020 19:53:00 +0000 (UTC) Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:59 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:58 -0700 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRq-0004ON-92 for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:02 +0000 Received: from mga02.intel.com (unknown [134.134.136.20]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 82058a1b-985d-469f-87e3-9a30a06f5c85; Fri, 09 Oct 2020 19:53:00 +0000 (UTC) Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:59 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:52:58 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 82058a1b-985d-469f-87e3-9a30a06f5c85 IronPort-SDR: fhW9lWZ/lvFOVRx331X+jmNLbyY4kI+QFql7gRSWaNC7oM4i6yiJCULWjNqKQu0GdsagGKwzcn 2MUeQsnus3gg== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="152451061" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="152451061" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: Wf0Bi1Gs1P3ZgILN9Dk8+ODZhbqXc7J3tJZabe+2AUx5fg/nQYQB2E9E/9NHNQgBhyfVAmIu+q D7ag8zQ3enrg== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="462300964" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Jan Kara , 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 36/58] fs/ext2: Use ext2_put_page Date: Fri, 9 Oct 2020 12:50:11 -0700 Message-Id: <20201009195033.3208459-37-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny There are 3 places in namei.c where the equivalent of ext2_put_page() is open coded. We want to use k[un]map_thread() instead of k[un]map() in ext2_[get|put]_page(). Move ext2_put_page() to ext2.h and use it in namei.c in prep for converting the k[un]map() code. Cc: Jan Kara Signed-off-by: Ira Weiny --- fs/ext2/dir.c | 6 ------ fs/ext2/ext2.h | 8 ++++++++ fs/ext2/namei.c | 15 +++++---------- 3 files changed, 13 insertions(+), 16 deletions(-) diff --git a/fs/ext2/dir.c b/fs/ext2/dir.c index 70355ab6740e..f3194bf20733 100644 --- a/fs/ext2/dir.c +++ b/fs/ext2/dir.c @@ -66,12 +66,6 @@ static inline unsigned ext2_chunk_size(struct inode *ino= de) return inode->i_sb->s_blocksize; } =20 -static inline void ext2_put_page(struct page *page) -{ - kunmap(page); - put_page(page); -} - /* * Return the offset into page `page_nr' of the last valid * byte in that page, plus one. diff --git a/fs/ext2/ext2.h b/fs/ext2/ext2.h index 5136b7289e8d..021ec8b42ac3 100644 --- a/fs/ext2/ext2.h +++ b/fs/ext2/ext2.h @@ -16,6 +16,8 @@ #include #include #include +#include +#include =20 /* XXX Here for now... not interested in restructing headers JUST now */ =20 @@ -745,6 +747,12 @@ extern int ext2_delete_entry (struct ext2_dir_entry_2 = *, struct page *); extern int ext2_empty_dir (struct inode *); extern struct ext2_dir_entry_2 * ext2_dotdot (struct inode *, struct page = **); extern void ext2_set_link(struct inode *, struct ext2_dir_entry_2 *, struc= t page *, struct inode *, int); +static inline void ext2_put_page(struct page *page) +{ + kunmap(page); + put_page(page); +} + =20 /* ialloc.c */ extern struct inode * ext2_new_inode (struct inode *, umode_t, const struc= t qstr *); diff --git a/fs/ext2/namei.c b/fs/ext2/namei.c index 5bf2c145643b..ea980f1e2e99 100644 --- a/fs/ext2/namei.c +++ b/fs/ext2/namei.c @@ -389,23 +389,18 @@ static int ext2_rename (struct inode * old_dir, struc= t dentry * old_dentry, if (dir_de) { if (old_dir !=3D new_dir) ext2_set_link(old_inode, dir_de, dir_page, new_dir, 0); - else { - kunmap(dir_page); - put_page(dir_page); - } + else + ext2_put_page(dir_page); inode_dec_link_count(old_dir); } return 0; =20 =20 out_dir: - if (dir_de) { - kunmap(dir_page); - put_page(dir_page); - } + if (dir_de) + ext2_put_page(dir_page); out_old: - kunmap(old_page); - put_page(old_page); + ext2_put_page(old_page); out: return err; } --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273204; cv=none; d=zohomail.com; s=zohoarc; b=dQEAkXbQz311UV7IX10spS/vT4wDEEBRbOzsAldC4URk4ArVWq0DkT+c13mWklwaSbQ3Zt+MbGlqcC0AHGvFFu5oBXesnBZpZV0G553yBIG2hxE2WUUeGnRbH+nMNdJ3icr3K9eBmfcYsO5RSDyyChji7EwFqnVQBQ7aPitbrJc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273204; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=EGrJxN/ef1abZfWDYFoKJOJ1ngDJ1Mw3IOeqo/qPAOA=; b=JLq6mTGWPQhNJqoNTZ1MQDWWzRp9HdNrApVaC4gz90/6ZLBPutoRHQOxSQnWUIdqk4zUDV4THtma38WEQSQYdEUvhFbgHeDYFzz2BlZF3sZnD483v+oltIgbqcMkr0v33m4PgIcYpJrEPrvOUO+EM3fmtsxH6e/qJcHuTvneimc= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273204931403.6127906322065; Fri, 9 Oct 2020 12:53:24 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5103.13301 (Exim 4.92) (envelope-from ) id 1kQyRw-0004c0-KS; Fri, 09 Oct 2020 19:53:08 +0000 Received: by outflank-mailman (output) from mailman id 5103.13301; Fri, 09 Oct 2020 19:53:08 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRw-0004bp-FX; Fri, 09 Oct 2020 19:53:08 +0000 Received: by outflank-mailman (input) for mailman id 5103; Fri, 09 Oct 2020 19:53:07 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRv-0004ON-7c for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:07 +0000 Received: from mga01.intel.com (unknown [192.55.52.88]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id bd56cfaa-a4a4-4ffa-82cb-2d312625fe16; Fri, 09 Oct 2020 19:53:03 +0000 (UTC) Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:02 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:02 -0700 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyRv-0004ON-7c for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:07 +0000 Received: from mga01.intel.com (unknown [192.55.52.88]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id bd56cfaa-a4a4-4ffa-82cb-2d312625fe16; Fri, 09 Oct 2020 19:53:03 +0000 (UTC) Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:02 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:02 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: bd56cfaa-a4a4-4ffa-82cb-2d312625fe16 IronPort-SDR: ilAjpYQOlagkaK3s2lWXgwZ4mxD8/Q0nrhm0bep1pVX2urdzS2DtXs212b0Vzf9ZPZ1iRD7cd2 IiSUoPsX2lSA== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="182976383" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="182976383" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: bH2kRxXxeY8kuFBN5R8RneSpQbEQLW5eawptefbcIpm8xkU067aWcbaReXxx6/6TDXgDaxiIQ5 8lenxDucas2g== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="519847131" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Jan Kara , 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 37/58] fs/ext2: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:50:12 -0700 Message-Id: <20201009195033.3208459-38-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny These kmap() calls are localized to a single thread. To avoid the over head of global PKRS update use the new kmap_thread() call instead. Cc: Jan Kara Signed-off-by: Ira Weiny --- fs/ext2/dir.c | 2 +- fs/ext2/ext2.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/ext2/dir.c b/fs/ext2/dir.c index f3194bf20733..abe97ba458c8 100644 --- a/fs/ext2/dir.c +++ b/fs/ext2/dir.c @@ -196,7 +196,7 @@ static struct page * ext2_get_page(struct inode *dir, u= nsigned long n, struct address_space *mapping =3D dir->i_mapping; struct page *page =3D read_mapping_page(mapping, n, NULL); if (!IS_ERR(page)) { - kmap(page); + kmap_thread(page); if (unlikely(!PageChecked(page))) { if (PageError(page) || !ext2_check_page(page, quiet)) goto fail; diff --git a/fs/ext2/ext2.h b/fs/ext2/ext2.h index 021ec8b42ac3..9bcb6714c255 100644 --- a/fs/ext2/ext2.h +++ b/fs/ext2/ext2.h @@ -749,7 +749,7 @@ extern struct ext2_dir_entry_2 * ext2_dotdot (struct in= ode *, struct page **); extern void ext2_set_link(struct inode *, struct ext2_dir_entry_2 *, struc= t page *, struct inode *, int); static inline void ext2_put_page(struct page *page) { - kunmap(page); + kunmap_thread(page); put_page(page); } =20 --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273209; cv=none; d=zohomail.com; s=zohoarc; b=Yg34q4uHQ/k0Kv4QL86Jdi2rb0vjLmUdvTFsYmGpWjAOjJA8halJBO9+xUYmRYW7RES1SnQcAzSbhKVbQjQST2p4jH1dMXImY44YsUyOEJjEDpcbwt/rBhRnrox83GOmxxTKaw7jGwtokgsFJOtSeo4BXU2utJHWLvf/Cxw+gGI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273209; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Ysh+6SkNA/4d3A86gc3pj/fplAKKuu8Pn1lEMZNE/L0=; b=cFNRAhPF6ICftuYGWR/ZWt8BoYJp1wWTGC69Ix0NiTktC/cDEWx78XkvEzY5NU0FDzDvvSBedQTWNKbZphT54RZv+aaavsLsBobo5uTRxJO+fQQkjisJiiJcSA0koHbmOgAklZSBgHf8XQke3n6yxyNaXJI3RJhvBoLzSXNpueU= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273209519486.47404441138804; Fri, 9 Oct 2020 12:53:29 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5106.13319 (Exim 4.92) (envelope-from ) id 1kQyS2-0004nO-Qc; Fri, 09 Oct 2020 19:53:14 +0000 Received: by outflank-mailman (output) from mailman id 5106.13319; Fri, 09 Oct 2020 19:53:14 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyS2-0004mf-F1; Fri, 09 Oct 2020 19:53:14 +0000 Received: by outflank-mailman (input) for mailman id 5106; Fri, 09 Oct 2020 19:53:12 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyS0-0004ON-7g for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:12 +0000 Received: from mga12.intel.com (unknown [192.55.52.136]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 19dafb76-799b-4177-8d09-41d49a2e1241; Fri, 09 Oct 2020 19:53:07 +0000 (UTC) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:06 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:05 -0700 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyS0-0004ON-7g for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:12 +0000 Received: from mga12.intel.com (unknown [192.55.52.136]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 19dafb76-799b-4177-8d09-41d49a2e1241; Fri, 09 Oct 2020 19:53:07 +0000 (UTC) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:06 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:05 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 19dafb76-799b-4177-8d09-41d49a2e1241 IronPort-SDR: ypbsF279aj/UfkFu7vSHb62UW4kIuhQf4geco3iFinIuY00FES/7BN88CYJoC27z1lNDTwV/ao vzSvvvR0LXWw== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="144850994" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="144850994" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: +9tLMQNrOc9ZmtQe+NKSSXZyhjRooFfxfongQijBj4blQjg4c6+fJ/ZHkl3bUeAx7HZ0qDTuwd uW08H1SVCXkg== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="343972363" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , 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 38/58] fs/isofs: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:50:13 -0700 Message-Id: <20201009195033.3208459-39-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny These kmap() calls are localized to a single thread. To avoid the over hea= d of global PKRS updates use the new kmap_thread() call. Signed-off-by: Ira Weiny --- fs/isofs/compress.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/isofs/compress.c b/fs/isofs/compress.c index bc12ac7e2312..ddd3fd99d2e1 100644 --- a/fs/isofs/compress.c +++ b/fs/isofs/compress.c @@ -344,7 +344,7 @@ static int zisofs_readpage(struct file *file, struct pa= ge *page) pages[i] =3D grab_cache_page_nowait(mapping, index); if (pages[i]) { ClearPageError(pages[i]); - kmap(pages[i]); + kmap_thread(pages[i]); } } =20 @@ -356,7 +356,7 @@ static int zisofs_readpage(struct file *file, struct pa= ge *page) flush_dcache_page(pages[i]); if (i =3D=3D full_page && err) SetPageError(pages[i]); - kunmap(pages[i]); + kunmap_thread(pages[i]); unlock_page(pages[i]); if (i !=3D full_page) put_page(pages[i]); --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273211; cv=none; d=zohomail.com; s=zohoarc; b=Uuay8keToN6TDkDPGL5l/KJI2rXowrv8nfH3MLsNELY2EidfOxXNgUSVx8xGmkMynaMeHqTg1c3Kv5ZxrQuO5WTTjaW96OH55JeF9Cgt9segbQtIoWHVPVNDhe7nJS0h5OO3MMvJD87kjC7qr/fCSiva0fJw8xeH0EGffQQAv2g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273211; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=gLk50ZN51otURnk8dYlRxEa8R49Mtu0sn/R5c0gHZLM=; b=CAKHUrQenIw+sqNzH8w2fVUOS7UJO7RPjibWy8wzGIcdjfaPZyA+8WyuV5RqrVYxdyeSTVq4xoyqx7a1oUA4DIz2EIn6k2t8S26BMxaAeF3Daszvms8MYnlNLahMI49VIhz71kVkVxdxuYc4KSdzGbxPnZ5fOGvrBO7TQA8RPMM= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273211569100.69369723336558; Fri, 9 Oct 2020 12:53:31 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5109.13337 (Exim 4.92) (envelope-from ) id 1kQyS6-0004we-Ov; Fri, 09 Oct 2020 19:53:18 +0000 Received: by outflank-mailman (output) from mailman id 5109.13337; Fri, 09 Oct 2020 19:53:18 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyS6-0004wN-H8; Fri, 09 Oct 2020 19:53:18 +0000 Received: by outflank-mailman (input) for mailman id 5109; Fri, 09 Oct 2020 19:53:17 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyS5-0003VG-5j for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:17 +0000 Received: from mga05.intel.com (unknown [192.55.52.43]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 2b9f24bd-4098-4169-8bf1-e2d9e98cb2ea; Fri, 09 Oct 2020 19:53:10 +0000 (UTC) Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:09 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:08 -0700 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyS5-0003VG-5j for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:17 +0000 Received: from mga05.intel.com (unknown [192.55.52.43]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 2b9f24bd-4098-4169-8bf1-e2d9e98cb2ea; Fri, 09 Oct 2020 19:53:10 +0000 (UTC) Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:09 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:08 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 2b9f24bd-4098-4169-8bf1-e2d9e98cb2ea IronPort-SDR: wBpIZZUB0xS4qiwTrFwjmmX+/Zzas4vCfJwtYYWRJRGWc1i7EUIxnDY59J+tnUdZnUf79UjW7l x4vaRFHFWNtw== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="250226251" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="250226251" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: FciD93oXa6TN5PQF74JzeuCyRYkWBlT2lC/7ncntBELjkiuqMo1u2JSAhMViBtfJLu9YdFEYCB Wo/5PMHidIaw== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="317147397" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , 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 39/58] fs/jffs2: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:50:14 -0700 Message-Id: <20201009195033.3208459-40-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny These kmap() calls are localized to a single thread. To avoid the over hea= d of global PKRS updates use the new kmap_thread() call. Signed-off-by: Ira Weiny --- fs/jffs2/file.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/jffs2/file.c b/fs/jffs2/file.c index 3e6d54f9b011..14dd2b18cc16 100644 --- a/fs/jffs2/file.c +++ b/fs/jffs2/file.c @@ -287,13 +287,13 @@ static int jffs2_write_end(struct file *filp, struct = address_space *mapping, =20 /* In 2.4, it was already kmapped by generic_file_write(). Doesn't hurt to do it again. The alternative is ifdefs, which are ugly. */ - kmap(pg); + kmap_thread(pg); =20 ret =3D jffs2_write_inode_range(c, f, ri, page_address(pg) + aligned_star= t, (pg->index << PAGE_SHIFT) + aligned_start, end - aligned_start, &writtenlen); =20 - kunmap(pg); + kunmap_thread(pg); =20 if (ret) { /* There was an error writing. */ --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273215; cv=none; d=zohomail.com; s=zohoarc; b=HSglOw8BNp/jBcdqOJfYDYecdGnjUJBX+aBEoy42w8oQA0xz5A6yVAreXOfBvq3lSGnb9lG1ijfl42vaN7fFSQ201Yf9sO73j1YG3zuKVRPOf5PXUlaNrK6IwyZhs2kbz6UQ4vA5CfhEuGupTGSZCdhVw9dTK02Fo/TgshYhLdU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273215; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=s5SVED5VXFElbIUu5AnpzgF4SqLqbO2uOp3on9zMUmY=; b=cOVmNmMFRmzADqYJn29QkaB2+TcNHmaCrtng4UAT5t4061VOGFI1hXJj2sy1YzHrdYBKLntWSPVX9yLSWfBO7UyKYkqUs4uo7MsbPEzeWplNEcT+3GYB6uSeD0OS1S89Ih4PSMdFWewE8udbd+fp+EAORexZQxLJPWcFcyK/6as= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 16022732157201019.8540565337263; Fri, 9 Oct 2020 12:53:35 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5110.13343 (Exim 4.92) (envelope-from ) id 1kQyS7-0004yG-M0; Fri, 09 Oct 2020 19:53:19 +0000 Received: by outflank-mailman (output) from mailman id 5110.13343; Fri, 09 Oct 2020 19:53:19 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyS7-0004xg-0a; Fri, 09 Oct 2020 19:53:19 +0000 Received: by outflank-mailman (input) for mailman id 5110; Fri, 09 Oct 2020 19:53:17 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyS5-0004ON-7z for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:17 +0000 Received: from mga14.intel.com (unknown [192.55.52.115]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id f03ed1fc-ba08-4b52-9477-109773b6b938; Fri, 09 Oct 2020 19:53:14 +0000 (UTC) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:13 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:12 -0700 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyS5-0004ON-7z for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:17 +0000 Received: from mga14.intel.com (unknown [192.55.52.115]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id f03ed1fc-ba08-4b52-9477-109773b6b938; Fri, 09 Oct 2020 19:53:14 +0000 (UTC) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:13 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:12 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: f03ed1fc-ba08-4b52-9477-109773b6b938 IronPort-SDR: rLwBuegh++hAKCzvTNH0V2C7ctpRPmWJhLoyXE9txrbFSA+IbwRe8Ph37uZqORvr5UbNRmBny4 V5oIamHelu8A== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="164744028" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="164744028" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: kHLawvWt7hk0hVI10Fetwn7tOzYF5yIQvhqqrAQq3flxek1V3ypdWT/2gH8vwQndln/BZvc5kH kTRjULDVKoGw== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="312652948" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , "David S. Miller" , Jakub Kicinski , Alexey Kuznetsov , Hideaki YOSHIFUJI , Trond Myklebust , Anna Schumaker , Boris Pismenny , Aviad Yehezkel , John Fastabend , Daniel Borkmann , 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 40/58] net: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:50:15 -0700 Message-Id: <20201009195033.3208459-41-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny These kmap() calls in these drivers are localized to a single thread. To avoid the over head of global PKRS updates use the new kmap_thread() call. Cc: "David S. Miller" Cc: Jakub Kicinski Cc: Alexey Kuznetsov Cc: Hideaki YOSHIFUJI Cc: Trond Myklebust Cc: Anna Schumaker Cc: Boris Pismenny Cc: Aviad Yehezkel Cc: John Fastabend Cc: Daniel Borkmann Signed-off-by: Ira Weiny --- net/ceph/messenger.c | 4 ++-- net/core/datagram.c | 4 ++-- net/core/sock.c | 8 ++++---- net/ipv4/ip_output.c | 4 ++-- net/sunrpc/cache.c | 4 ++-- net/sunrpc/xdr.c | 8 ++++---- net/tls/tls_device.c | 4 ++-- 7 files changed, 18 insertions(+), 18 deletions(-) diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c index d4d7a0e52491..0c49b8e333da 100644 --- a/net/ceph/messenger.c +++ b/net/ceph/messenger.c @@ -1535,10 +1535,10 @@ static u32 ceph_crc32c_page(u32 crc, struct page *p= age, { char *kaddr; =20 - kaddr =3D kmap(page); + kaddr =3D kmap_thread(page); BUG_ON(kaddr =3D=3D NULL); crc =3D crc32c(crc, kaddr + page_offset, length); - kunmap(page); + kunmap_thread(page); =20 return crc; } diff --git a/net/core/datagram.c b/net/core/datagram.c index 639745d4f3b9..cbd0a343074a 100644 --- a/net/core/datagram.c +++ b/net/core/datagram.c @@ -441,14 +441,14 @@ static int __skb_datagram_iter(const struct sk_buff *= skb, int offset, end =3D start + skb_frag_size(frag); if ((copy =3D end - offset) > 0) { struct page *page =3D skb_frag_page(frag); - u8 *vaddr =3D kmap(page); + u8 *vaddr =3D kmap_thread(page); =20 if (copy > len) copy =3D len; n =3D INDIRECT_CALL_1(cb, simple_copy_to_iter, vaddr + skb_frag_off(frag) + offset - start, copy, data, to); - kunmap(page); + kunmap_thread(page); offset +=3D n; if (n !=3D copy) goto short_copy; diff --git a/net/core/sock.c b/net/core/sock.c index 6c5c6b18eff4..9b46a75cd8c1 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -2846,11 +2846,11 @@ ssize_t sock_no_sendpage(struct socket *sock, struc= t page *page, int offset, siz ssize_t res; struct msghdr msg =3D {.msg_flags =3D flags}; struct kvec iov; - char *kaddr =3D kmap(page); + char *kaddr =3D kmap_thread(page); iov.iov_base =3D kaddr + offset; iov.iov_len =3D size; res =3D kernel_sendmsg(sock, &msg, &iov, 1, size); - kunmap(page); + kunmap_thread(page); return res; } EXPORT_SYMBOL(sock_no_sendpage); @@ -2861,12 +2861,12 @@ ssize_t sock_no_sendpage_locked(struct sock *sk, st= ruct page *page, ssize_t res; struct msghdr msg =3D {.msg_flags =3D flags}; struct kvec iov; - char *kaddr =3D kmap(page); + char *kaddr =3D kmap_thread(page); =20 iov.iov_base =3D kaddr + offset; iov.iov_len =3D size; res =3D kernel_sendmsg_locked(sk, &msg, &iov, 1, size); - kunmap(page); + kunmap_thread(page); return res; } EXPORT_SYMBOL(sock_no_sendpage_locked); diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index e6f2ada9e7d5..05304fb251a4 100644 --- a/net/ipv4/ip_output.c +++ b/net/ipv4/ip_output.c @@ -949,9 +949,9 @@ csum_page(struct page *page, int offset, int copy) { char *kaddr; __wsum csum; - kaddr =3D kmap(page); + kaddr =3D kmap_thread(page); csum =3D csum_partial(kaddr + offset, copy, 0); - kunmap(page); + kunmap_thread(page); return csum; } =20 diff --git a/net/sunrpc/cache.c b/net/sunrpc/cache.c index baef5ee43dbb..88193f2a8e6f 100644 --- a/net/sunrpc/cache.c +++ b/net/sunrpc/cache.c @@ -935,9 +935,9 @@ static ssize_t cache_downcall(struct address_space *map= ping, if (!page) goto out_slow; =20 - kaddr =3D kmap(page); + kaddr =3D kmap_thread(page); ret =3D cache_do_downcall(kaddr, buf, count, cd); - kunmap(page); + kunmap_thread(page); unlock_page(page); put_page(page); return ret; diff --git a/net/sunrpc/xdr.c b/net/sunrpc/xdr.c index be11d672b5b9..00afbb48fb0a 100644 --- a/net/sunrpc/xdr.c +++ b/net/sunrpc/xdr.c @@ -1353,7 +1353,7 @@ xdr_xcode_array2(struct xdr_buf *buf, unsigned int ba= se, base &=3D ~PAGE_MASK; avail_page =3D min_t(unsigned int, PAGE_SIZE - base, avail_here); - c =3D kmap(*ppages) + base; + c =3D kmap_thread(*ppages) + base; =20 while (avail_here) { avail_here -=3D avail_page; @@ -1429,9 +1429,9 @@ xdr_xcode_array2(struct xdr_buf *buf, unsigned int ba= se, } } if (avail_here) { - kunmap(*ppages); + kunmap_thread(*ppages); ppages++; - c =3D kmap(*ppages); + c =3D kmap_thread(*ppages); } =20 avail_page =3D min(avail_here, @@ -1471,7 +1471,7 @@ xdr_xcode_array2(struct xdr_buf *buf, unsigned int ba= se, out: kfree(elem); if (ppages) - kunmap(*ppages); + kunmap_thread(*ppages); return err; } =20 diff --git a/net/tls/tls_device.c b/net/tls/tls_device.c index b74e2741f74f..ead5b1c485f8 100644 --- a/net/tls/tls_device.c +++ b/net/tls/tls_device.c @@ -576,13 +576,13 @@ int tls_device_sendpage(struct sock *sk, struct page = *page, goto out; } =20 - kaddr =3D kmap(page); + kaddr =3D kmap_thread(page); iov.iov_base =3D kaddr + offset; iov.iov_len =3D size; iov_iter_kvec(&msg_iter, WRITE, &iov, 1, size); rc =3D tls_push_data(sk, &msg_iter, size, flags, TLS_RECORD_TYPE_DATA); - kunmap(page); + kunmap_thread(page); =20 out: release_sock(sk); --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273997; cv=none; d=zohomail.com; s=zohoarc; b=kqzSqxAkYpAziRLpvK7XK8TmFP4mJsM3TPtcL+ecf3OIRKd1cucHkEGKhJEzKbdoEJxBAS6g2YdWzTqjqsjs+hikLGKAs8ZWjJHv7iitmSVzzCrPPEU7g5TNtCD/SXQ7WGj4GFsJw9Am+/7qIvMS48qUM9WXQqvvgCh9ejbvC50= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273997; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=wdPbxALFE6qoOoDNUTDklEDWJRacDXUwY6eFSTHWMBk=; b=Vj9uTev8cCKBICxUaPN7fbJTU2gjELv5FMhxKOHSnPXfNZqpo9ouaUXQnAAGvsVgLQq4n4JjMMBvq3M0QfzjkC5lOoPrM9aq5Ls4686WZZNWomhOEW1aV8O8lu19u3zg9uiURkfK/N1lz76hP8Eoh0YNNhIpzP0linQvIUHuTsw= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273997165401.62996574274075; Fri, 9 Oct 2020 13:06:37 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5187.13577 (Exim 4.92) (envelope-from ) id 1kQyej-0000mu-8D; Fri, 09 Oct 2020 20:06:21 +0000 Received: by outflank-mailman (output) from mailman id 5187.13577; Fri, 09 Oct 2020 20:06:21 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyej-0000mn-59; Fri, 09 Oct 2020 20:06:21 +0000 Received: by outflank-mailman (input) for mailman id 5187; Fri, 09 Oct 2020 20:06:19 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySA-0003VG-5y for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:22 +0000 Received: from mga04.intel.com (unknown [192.55.52.120]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id d452309a-cb21-4eed-9904-b4d3dcf278de; Fri, 09 Oct 2020 19:53:17 +0000 (UTC) Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:16 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga006-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:15 -0700 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySA-0003VG-5y for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:22 +0000 Received: from mga04.intel.com (unknown [192.55.52.120]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id d452309a-cb21-4eed-9904-b4d3dcf278de; Fri, 09 Oct 2020 19:53:17 +0000 (UTC) Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:16 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga006-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:15 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: d452309a-cb21-4eed-9904-b4d3dcf278de IronPort-SDR: dtyJeJMEyuAFFKXUyW3C+SeRkMQE+np3w56zlQF/zJLVZHiNvhryV9Cjmj/btBVNwwF8CfI8kV HztKg2hNMEPA== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="162893592" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="162893592" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: tpdf2AjeaRc5H+9J2CTgDjuzQWeL2r1NHpqYA6zEYh1sueM+cncDhIB0ZXYbhrsfqtXGL/LVMU w/znFNAZKmjw== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="518801571" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , 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 41/58] drivers/target: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:50:16 -0700 Message-Id: <20201009195033.3208459-42-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny These kmap() calls in this driver are localized to a single thread. To avoid the over head of global PKRS updates use the new kmap_thread() call. Signed-off-by: Ira Weiny --- drivers/target/target_core_iblock.c | 4 ++-- drivers/target/target_core_rd.c | 4 ++-- drivers/target/target_core_transport.c | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/target/target_core_iblock.c b/drivers/target/target_co= re_iblock.c index 1c181d31f4c8..df7b1568edb3 100644 --- a/drivers/target/target_core_iblock.c +++ b/drivers/target/target_core_iblock.c @@ -415,7 +415,7 @@ iblock_execute_zero_out(struct block_device *bdev, stru= ct se_cmd *cmd) unsigned char *buf, *not_zero; int ret; =20 - buf =3D kmap(sg_page(sg)) + sg->offset; + buf =3D kmap_thread(sg_page(sg)) + sg->offset; if (!buf) return TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE; /* @@ -423,7 +423,7 @@ iblock_execute_zero_out(struct block_device *bdev, stru= ct se_cmd *cmd) * incoming WRITE_SAME payload does not contain zeros. */ not_zero =3D memchr_inv(buf, 0x00, cmd->data_length); - kunmap(sg_page(sg)); + kunmap_thread(sg_page(sg)); =20 if (not_zero) return TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE; diff --git a/drivers/target/target_core_rd.c b/drivers/target/target_core_r= d.c index 408bd975170b..dbbdd39c5bf9 100644 --- a/drivers/target/target_core_rd.c +++ b/drivers/target/target_core_rd.c @@ -159,9 +159,9 @@ static int rd_allocate_sgl_table(struct rd_dev *rd_dev,= struct rd_dev_sg_table * sg_assign_page(&sg[j], pg); sg[j].length =3D PAGE_SIZE; =20 - p =3D kmap(pg); + p =3D kmap_thread(pg); memset(p, init_payload, PAGE_SIZE); - kunmap(pg); + kunmap_thread(pg); } =20 page_offset +=3D sg_per_table; diff --git a/drivers/target/target_core_transport.c b/drivers/target/target= _core_transport.c index ff26ab0a5f60..8d0bae5a92e5 100644 --- a/drivers/target/target_core_transport.c +++ b/drivers/target/target_core_transport.c @@ -1692,11 +1692,11 @@ int target_submit_cmd_map_sgls(struct se_cmd *se_cm= d, struct se_session *se_sess unsigned char *buf =3D NULL; =20 if (sgl) - buf =3D kmap(sg_page(sgl)) + sgl->offset; + buf =3D kmap_thread(sg_page(sgl)) + sgl->offset; =20 if (buf) { memset(buf, 0, sgl->length); - kunmap(sg_page(sgl)); + kunmap_thread(sg_page(sgl)); } } =20 --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273882; cv=none; d=zohomail.com; s=zohoarc; b=HawWbL7OC14NaSYCBUxgK64bBgdKcBIOJNMHA7N+BWA6WKctx9No7C2a9+TbcJrUVK4078vh1EPMWu6Evdf17mB62+hDytf2l8uU/cpEJIEnmtvnnS/A+ECyHh5pAZJIEOJawkMFQVWVE5urtLX3Ef7L1l6vzBzzV1PYSnZoUk4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273882; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=6dMo1X+S3X65vpXLFB9qQYYovJrXy3YaCcU7Wb8/Cuw=; b=cz1J3b7+haOSVU/e2TPQR5Kkm+pfVrIj6WfANB8cx1l/MydByJQAr+ckGSp1ZCOj4bVAf1ytbwdvh1GpayGu9xY2+E3aigx5iYJeHSUG4xnw2iT/l7HLA708BQjJz9gPGcec4qMqTvSC6siOpHV0OWjQr7cp635Y+ZwhITrITfk= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273882009853.5775334198107; Fri, 9 Oct 2020 13:04:42 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5182.13552 (Exim 4.92) (envelope-from ) id 1kQycs-0000PO-DO; Fri, 09 Oct 2020 20:04:26 +0000 Received: by outflank-mailman (output) from mailman id 5182.13552; Fri, 09 Oct 2020 20:04:26 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQycs-0000PH-AF; Fri, 09 Oct 2020 20:04:26 +0000 Received: by outflank-mailman (input) for mailman id 5182; Fri, 09 Oct 2020 20:04:24 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySF-0003VG-66 for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:27 +0000 Received: from mga07.intel.com (unknown [134.134.136.100]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 1f381d98-fe9e-4d68-8e1c-ef3c87d3dae7; Fri, 09 Oct 2020 19:53:20 +0000 (UTC) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:19 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:18 -0700 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySF-0003VG-66 for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:27 +0000 Received: from mga07.intel.com (unknown [134.134.136.100]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 1f381d98-fe9e-4d68-8e1c-ef3c87d3dae7; Fri, 09 Oct 2020 19:53:20 +0000 (UTC) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:19 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:18 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 1f381d98-fe9e-4d68-8e1c-ef3c87d3dae7 IronPort-SDR: oFArxdeaaEdNwkSkWc6QZhEbjIJdqfCt0F9ef7cZ36fUICd3MSKqpYgAseFrbQH6krHzX5t4r4 lUxcH/chTKog== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="229715323" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="229715323" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: W4xxziDMxkncUnjnfmhtERgTle+fDEBI/syTBEG/tlt++YK2v+9/w8FvvM36z1FzCpPIzrEgyR 3zBS2pDk0hzg== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="354959339" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , "James E.J. Bottomley" , "Martin K. Petersen" , 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 42/58] drivers/scsi: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:50:17 -0700 Message-Id: <20201009195033.3208459-43-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny These kmap() calls are localized to a single thread. To avoid the over head of global PKRS updates use the new kmap_thread() call. Cc: "James E.J. Bottomley" Cc: "Martin K. Petersen" Signed-off-by: Ira Weiny --- drivers/scsi/ipr.c | 8 ++++---- drivers/scsi/pmcraid.c | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c index b0aa58d117cc..a5a0b8feb661 100644 --- a/drivers/scsi/ipr.c +++ b/drivers/scsi/ipr.c @@ -3923,9 +3923,9 @@ static int ipr_copy_ucode_buffer(struct ipr_sglist *s= glist, buffer +=3D bsize_elem) { struct page *page =3D sg_page(sg); =20 - kaddr =3D kmap(page); + kaddr =3D kmap_thread(page); memcpy(kaddr, buffer, bsize_elem); - kunmap(page); + kunmap_thread(page); =20 sg->length =3D bsize_elem; =20 @@ -3938,9 +3938,9 @@ static int ipr_copy_ucode_buffer(struct ipr_sglist *s= glist, if (len % bsize_elem) { struct page *page =3D sg_page(sg); =20 - kaddr =3D kmap(page); + kaddr =3D kmap_thread(page); memcpy(kaddr, buffer, len % bsize_elem); - kunmap(page); + kunmap_thread(page); =20 sg->length =3D len % bsize_elem; } diff --git a/drivers/scsi/pmcraid.c b/drivers/scsi/pmcraid.c index aa9ae2ae8579..4b05ba4b8a11 100644 --- a/drivers/scsi/pmcraid.c +++ b/drivers/scsi/pmcraid.c @@ -3269,13 +3269,13 @@ static int pmcraid_copy_sglist( for (i =3D 0; i < (len / bsize_elem); i++, sg =3D sg_next(sg), buffer += =3D bsize_elem) { struct page *page =3D sg_page(sg); =20 - kaddr =3D kmap(page); + kaddr =3D kmap_thread(page); if (direction =3D=3D DMA_TO_DEVICE) rc =3D copy_from_user(kaddr, buffer, bsize_elem); else rc =3D copy_to_user(buffer, kaddr, bsize_elem); =20 - kunmap(page); + kunmap_thread(page); =20 if (rc) { pmcraid_err("failed to copy user data into sg list\n"); @@ -3288,14 +3288,14 @@ static int pmcraid_copy_sglist( if (len % bsize_elem) { struct page *page =3D sg_page(sg); =20 - kaddr =3D kmap(page); + kaddr =3D kmap_thread(page); =20 if (direction =3D=3D DMA_TO_DEVICE) rc =3D copy_from_user(kaddr, buffer, len % bsize_elem); else rc =3D copy_to_user(buffer, kaddr, len % bsize_elem); =20 - kunmap(page); + kunmap_thread(page); =20 sg->length =3D len % bsize_elem; } --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273808; cv=none; d=zohomail.com; s=zohoarc; b=mANVzPhupTcPLSjYjEGcZSQ43QgxkuzcmYjrE+WvI0Ahjz6ATa6SOFeAtK+AMD4I4mlXD4zisZgp5S9KjKdRKUHvhbRqcdaQenL86agjby6LdGmbKuAT8Gy4Xe6MyHl72l0LktIqqoyJI5JQdYsMHP1050dO12OLsiFOpdS82x0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273808; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=mhmsAFuZsEm7693FrKKAohtRh9m9oaQVdgOvSMzCICc=; b=S0dtdDVP8n14g2ylKU83SYi5rDwqSvY4xMprgMkh2I6aRcJ+Maj4WU7kL3KeqmzeBtysu8Fd9iQ1HyAoN1ZrV9wFi2U6eUmhUlq37sLFICyBEt9nY0+2JKhU8cjFWSaS6UGmsMGvQeToUr3Z3Boc6/kPvk1KNMsQ4BB24qSGdjc= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273808910956.4522409037294; Fri, 9 Oct 2020 13:03:28 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5180.13528 (Exim 4.92) (envelope-from ) id 1kQybb-00008o-QJ; Fri, 09 Oct 2020 20:03:07 +0000 Received: by outflank-mailman (output) from mailman id 5180.13528; Fri, 09 Oct 2020 20:03:07 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQybb-00008h-Mx; Fri, 09 Oct 2020 20:03:07 +0000 Received: by outflank-mailman (input) for mailman id 5180; Fri, 09 Oct 2020 20:03:05 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySK-0003VG-68 for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:32 +0000 Received: from mga07.intel.com (unknown [134.134.136.100]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id f3a4d526-b774-45b6-986a-8c76e30921b9; Fri, 09 Oct 2020 19:53:23 +0000 (UTC) Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:23 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:21 -0700 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySK-0003VG-68 for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:32 +0000 Received: from mga07.intel.com (unknown [134.134.136.100]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id f3a4d526-b774-45b6-986a-8c76e30921b9; Fri, 09 Oct 2020 19:53:23 +0000 (UTC) Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:23 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:21 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: f3a4d526-b774-45b6-986a-8c76e30921b9 IronPort-SDR: GhVMyiL9zhS2aRTAKOr+xl1SDa/QOf9DA/kKt55l4IUXUjm24NizN6Sb+9ifvZUj0phLSipFoi wYk7MinVHiCQ== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="229715329" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="229715329" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: 1WKybDcesSB1sLOn62ClPw5Oz5roBPmtIQsa1XcymP/Rm5On5MJ4hIzRHLHnwze0O/9dY0G7BT oI/HBaoknNhQ== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="355863255" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Ulf Hansson , Sascha Sommer , 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 43/58] drivers/mmc: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:50:18 -0700 Message-Id: <20201009195033.3208459-44-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny These kmap() calls are localized to a single thread. To avoid the over head of global PKRS updates use the new kmap_thread() call. Cc: Ulf Hansson Cc: Sascha Sommer Signed-off-by: Ira Weiny --- drivers/mmc/host/mmc_spi.c | 4 ++-- drivers/mmc/host/sdricoh_cs.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/mmc/host/mmc_spi.c b/drivers/mmc/host/mmc_spi.c index 18a850f37ddc..ab28e7103b8d 100644 --- a/drivers/mmc/host/mmc_spi.c +++ b/drivers/mmc/host/mmc_spi.c @@ -918,7 +918,7 @@ mmc_spi_data_do(struct mmc_spi_host *host, struct mmc_c= ommand *cmd, } =20 /* allow pio too; we don't allow highmem */ - kmap_addr =3D kmap(sg_page(sg)); + kmap_addr =3D kmap_thread(sg_page(sg)); if (direction =3D=3D DMA_TO_DEVICE) t->tx_buf =3D kmap_addr + sg->offset; else @@ -950,7 +950,7 @@ mmc_spi_data_do(struct mmc_spi_host *host, struct mmc_c= ommand *cmd, /* discard mappings */ if (direction =3D=3D DMA_FROM_DEVICE) flush_kernel_dcache_page(sg_page(sg)); - kunmap(sg_page(sg)); + kunmap_thread(sg_page(sg)); if (dma_dev) dma_unmap_page(dma_dev, dma_addr, PAGE_SIZE, dir); =20 diff --git a/drivers/mmc/host/sdricoh_cs.c b/drivers/mmc/host/sdricoh_cs.c index 76a8cd3a186f..7806bc69c4f1 100644 --- a/drivers/mmc/host/sdricoh_cs.c +++ b/drivers/mmc/host/sdricoh_cs.c @@ -312,11 +312,11 @@ static void sdricoh_request(struct mmc_host *mmc, str= uct mmc_request *mrq) int result; page =3D sg_page(data->sg); =20 - buf =3D kmap(page) + data->sg->offset + (len * i); + buf =3D kmap_thread(page) + data->sg->offset + (len * i); result =3D sdricoh_blockio(host, data->flags & MMC_DATA_READ, buf, len); - kunmap(page); + kunmap_thread(page); flush_dcache_page(page); if (result) { dev_err(dev, "sdricoh_request: cmd %i " --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273426; cv=none; d=zohomail.com; s=zohoarc; b=WuGDbRmpIZDKgbERi6w8LLemzMiRfCI3X3AIJHboYSl+NxtLlVX9QZacoeXjT1Vst3NY+5TZKdIED711F4cKO8ZmqHWuZHd4A7BcZr2qQzZrGdd+NVc6iNHvdAjtVBPMMfVxX+O+JalIXlRAO6f6Z3E9xBRQulaKt3/4VIDbOAU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273426; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=PD1vmJ6VJnTvodarSn2k+jyLeELjFxOKVXeQTN7myF8=; b=X8911T7kbQEKiUPiQ+RaC4rwj2F9oG8CAgmlmeroi2LJr73zi0yy4NxXptEn8gcBHfrMzDJudq2UJau7sSjCu7xTnXCcNo4W20AprFJ8iZfXap5tyiso9tqcalAkAqB1CaviE9sz8vmXJ4v+yYKl5eF1vBJfu3FRMkFj12d7twY= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273426504610.1456206954025; Fri, 9 Oct 2020 12:57:06 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5169.13481 (Exim 4.92) (envelope-from ) id 1kQyVR-00075G-5M; Fri, 09 Oct 2020 19:56:45 +0000 Received: by outflank-mailman (output) from mailman id 5169.13481; Fri, 09 Oct 2020 19:56:45 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyVR-000757-2F; Fri, 09 Oct 2020 19:56:45 +0000 Received: by outflank-mailman (input) for mailman id 5169; Fri, 09 Oct 2020 19:56:43 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySP-0003VG-6N for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:37 +0000 Received: from mga09.intel.com (unknown [134.134.136.24]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id bb1a64dd-e4c8-4906-97c2-1fdc3985d221; Fri, 09 Oct 2020 19:53:27 +0000 (UTC) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:26 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:25 -0700 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySP-0003VG-6N for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:37 +0000 Received: from mga09.intel.com (unknown [134.134.136.24]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id bb1a64dd-e4c8-4906-97c2-1fdc3985d221; Fri, 09 Oct 2020 19:53:27 +0000 (UTC) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:26 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:25 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: bb1a64dd-e4c8-4906-97c2-1fdc3985d221 IronPort-SDR: XekXSL8XDIzS4z8DlhwRK7mwt6lTeWdTniQtHCkXg5m/Za1sv6ctOaMcXkcX0ONfiLAaB2or/0 E0lSeMRBqvaQ== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="165643304" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="165643304" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: 2ROrwlCi2HA6jb/vbADUiWNpPA9fz//CxLO3iPg6ChQCY2CkDUKdp2BuOf7Z0K54YjJfUTECcl a5kJtnEVjTKQ== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="329006788" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Stefano Stabellini , 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 44/58] drivers/xen: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:50:19 -0700 Message-Id: <20201009195033.3208459-45-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny These kmap() calls are localized to a single thread. To avoid the over head of global PKRS updates use the new kmap_thread() call. Cc: Stefano Stabellini Signed-off-by: Ira Weiny --- drivers/xen/gntalloc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/xen/gntalloc.c b/drivers/xen/gntalloc.c index 3fa40c723e8e..3b78e055feff 100644 --- a/drivers/xen/gntalloc.c +++ b/drivers/xen/gntalloc.c @@ -184,9 +184,9 @@ static int add_grefs(struct ioctl_gntalloc_alloc_gref *= op, static void __del_gref(struct gntalloc_gref *gref) { if (gref->notify.flags & UNMAP_NOTIFY_CLEAR_BYTE) { - uint8_t *tmp =3D kmap(gref->page); + uint8_t *tmp =3D kmap_thread(gref->page); tmp[gref->notify.pgoff] =3D 0; - kunmap(gref->page); + kunmap_thread(gref->page); } if (gref->notify.flags & UNMAP_NOTIFY_SEND_EVENT) { notify_remote_via_evtchn(gref->notify.event); --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273573; cv=none; d=zohomail.com; s=zohoarc; b=kNDvT3SfcyXCIWHmEkeyV18eFse5YHUD2tCdVq6dk7D4Ces+MOY1JNu0EFwTOOOmmH0EVqcOuevzDIPZcxLr95L1gEpS5EnASAhp26oRhAMwmzXA2DJdjBYjxW7ttQ1D0NfB/1JdMrhnS64fvnkK9x94/iReQdb/ep20P/3oH94= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273573; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=3KEW3zXc5GbTvG5uENTyww8N5+1C4+LT4mZhrk7rL8k=; b=BgnFki/MGbmsIO2l14WXVJdx/27wd1pj10w/2wptnUU5GQ8NHwZya7jYZDnUQnbuX98alIRFKmfWAIHjuIuRr7y0Z9IlZWBJBZuBfQfSj5Zz74afcq+Bm6aXR0WtuvxYuFapSWtfrx/lFfOS3zpIlUSGyuk9HiT4fV5X1piXcNo= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273573352242.9668291024002; Fri, 9 Oct 2020 12:59:33 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5173.13517 (Exim 4.92) (envelope-from ) id 1kQyXv-0007Xy-8k; Fri, 09 Oct 2020 19:59:19 +0000 Received: by outflank-mailman (output) from mailman id 5173.13517; Fri, 09 Oct 2020 19:59:19 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyXv-0007Xq-5M; Fri, 09 Oct 2020 19:59:19 +0000 Received: by outflank-mailman (input) for mailman id 5173; Fri, 09 Oct 2020 19:59:18 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySU-0003VG-6W for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:42 +0000 Received: from mga03.intel.com (unknown [134.134.136.65]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 30caa391-3e96-48cc-9fcb-f4823c84ce0d; Fri, 09 Oct 2020 19:53:30 +0000 (UTC) Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:29 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:28 -0700 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySU-0003VG-6W for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:42 +0000 Received: from mga03.intel.com (unknown [134.134.136.65]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 30caa391-3e96-48cc-9fcb-f4823c84ce0d; Fri, 09 Oct 2020 19:53:30 +0000 (UTC) Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:29 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:28 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 30caa391-3e96-48cc-9fcb-f4823c84ce0d IronPort-SDR: kaVSwKYO/oBj40XBBm1bm6G1A1++4hOplAS3cyXyq2u2UFdJSJ887QaOjSj9FhCnDez5pzPD9U QFqmpzx346Pg== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="165592493" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="165592493" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: BOVOU8SHaQbMr+qBBSrCzuqbJHuQd4ndzwss05aaSC7o5I30ANXdekITPCnqmJ5xtHPcWbAp0e 1H/r6jgeLwtA== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="298419945" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Ard Biesheuvel , 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 45/58] drivers/firmware: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:50:20 -0700 Message-Id: <20201009195033.3208459-46-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny These kmap() calls are localized to a single thread. To avoid the over head of global PKRS updates use the new kmap_thread() call. Cc: Ard Biesheuvel Signed-off-by: Ira Weiny --- drivers/firmware/efi/capsule-loader.c | 6 +++--- drivers/firmware/efi/capsule.c | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/firmware/efi/capsule-loader.c b/drivers/firmware/efi/c= apsule-loader.c index 4dde8edd53b6..aa2e0b5940fd 100644 --- a/drivers/firmware/efi/capsule-loader.c +++ b/drivers/firmware/efi/capsule-loader.c @@ -197,7 +197,7 @@ static ssize_t efi_capsule_write(struct file *file, con= st char __user *buff, page =3D cap_info->pages[cap_info->index - 1]; } =20 - kbuff =3D kmap(page); + kbuff =3D kmap_thread(page); kbuff +=3D PAGE_SIZE - cap_info->page_bytes_remain; =20 /* Copy capsule binary data from user space to kernel space buffer */ @@ -217,7 +217,7 @@ static ssize_t efi_capsule_write(struct file *file, con= st char __user *buff, } =20 cap_info->count +=3D write_byte; - kunmap(page); + kunmap_thread(page); =20 /* Submit the full binary to efi_capsule_update() API */ if (cap_info->header.headersize > 0 && @@ -236,7 +236,7 @@ static ssize_t efi_capsule_write(struct file *file, con= st char __user *buff, return write_byte; =20 fail_unmap: - kunmap(page); + kunmap_thread(page); failed: efi_free_all_buff_pages(cap_info); return ret; diff --git a/drivers/firmware/efi/capsule.c b/drivers/firmware/efi/capsule.c index 598b7800d14e..edb7797b0e4f 100644 --- a/drivers/firmware/efi/capsule.c +++ b/drivers/firmware/efi/capsule.c @@ -244,7 +244,7 @@ int efi_capsule_update(efi_capsule_header_t *capsule, p= hys_addr_t *pages) for (i =3D 0; i < sg_count; i++) { efi_capsule_block_desc_t *sglist; =20 - sglist =3D kmap(sg_pages[i]); + sglist =3D kmap_thread(sg_pages[i]); =20 for (j =3D 0; j < SGLIST_PER_PAGE && count > 0; j++) { u64 sz =3D min_t(u64, imagesize, @@ -265,7 +265,7 @@ int efi_capsule_update(efi_capsule_header_t *capsule, p= hys_addr_t *pages) else sglist[j].data =3D page_to_phys(sg_pages[i + 1]); =20 - kunmap(sg_pages[i]); + kunmap_thread(sg_pages[i]); } =20 mutex_lock(&capsule_mutex); --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273562; cv=none; d=zohomail.com; s=zohoarc; b=mW437D2tIdG81EdUwphzUMUMy7OrNnmP7RAoqvQ0H1jArmUNi37EnhpIG8+P1GQs+K+6Ex0WxKp6fGtBtdjYj1kNIf9IQJXpObB1SA9xbxfnwZnvW2Az+mONgbu7gi92R7XnKvGkLBL8qTjB44OAwzkt3X6SjxwHO8WiKO8wlbA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273562; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=LCC+G2qC9giXtVNUedBmSwsY8thzfxy/zf2KdbcXWQs=; b=OWzghaDXVzbePkHBSaSjGUsLezTnvNq9srhZ6T584dQepD1JUMABIg2zgCKUkGZ4zlwJ7a83+M6OYH86HDCgCAFp8xB4XEvLJRL57nqXdohbbTP1R/tdp6ozNoxnBkfaLHJ2Wwp321PCKIClTMcwgjjGH0DiaLGfuOlsYiuuZ3g= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273562741648.9258107493065; Fri, 9 Oct 2020 12:59:22 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5172.13505 (Exim 4.92) (envelope-from ) id 1kQyXj-0007SU-Se; Fri, 09 Oct 2020 19:59:07 +0000 Received: by outflank-mailman (output) from mailman id 5172.13505; Fri, 09 Oct 2020 19:59:07 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyXj-0007SN-Oj; Fri, 09 Oct 2020 19:59:07 +0000 Received: by outflank-mailman (input) for mailman id 5172; Fri, 09 Oct 2020 19:59:07 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySZ-0003VG-6p for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:47 +0000 Received: from mga04.intel.com (unknown [192.55.52.120]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id b332249c-4559-4c52-ab00-c74c294dc3ba; Fri, 09 Oct 2020 19:53:32 +0000 (UTC) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:31 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga002-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:31 -0700 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySZ-0003VG-6p for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:47 +0000 Received: from mga04.intel.com (unknown [192.55.52.120]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id b332249c-4559-4c52-ab00-c74c294dc3ba; Fri, 09 Oct 2020 19:53:32 +0000 (UTC) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:31 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga002-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:31 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: b332249c-4559-4c52-ab00-c74c294dc3ba IronPort-SDR: yzaa39ck/j3h3xkJLKOvGHyLQ5yo3A8DLPn9stlc7AMjYQOmLSa0s32ddG9B1BRWjVv633sgGZ Tk1duDTUd9lQ== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="162893622" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="162893622" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: tmjEkPyqc7ovqgXQGaOUDyTXP+wKCpLd9SWVbWzn6wrJD59J17IHvt5wfRHDxw49UwqlYvaTbK hGdPiXGJDlXQ== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="349957787" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Greg Kroah-Hartman , 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 46/58] drives/staging: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:50:21 -0700 Message-Id: <20201009195033.3208459-47-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny These kmap() calls are localized to a single thread. To avoid the over head of global PKRS updates use the new kmap_thread() call. Cc: Greg Kroah-Hartman Signed-off-by: Ira Weiny --- drivers/staging/rts5208/rtsx_transport.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rts5208/rtsx_transport.c b/drivers/staging/rts= 5208/rtsx_transport.c index 0027bcf638ad..f747cc23951b 100644 --- a/drivers/staging/rts5208/rtsx_transport.c +++ b/drivers/staging/rts5208/rtsx_transport.c @@ -92,13 +92,13 @@ unsigned int rtsx_stor_access_xfer_buf(unsigned char *b= uffer, while (sglen > 0) { unsigned int plen =3D min(sglen, (unsigned int) PAGE_SIZE - poff); - unsigned char *ptr =3D kmap(page); + unsigned char *ptr =3D kmap_thread(page); =20 if (dir =3D=3D TO_XFER_BUF) memcpy(ptr + poff, buffer + cnt, plen); else memcpy(buffer + cnt, ptr + poff, plen); - kunmap(page); + kunmap_thread(page); =20 /* Start at the beginning of the next page */ poff =3D 0; --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273860; cv=none; d=zohomail.com; s=zohoarc; b=BJPOKcE2sjkGCkmpBjzDyKaaWXTaow8ZKuZovLTokm9oNcDOYfWMk7Sej6yfEwMo0qDDU1yyUh1Jj56O5JBM/pWIir0KfmrISOka5Z3pFxZJS45zKyeMluCv7S3wseoexsZvV/mpYF6y7iSbKXapYSy9qjPmgK9NI7veyXxqBpM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273860; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=UxyXfvb2CxZqMFZKZtqo+jWNZCQYpNhOhyv9VITCSnc=; b=l95AW+IgjNM+ODZC06t4gvQcsktNF406Irpix0SHEEKXtCZotT2j/5X+ltMmjEZMes7FawKJNVvMHhgFrI4d81qE1nCM4fcxxfQCE9NzitFkzhMKZ+HOc1ZMCKnBiVpf0g/10VBjqDWzXTty5E1rTwHfkW4N9/31uT80iH1Dksg= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273860198614.5828294811614; Fri, 9 Oct 2020 13:04:20 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5181.13540 (Exim 4.92) (envelope-from ) id 1kQycZ-0000IW-4a; Fri, 09 Oct 2020 20:04:07 +0000 Received: by outflank-mailman (output) from mailman id 5181.13540; Fri, 09 Oct 2020 20:04:07 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQycZ-0000IM-1U; Fri, 09 Oct 2020 20:04:07 +0000 Received: by outflank-mailman (input) for mailman id 5181; Fri, 09 Oct 2020 20:04:06 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySe-0003VG-7G for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:52 +0000 Received: from mga07.intel.com (unknown [134.134.136.100]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id bf38be33-9ae8-4546-b721-bdb4d3e8e31a; Fri, 09 Oct 2020 19:53:35 +0000 (UTC) Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:35 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:34 -0700 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySe-0003VG-7G for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:52 +0000 Received: from mga07.intel.com (unknown [134.134.136.100]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id bf38be33-9ae8-4546-b721-bdb4d3e8e31a; Fri, 09 Oct 2020 19:53:35 +0000 (UTC) Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:35 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:34 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: bf38be33-9ae8-4546-b721-bdb4d3e8e31a IronPort-SDR: sBe4qza1ii/MGc30I0htHBYySTCcdoQh3ck1mtlQblZ2QOG0ARGVBMIJlxmelbFm4XO7kCrmPA KKTQ1obXbEpA== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="229715352" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="229715352" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: 1BDjhBWRiZHjmax0H5jHPL9Ee2R7VPzFxt4XNyUZ5d5LafdvLgy40B0wtQFVU3AX2TCQgDyRso HhmDRI33qIDA== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="345148602" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , 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 47/58] drivers/mtd: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:50:22 -0700 Message-Id: <20201009195033.3208459-48-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny These kmap() calls are localized to a single thread. To avoid the over head of global PKRS updates use the new kmap_thread() call. Cc: Miquel Raynal Cc: Richard Weinberger Cc: Vignesh Raghavendra Signed-off-by: Ira Weiny --- drivers/mtd/mtd_blkdevs.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/mtd/mtd_blkdevs.c b/drivers/mtd/mtd_blkdevs.c index 0c05f77f9b21..4b18998273fa 100644 --- a/drivers/mtd/mtd_blkdevs.c +++ b/drivers/mtd/mtd_blkdevs.c @@ -88,14 +88,14 @@ static blk_status_t do_blktrans_request(struct mtd_blkt= rans_ops *tr, return BLK_STS_IOERR; return BLK_STS_OK; case REQ_OP_READ: - buf =3D kmap(bio_page(req->bio)) + bio_offset(req->bio); + buf =3D kmap_thread(bio_page(req->bio)) + bio_offset(req->bio); for (; nsect > 0; nsect--, block++, buf +=3D tr->blksize) { if (tr->readsect(dev, block, buf)) { - kunmap(bio_page(req->bio)); + kunmap_thread(bio_page(req->bio)); return BLK_STS_IOERR; } } - kunmap(bio_page(req->bio)); + kunmap_thread(bio_page(req->bio)); rq_flush_dcache_pages(req); return BLK_STS_OK; case REQ_OP_WRITE: @@ -103,14 +103,14 @@ static blk_status_t do_blktrans_request(struct mtd_bl= ktrans_ops *tr, return BLK_STS_IOERR; =20 rq_flush_dcache_pages(req); - buf =3D kmap(bio_page(req->bio)) + bio_offset(req->bio); + buf =3D kmap_thread(bio_page(req->bio)) + bio_offset(req->bio); for (; nsect > 0; nsect--, block++, buf +=3D tr->blksize) { if (tr->writesect(dev, block, buf)) { - kunmap(bio_page(req->bio)); + kunmap_thread(bio_page(req->bio)); return BLK_STS_IOERR; } } - kunmap(bio_page(req->bio)); + kunmap_thread(bio_page(req->bio)); return BLK_STS_OK; default: return BLK_STS_IOERR; --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273237; cv=none; d=zohomail.com; s=zohoarc; b=bVKdgGrRnRVeyD2VjOpwkWUyiJnPWREkkqM6v1QEM7erP56yRcaEn863Xhjjb3rwXAaIfHWeJwpeWSv+wy/g1xb+WHFgXaqbR6Awr2lGFGlZKcGSWKShVhcvGpQ1D1wIbNdEVQS9IHdyVeikvM5ehDgglwDieVcmNtnVBECpxYA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273237; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=lbrsrSr+MeeSQNZEKzsTYZr/T6LKCQHEab8wwb7FQuw=; b=Gwpjs+m921rHFCBiVZpUE/D5W/89k1zQG99luRofTWT9/AgdoxlvFDQPoooid9bTUKApdDPOE4lA0uVqnEnen6sYcJMTkhULqFruUEC6aIApYDLOrT50DeyiR+MjtCvXFmdx3Tz3LYSbh5HEH4qL1XK2n9e8bmQF4+ZEB55XBUs= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273237711106.89605385100253; Fri, 9 Oct 2020 12:53:57 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5124.13361 (Exim 4.92) (envelope-from ) id 1kQySV-0005UE-5Z; Fri, 09 Oct 2020 19:53:43 +0000 Received: by outflank-mailman (output) from mailman id 5124.13361; Fri, 09 Oct 2020 19:53:43 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySV-0005U4-1F; Fri, 09 Oct 2020 19:53:43 +0000 Received: by outflank-mailman (input) for mailman id 5124; Fri, 09 Oct 2020 19:53:42 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyST-0005Ps-UX for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:41 +0000 Received: from mga17.intel.com (unknown [192.55.52.151]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 805f1667-c4f5-44bc-bab3-1f1b1a4fb193; Fri, 09 Oct 2020 19:53:39 +0000 (UTC) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:38 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:37 -0700 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyST-0005Ps-UX for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:41 +0000 Received: from mga17.intel.com (unknown [192.55.52.151]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 805f1667-c4f5-44bc-bab3-1f1b1a4fb193; Fri, 09 Oct 2020 19:53:39 +0000 (UTC) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:38 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:37 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 805f1667-c4f5-44bc-bab3-1f1b1a4fb193 IronPort-SDR: vf1kLufGuZvoeyE0bw08HZmdaR4ufp6QnkT9XSJmCbKbXRFNpNwX+/QDTcc6JIksyNbs0aO7Y3 Gm6ahr573jeA== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="145397633" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="145397633" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: 77OyjRxsHRqLdlwGyIEmSTWShPVNVQULX7LnGcMeG3NkwcCC4UbesWRkZ9bTTqcjV6t6jmiGf4 lDgqS7BTpvKw== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="389237394" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Coly Li , Kent Overstreet , 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 48/58] drivers/md: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:50:23 -0700 Message-Id: <20201009195033.3208459-49-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny These kmap() calls are localized to a single thread. To avoid the over head of global PKRS updates use the new kmap_thread() call. Cc: Coly Li (maintainer:BCACHE (BLOCK LAYER CACHE)) Cc: Kent Overstreet (maintainer:BCACHE (BLOCK L= AYER CACHE)) Signed-off-by: Ira Weiny Acked-by: Coly Li --- drivers/md/bcache/request.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/md/bcache/request.c b/drivers/md/bcache/request.c index c7cadaafa947..a4571f6d09dd 100644 --- a/drivers/md/bcache/request.c +++ b/drivers/md/bcache/request.c @@ -44,10 +44,10 @@ static void bio_csum(struct bio *bio, struct bkey *k) uint64_t csum =3D 0; =20 bio_for_each_segment(bv, bio, iter) { - void *d =3D kmap(bv.bv_page) + bv.bv_offset; + void *d =3D kmap_thread(bv.bv_page) + bv.bv_offset; =20 csum =3D bch_crc64_update(csum, d, bv.bv_len); - kunmap(bv.bv_page); + kunmap_thread(bv.bv_page); } =20 k->ptr[KEY_PTRS(k)] =3D csum & (~0ULL >> 1); --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273244; cv=none; d=zohomail.com; s=zohoarc; b=k5eHZh8meQhYCyKoV9kNTQ4NVdtC9Xa0U44bUXPYRzh68Bf9ursTWmE3DLkTdygXEw/72ojQzwoZGEf2WMuNupwfdFK3nNc4NWdQRumqzM2EUYO4DxHDaNdGA7oidxnWs468G6mRfxtoA9x2C2hUGeMHnhSiGgbROxpbS0Xr9WA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273244; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=/V3uAD1bxrYj2Ot5J9thLw7J/tBvpnuILEfO6t9xn1I=; b=CMSk/SIvY5Byl/xdm/nzaFv+O/RzWyZfUQBE8hkChv1wnxYhlAvQT5INJB+tjVisChqKPCHmyLVHmK+FESMVVruOSzT/BxMIGsM7BsopwQAuNriMkHeKKJEOpaKkWJKfWufyzjQ4Gc54czamQHR1QROSMJPAVVBdF6leGX7PYdI= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273244761870.8899193557564; Fri, 9 Oct 2020 12:54:04 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5128.13373 (Exim 4.92) (envelope-from ) id 1kQySa-0005ab-Ga; Fri, 09 Oct 2020 19:53:48 +0000 Received: by outflank-mailman (output) from mailman id 5128.13373; Fri, 09 Oct 2020 19:53:48 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySa-0005aQ-Bm; Fri, 09 Oct 2020 19:53:48 +0000 Received: by outflank-mailman (input) for mailman id 5128; Fri, 09 Oct 2020 19:53:47 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySY-0005Ps-Ui for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:46 +0000 Received: from mga03.intel.com (unknown [134.134.136.65]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 1ae675ba-8138-4d44-9dc2-c2b7720986d2; Fri, 09 Oct 2020 19:53:43 +0000 (UTC) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:41 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga001-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:40 -0700 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySY-0005Ps-Ui for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:46 +0000 Received: from mga03.intel.com (unknown [134.134.136.65]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 1ae675ba-8138-4d44-9dc2-c2b7720986d2; Fri, 09 Oct 2020 19:53:43 +0000 (UTC) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:41 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga001-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:40 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 1ae675ba-8138-4d44-9dc2-c2b7720986d2 IronPort-SDR: NFNuK0DA20GFM7n/UmsvLHztqJht3MxNKx1+P/wchXae5yacImepU1iGMpU18ZqQI3Wjm8b9Jw njiXbjFJKd6Q== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="165592519" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="165592519" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: t/zSGeR++7wfj+VtFM7nhfyp5h0blfdWqDlNHnP/5jl48Bm08GFuTiLpDu6MwkEQ7bZpMY8SQr l7ztZVCdgy3g== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="419537249" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Greg Kroah-Hartman , 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 49/58] drivers/misc: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:50:24 -0700 Message-Id: <20201009195033.3208459-50-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny These kmap() calls are localized to a single thread. To avoid the over head of global PKRS updates use the new kmap_thread() call. Cc: Greg Kroah-Hartman Signed-off-by: Ira Weiny --- drivers/misc/vmw_vmci/vmci_queue_pair.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/misc/vmw_vmci/vmci_queue_pair.c b/drivers/misc/vmw_vmc= i/vmci_queue_pair.c index 8531ae781195..f308abb8ad03 100644 --- a/drivers/misc/vmw_vmci/vmci_queue_pair.c +++ b/drivers/misc/vmw_vmci/vmci_queue_pair.c @@ -343,7 +343,7 @@ static int qp_memcpy_to_queue_iter(struct vmci_queue *q= ueue, size_t to_copy; =20 if (kernel_if->host) - va =3D kmap(kernel_if->u.h.page[page_index]); + va =3D kmap_thread(kernel_if->u.h.page[page_index]); else va =3D kernel_if->u.g.vas[page_index + 1]; /* Skip header. */ @@ -357,12 +357,12 @@ static int qp_memcpy_to_queue_iter(struct vmci_queue = *queue, if (!copy_from_iter_full((u8 *)va + page_offset, to_copy, from)) { if (kernel_if->host) - kunmap(kernel_if->u.h.page[page_index]); + kunmap_thread(kernel_if->u.h.page[page_index]); return VMCI_ERROR_INVALID_ARGS; } bytes_copied +=3D to_copy; if (kernel_if->host) - kunmap(kernel_if->u.h.page[page_index]); + kunmap_thread(kernel_if->u.h.page[page_index]); } =20 return VMCI_SUCCESS; @@ -391,7 +391,7 @@ static int qp_memcpy_from_queue_iter(struct iov_iter *t= o, int err; =20 if (kernel_if->host) - va =3D kmap(kernel_if->u.h.page[page_index]); + va =3D kmap_thread(kernel_if->u.h.page[page_index]); else va =3D kernel_if->u.g.vas[page_index + 1]; /* Skip header. */ @@ -405,12 +405,12 @@ static int qp_memcpy_from_queue_iter(struct iov_iter = *to, err =3D copy_to_iter((u8 *)va + page_offset, to_copy, to); if (err !=3D to_copy) { if (kernel_if->host) - kunmap(kernel_if->u.h.page[page_index]); + kunmap_thread(kernel_if->u.h.page[page_index]); return VMCI_ERROR_INVALID_ARGS; } bytes_copied +=3D to_copy; if (kernel_if->host) - kunmap(kernel_if->u.h.page[page_index]); + kunmap_thread(kernel_if->u.h.page[page_index]); } =20 return VMCI_SUCCESS; --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273245; cv=none; d=zohomail.com; s=zohoarc; b=GBd06c+kCKloqrsbI5+tcGiFguaqbYlUow3BlV8uHKbCP/NAH8as3U1tDlhSL8KSi8Wp4ARBQNcf5Z0fOD2IIP+wreX5v09SACrV5mpiT29zP4rMEcbR20521cNchOHL7Zfm7wbCcljTM3V9B3A8KUl1+dh9JFxHVlD3f5Z9vws= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273245; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=6Y6wBwOxQoyCQYMmw7RnQyHFfduXGra1zyI0ajMaxRQ=; b=iKrpFDLMSStPXAiuaFS5eS+ukY/2sFR8WIM/zSqyNTZ91+qb8NYj4xIJbwmsmm+VN2PriL4kO3uvVqYLe7KDmdOg+iX4WBdzpXnQl8Jt2xTSm2NwTAQtsEdM7xk5e2jDeWWcLwo9ho8tjlJhEELjLQ88V2atrwKvRKqVDIUR0Xc= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273245837416.3148744579423; Fri, 9 Oct 2020 12:54:05 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5132.13385 (Exim 4.92) (envelope-from ) id 1kQySe-0005gX-PR; Fri, 09 Oct 2020 19:53:52 +0000 Received: by outflank-mailman (output) from mailman id 5132.13385; Fri, 09 Oct 2020 19:53:52 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySe-0005gP-MD; Fri, 09 Oct 2020 19:53:52 +0000 Received: by outflank-mailman (input) for mailman id 5132; Fri, 09 Oct 2020 19:53:52 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySd-0005Ps-Uk for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:51 +0000 Received: from mga11.intel.com (unknown [192.55.52.93]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 681c2b85-c394-4b4c-8973-c2248e976f5a; Fri, 09 Oct 2020 19:53:44 +0000 (UTC) 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:53:44 -0700 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:53:43 -0700 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySd-0005Ps-Uk for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:51 +0000 Received: from mga11.intel.com (unknown [192.55.52.93]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 681c2b85-c394-4b4c-8973-c2248e976f5a; Fri, 09 Oct 2020 19:53:44 +0000 (UTC) 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:53:44 -0700 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:53:43 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 681c2b85-c394-4b4c-8973-c2248e976f5a IronPort-SDR: YziJI3PlJBzliL0ylJRMcYbG2UKox1qqh1obzhf8msK3M9/YjZBsW9yMJC4UnilOh3SrEyGsaD oNcf5vpnJ9Og== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="162068173" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="162068173" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: Uit4axCqwtogby85Iv/hBLI1Moj4COtsBpPB5jXSVWpuENwpihzSQwSQg3nZnBMabzVvybSK2I 1kQ4taZ9oZgQ== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="298531484" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Greg Kroah-Hartman , 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 50/58] drivers/android: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:50:25 -0700 Message-Id: <20201009195033.3208459-51-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny These kmap() calls are localized to a single thread. To avoid the over head of global PKRS updates use the new kmap_thread() call. Cc: Greg Kroah-Hartman Signed-off-by: Ira Weiny --- drivers/android/binder_alloc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/android/binder_alloc.c b/drivers/android/binder_alloc.c index 69609696a843..5f50856caad7 100644 --- a/drivers/android/binder_alloc.c +++ b/drivers/android/binder_alloc.c @@ -1118,9 +1118,9 @@ binder_alloc_copy_user_to_buffer(struct binder_alloc = *alloc, page =3D binder_alloc_get_page(alloc, buffer, buffer_offset, &pgoff); size =3D min_t(size_t, bytes, PAGE_SIZE - pgoff); - kptr =3D kmap(page) + pgoff; + kptr =3D kmap_thread(page) + pgoff; ret =3D copy_from_user(kptr, from, size); - kunmap(page); + kunmap_thread(page); if (ret) return bytes - size + ret; bytes -=3D size; --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273961; cv=none; d=zohomail.com; s=zohoarc; b=iM46h8ZPbvp94eIFZdTkGRwpM39nq6Cbz88/Qd8xIf+62wkeImcoXfB3LQroUCKQVeK+rKQ47LUD2GVNyS/iSfQOW8lM1iWcOG/qhEQyd34SqxRSBgIKt549fk4WWj2ptFcWF+YmkZGKk3lXkFFIaF/5Iwha8btHvn2cgKzRka4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273961; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=G6608u12tJWqJ1JQ7kzv5O+uOtac8j7YaMdqsmur0Dg=; b=Y61DyYOgeoWHi8VRBSUWrzsfKVKC4EsXM/DxEsl96345RDC6+A+zkPzObmnpUs8lAWxcipqYtOGa1k14DhSv0QGSzk+SbthBIuH0qxg7SRXVtGmJai7RAhbhJMpFSs9kRSwf+5WbFSLX8n2ZACReOissnSHd0FJVNuqBnyorKoY= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273961199227.6375029339714; Fri, 9 Oct 2020 13:06:01 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5185.13564 (Exim 4.92) (envelope-from ) id 1kQyeC-0000cY-PY; Fri, 09 Oct 2020 20:05:48 +0000 Received: by outflank-mailman (output) from mailman id 5185.13564; Fri, 09 Oct 2020 20:05:48 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyeC-0000cR-Ly; Fri, 09 Oct 2020 20:05:48 +0000 Received: by outflank-mailman (input) for mailman id 5185; Fri, 09 Oct 2020 20:05:47 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySj-0003VG-7G for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:57 +0000 Received: from mga02.intel.com (unknown [134.134.136.20]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id e0f9d367-7d99-41de-b28b-a3d90d450997; Fri, 09 Oct 2020 19:53:48 +0000 (UTC) Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:47 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:46 -0700 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySj-0003VG-7G for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:57 +0000 Received: from mga02.intel.com (unknown [134.134.136.20]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id e0f9d367-7d99-41de-b28b-a3d90d450997; Fri, 09 Oct 2020 19:53:48 +0000 (UTC) Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:47 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:46 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: e0f9d367-7d99-41de-b28b-a3d90d450997 IronPort-SDR: RffSlFjQ0u1RoSX45kPUXvPF3Vw5pU/zKXIN7B2MoxGCg/yXY+mGIAKBEEp01ajJQ8AuP/OGtW QDw5dllcg4Bg== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="152451185" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="152451185" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: hSLATPILKZexzU9UbulfkIo/q3wPUuwdHpgGfd67f9RjOUrzIM+GeKhbZtX4gmiSR0zMVEA6Pm bSqmX2bz2skQ== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="529054109" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Eric Biederman , 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 51/58] kernel: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:50:26 -0700 Message-Id: <20201009195033.3208459-52-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny This kmap() call is localized to a single thread. To avoid the over head of global PKRS updates use the new kmap_thread() call. Cc: Eric Biederman Signed-off-by: Ira Weiny Acked-by: "Eric W. Biederman" --- kernel/kexec_core.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c index c19c0dad1ebe..272a9920c0d6 100644 --- a/kernel/kexec_core.c +++ b/kernel/kexec_core.c @@ -815,7 +815,7 @@ static int kimage_load_normal_segment(struct kimage *im= age, if (result < 0) goto out; =20 - ptr =3D kmap(page); + ptr =3D kmap_thread(page); /* Start with a clear page */ clear_page(ptr); ptr +=3D maddr & ~PAGE_MASK; @@ -828,7 +828,7 @@ static int kimage_load_normal_segment(struct kimage *im= age, memcpy(ptr, kbuf, uchunk); else result =3D copy_from_user(ptr, buf, uchunk); - kunmap(page); + kunmap_thread(page); if (result) { result =3D -EFAULT; goto out; @@ -879,7 +879,7 @@ static int kimage_load_crash_segment(struct kimage *ima= ge, goto out; } arch_kexec_post_alloc_pages(page_address(page), 1, 0); - ptr =3D kmap(page); + ptr =3D kmap_thread(page); ptr +=3D maddr & ~PAGE_MASK; mchunk =3D min_t(size_t, mbytes, PAGE_SIZE - (maddr & ~PAGE_MASK)); @@ -895,7 +895,7 @@ static int kimage_load_crash_segment(struct kimage *ima= ge, else result =3D copy_from_user(ptr, buf, uchunk); kexec_flush_icache_page(page); - kunmap(page); + kunmap_thread(page); arch_kexec_pre_free_pages(page_address(page), 1); if (result) { result =3D -EFAULT; --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273254; cv=none; d=zohomail.com; s=zohoarc; b=Nz9MMX22E1PPAMsqkLWPyaaSZVYzFFLJFOp5ytwRtJXMl1pkXekYAd8v4I1g/U9gut6xc0KmUv7OgGtBCztlQ7EdQDemwRGSyWGhRlyAUrCIquGXQ/pL60cJITX7thK2XLz+JpdRodHxwdB+wzbsKNVd/d5aOA924zLSfJL0jXM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273254; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=VmM4ECMBjF/f2pgpMktcDCFTZPlpXgytzdnlHY6G42g=; b=CZ2GwaVWxEQGJpR5rL6Zd6/qC1i+pwWcYc0j7HyOzcx0b2ruD3+SFTrKih5HCgcrlXzjotTIgKfpIAGYPXDgCliZPIfRj12jz8fpta8kvkJnlw2HlS1vdlZKxVvC8SlovPIQMr4+QN7UtPQOU8VQDho2a3/2krdGvOyGQ49scyU= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273254409353.2287190720642; Fri, 9 Oct 2020 12:54:14 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5136.13397 (Exim 4.92) (envelope-from ) id 1kQySk-0005od-BV; Fri, 09 Oct 2020 19:53:58 +0000 Received: by outflank-mailman (output) from mailman id 5136.13397; Fri, 09 Oct 2020 19:53:58 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySk-0005oQ-79; Fri, 09 Oct 2020 19:53:58 +0000 Received: by outflank-mailman (input) for mailman id 5136; Fri, 09 Oct 2020 19:53:57 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySi-0005Ps-VA for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:56 +0000 Received: from mga18.intel.com (unknown [134.134.136.126]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id f055cc1e-3bb0-4e29-b6d2-a702b0fea35e; Fri, 09 Oct 2020 19:53:52 +0000 (UTC) Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:51 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:50 -0700 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySi-0005Ps-VA for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:53:56 +0000 Received: from mga18.intel.com (unknown [134.134.136.126]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id f055cc1e-3bb0-4e29-b6d2-a702b0fea35e; Fri, 09 Oct 2020 19:53:52 +0000 (UTC) Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:51 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:50 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: f055cc1e-3bb0-4e29-b6d2-a702b0fea35e IronPort-SDR: tTFgvc6RZJ8V+MwcL9uJFqUOw2UuoqGI4QphGn9hIaRslAXm5PLWIYDepQxgE4Xj46Ap/V33jh a/ivOUt5XS9w== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="153363849" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="153363849" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: V1KD7wTraPak1zxWaGCn8NDyAgfcS4zsKsBv4Z0vY7HUn25qjJm9u99gQjtiJGVT+R+oXmWyM0 H2mADCd5/x5Q== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="462301148" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , 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 52/58] mm: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:50:27 -0700 Message-Id: <20201009195033.3208459-53-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny These kmap() calls are localized to a single thread. To avoid the over head of global PKRS updates use the new kmap_thread() call. Signed-off-by: Ira Weiny --- mm/memory.c | 8 ++++---- mm/swapfile.c | 4 ++-- mm/userfaultfd.c | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/mm/memory.c b/mm/memory.c index fcfc4ca36eba..75a054882d7a 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -4945,7 +4945,7 @@ int __access_remote_vm(struct task_struct *tsk, struc= t mm_struct *mm, if (bytes > PAGE_SIZE-offset) bytes =3D PAGE_SIZE-offset; =20 - maddr =3D kmap(page); + maddr =3D kmap_thread(page); if (write) { copy_to_user_page(vma, page, addr, maddr + offset, buf, bytes); @@ -4954,7 +4954,7 @@ int __access_remote_vm(struct task_struct *tsk, struc= t mm_struct *mm, copy_from_user_page(vma, page, addr, buf, maddr + offset, bytes); } - kunmap(page); + kunmap_thread(page); put_page(page); } len -=3D bytes; @@ -5216,14 +5216,14 @@ long copy_huge_page_from_user(struct page *dst_page, =20 for (i =3D 0; i < pages_per_huge_page; i++) { if (allow_pagefault) - page_kaddr =3D kmap(dst_page + i); + page_kaddr =3D kmap_thread(dst_page + i); else page_kaddr =3D kmap_atomic(dst_page + i); rc =3D copy_from_user(page_kaddr, (const void __user *)(src + i * PAGE_SIZE), PAGE_SIZE); if (allow_pagefault) - kunmap(dst_page + i); + kunmap_thread(dst_page + i); else kunmap_atomic(page_kaddr); =20 diff --git a/mm/swapfile.c b/mm/swapfile.c index debc94155f74..e3296ff95648 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -3219,7 +3219,7 @@ SYSCALL_DEFINE2(swapon, const char __user *, specialf= ile, int, swap_flags) error =3D PTR_ERR(page); goto bad_swap_unlock_inode; } - swap_header =3D kmap(page); + swap_header =3D kmap_thread(page); =20 maxpages =3D read_swap_header(p, swap_header, inode); if (unlikely(!maxpages)) { @@ -3395,7 +3395,7 @@ SYSCALL_DEFINE2(swapon, const char __user *, specialf= ile, int, swap_flags) filp_close(swap_file, NULL); out: if (page && !IS_ERR(page)) { - kunmap(page); + kunmap_thread(page); put_page(page); } if (name) diff --git a/mm/userfaultfd.c b/mm/userfaultfd.c index 9a3d451402d7..4d38c881bb2d 100644 --- a/mm/userfaultfd.c +++ b/mm/userfaultfd.c @@ -586,11 +586,11 @@ static __always_inline ssize_t __mcopy_atomic(struct = mm_struct *dst_mm, mmap_read_unlock(dst_mm); BUG_ON(!page); =20 - page_kaddr =3D kmap(page); + page_kaddr =3D kmap_thread(page); err =3D copy_from_user(page_kaddr, (const void __user *) src_addr, PAGE_SIZE); - kunmap(page); + kunmap_thread(page); if (unlikely(err)) { err =3D -EFAULT; goto out; --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273258; cv=none; d=zohomail.com; s=zohoarc; b=WIv7g78C78NPO2iCwdwFmEtmk/pSo1uFJyfbGiLC9tFzLkrceyxibKZl2/Zvdf2mi0DQJs6Ttaf6Ukp5w8q4GJ1DX4TyOJ1ok5tSFpHeyFEfHgG2Z8BYsmrjZCuhYXFxHH4zYWyIZ/lGzsi0UG0v7DWgCI+JkvLomGn7H0sZvYg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273258; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=LxIUVirtIf7GFgRi4xb32We3PfTkH+1lTeZm8mNK484=; b=AfVbkz8h4cTfbNmnFHOlkKE495q1bcxH3Weo+EWnJBpM5Au3xlYv1/D4hNw1guD8WX48wEq2QJzZqF3QE+lGk+lZqHkqFpIfjzV+VhmbUaDfuHaya0TRZTWk7Qp7ME2h5F1q+7Z1YaDs3nAwsIGGzpDq3wXZEXU5OjWs5s1sdAE= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273258054143.15550394758816; Fri, 9 Oct 2020 12:54:18 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5138.13409 (Exim 4.92) (envelope-from ) id 1kQySp-0005xh-Og; Fri, 09 Oct 2020 19:54:03 +0000 Received: by outflank-mailman (output) from mailman id 5138.13409; Fri, 09 Oct 2020 19:54:03 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySp-0005xW-Gv; Fri, 09 Oct 2020 19:54:03 +0000 Received: by outflank-mailman (input) for mailman id 5138; Fri, 09 Oct 2020 19:54:02 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySn-0005Ps-V7 for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:54:01 +0000 Received: from mga06.intel.com (unknown [134.134.136.31]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 661d6fbc-7671-45ed-9247-8eec879818b0; Fri, 09 Oct 2020 19:53:55 +0000 (UTC) Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:54 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:53 -0700 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySn-0005Ps-V7 for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:54:01 +0000 Received: from mga06.intel.com (unknown [134.134.136.31]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 661d6fbc-7671-45ed-9247-8eec879818b0; Fri, 09 Oct 2020 19:53:55 +0000 (UTC) Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:54 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:53 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 661d6fbc-7671-45ed-9247-8eec879818b0 IronPort-SDR: qAwk0eQ+X+LCpDWx3sefcn5lu/8xvuqCwVCgM1HthVzDQ0OnqVQX6aby7qQJevD7rkG95HexiI CPFDGhVgYKVg== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="227179201" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="227179201" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: bZn0Zma13YkX7FJFkNsCYMjMNff2FSiB/MgoUwYT50qMOfu0yRYfZtOtUYx1uwuwPtN+tdFX+r hwly4wq6Ikyg== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="519847271" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Alexander Viro , =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= , Martin KaFai Lau , Song Liu , Yonghong Song , Andrii Nakryiko , John Fastabend , KP Singh , 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 53/58] lib: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:50:28 -0700 Message-Id: <20201009195033.3208459-54-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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable From: Ira Weiny These kmap() calls are localized to a single thread. To avoid the over head of global PKRS updates use the new kmap_thread() call. Cc: Alexander Viro Cc: "J=C3=A9r=C3=B4me Glisse" Cc: Martin KaFai Lau Cc: Song Liu Cc: Yonghong Song Cc: Andrii Nakryiko Cc: John Fastabend Cc: KP Singh Signed-off-by: Ira Weiny --- lib/iov_iter.c | 12 ++++++------ lib/test_bpf.c | 4 ++-- lib/test_hmm.c | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/lib/iov_iter.c b/lib/iov_iter.c index 5e40786c8f12..1d47f957cf95 100644 --- a/lib/iov_iter.c +++ b/lib/iov_iter.c @@ -208,7 +208,7 @@ static size_t copy_page_to_iter_iovec(struct page *page= , size_t offset, size_t b } /* Too bad - revert to non-atomic kmap */ =20 - kaddr =3D kmap(page); + kaddr =3D kmap_thread(page); from =3D kaddr + offset; left =3D copyout(buf, from, copy); copy -=3D left; @@ -225,7 +225,7 @@ static size_t copy_page_to_iter_iovec(struct page *page= , size_t offset, size_t b from +=3D copy; bytes -=3D copy; } - kunmap(page); + kunmap_thread(page); =20 done: if (skip =3D=3D iov->iov_len) { @@ -292,7 +292,7 @@ static size_t copy_page_from_iter_iovec(struct page *pa= ge, size_t offset, size_t } /* Too bad - revert to non-atomic kmap */ =20 - kaddr =3D kmap(page); + kaddr =3D kmap_thread(page); to =3D kaddr + offset; left =3D copyin(to, buf, copy); copy -=3D left; @@ -309,7 +309,7 @@ static size_t copy_page_from_iter_iovec(struct page *pa= ge, size_t offset, size_t to +=3D copy; bytes -=3D copy; } - kunmap(page); + kunmap_thread(page); =20 done: if (skip =3D=3D iov->iov_len) { @@ -1742,10 +1742,10 @@ int iov_iter_for_each_range(struct iov_iter *i, siz= e_t bytes, return 0; =20 iterate_all_kinds(i, bytes, v, -EINVAL, ({ - w.iov_base =3D kmap(v.bv_page) + v.bv_offset; + w.iov_base =3D kmap_thread(v.bv_page) + v.bv_offset; w.iov_len =3D v.bv_len; err =3D f(&w, context); - kunmap(v.bv_page); + kunmap_thread(v.bv_page); err;}), ({ w =3D v; err =3D f(&w, context);}) diff --git a/lib/test_bpf.c b/lib/test_bpf.c index ca7d635bccd9..441f822f56ba 100644 --- a/lib/test_bpf.c +++ b/lib/test_bpf.c @@ -6506,11 +6506,11 @@ static void *generate_test_data(struct bpf_test *te= st, int sub) if (!page) goto err_kfree_skb; =20 - ptr =3D kmap(page); + ptr =3D kmap_thread(page); if (!ptr) goto err_free_page; memcpy(ptr, test->frag_data, MAX_DATA); - kunmap(page); + kunmap_thread(page); skb_add_rx_frag(skb, 0, page, 0, MAX_DATA, MAX_DATA); } =20 diff --git a/lib/test_hmm.c b/lib/test_hmm.c index e7dc3de355b7..e40d26f97f45 100644 --- a/lib/test_hmm.c +++ b/lib/test_hmm.c @@ -329,9 +329,9 @@ static int dmirror_do_read(struct dmirror *dmirror, uns= igned long start, if (!page) return -ENOENT; =20 - tmp =3D kmap(page); + tmp =3D kmap_thread(page); memcpy(ptr, tmp, PAGE_SIZE); - kunmap(page); + kunmap_thread(page); =20 ptr +=3D PAGE_SIZE; bounce->cpages++; @@ -398,9 +398,9 @@ static int dmirror_do_write(struct dmirror *dmirror, un= signed long start, if (!page || xa_pointer_tag(entry) !=3D DPT_XA_TAG_WRITE) return -ENOENT; =20 - tmp =3D kmap(page); + tmp =3D kmap_thread(page); memcpy(tmp, ptr, PAGE_SIZE); - kunmap(page); + kunmap_thread(page); =20 ptr +=3D PAGE_SIZE; bounce->cpages++; --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273261; cv=none; d=zohomail.com; s=zohoarc; b=W5AWn81jN08UuUuMeAQvQgNoka6uyI8kYWmhwL+cORTbQFtHv7K8iwqnrxGsDKO2dxpcueQeJasL54PsQ/QV2sAvV5WENl80mq3Duu7wTykYxrVPqGuA88MbyE0R6JL6oNHslBsKBiFHt+bJblWSi+6gsh/Rq6+O1KO4D811sMY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273261; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=atV5nDkh56HLHTitcWPXrwPa8wPGTJc0V1EgmwsADYM=; b=P00BvB68eZdBCq/0ZH2WfffQtdWS10YMUZV3BD1XY2JtNUTzon9xi0iIB4IrN7xzxJpYEjccnqJwUYmsV4BFD25Z4cM9QFJdCCgej1+BVOvteAcufbxS2WNosh/bbPvOuJfeVKHVL3UdZlCupEqqpugM6bn+6Mt/9BYJgVMWwjg= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273261351600.894536483952; Fri, 9 Oct 2020 12:54:21 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5143.13433 (Exim 4.92) (envelope-from ) id 1kQySu-00067R-Je; Fri, 09 Oct 2020 19:54:08 +0000 Received: by outflank-mailman (output) from mailman id 5143.13433; Fri, 09 Oct 2020 19:54:08 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySu-00067E-Dm; Fri, 09 Oct 2020 19:54:08 +0000 Received: by outflank-mailman (input) for mailman id 5143; Fri, 09 Oct 2020 19:54:07 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySs-0005Ps-VI for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:54:06 +0000 Received: from mga09.intel.com (unknown [134.134.136.24]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id e8c6ff98-ebe7-4d7f-bc01-8468e7bda959; Fri, 09 Oct 2020 19:53:58 +0000 (UTC) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:57 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:56 -0700 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySs-0005Ps-VI for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:54:06 +0000 Received: from mga09.intel.com (unknown [134.134.136.24]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id e8c6ff98-ebe7-4d7f-bc01-8468e7bda959; Fri, 09 Oct 2020 19:53:58 +0000 (UTC) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:57 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:53:56 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: e8c6ff98-ebe7-4d7f-bc01-8468e7bda959 IronPort-SDR: N/ixrEFoutZgbXM/AHGDsQNxC1kA56LAqAWK8DPr3GIxlNVz/5LTOSXL4du4Kmk5VTXL5D8VII cnjVp56u10vA== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="165643384" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="165643384" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: I2dap8dqfU4jkUPjfDUEInlXytro00aRpG9kPai7q+149QpAXJ//5ZcvM1PB/3zTdLq6ZFWD0B HAucu70KNsIA== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="343972515" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Benjamin Herrenschmidt , Paul Mackerras , 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 54/58] powerpc: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:50:29 -0700 Message-Id: <20201009195033.3208459-55-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny These kmap() calls are localized to a single thread. To avoid the over head of global PKRS updates use the new kmap_thread() call. Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Signed-off-by: Ira Weiny --- arch/powerpc/mm/mem.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c index 42e25874f5a8..6ef557b8dda6 100644 --- a/arch/powerpc/mm/mem.c +++ b/arch/powerpc/mm/mem.c @@ -573,9 +573,9 @@ void flush_icache_user_page(struct vm_area_struct *vma,= struct page *page, { unsigned long maddr; =20 - maddr =3D (unsigned long) kmap(page) + (addr & ~PAGE_MASK); + maddr =3D (unsigned long) kmap_thread(page) + (addr & ~PAGE_MASK); flush_icache_range(maddr, maddr + len); - kunmap(page); + kunmap_thread(page); } =20 /* --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273259; cv=none; d=zohomail.com; s=zohoarc; b=ednyECy1I1FWtw0jri1219g3Xs8kTzXkMyde3Mq5MkiwgtDTaEphT2xhqudLIstrX67iBZcoBVcwQcGRjZ7iyqhaHaSIyX0VslVFXkpHiR3VQD+WpqKKDPK+1izmgUa24fTQuASjyq/5ioanu53BVpwDllvExR5OLNgTq1qS+Ms= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273259; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=vMd+K0j/SwmBbJFHAehTTW6xOz814BSeMFTE1lEGRe8=; b=nFgGe90Ixvnt6ACLEnJCB+ahShY9wzZKEw1x3kXr1gJNV5RtW/0GPf19gYQIN6IxcsCAON7fu2Lmb0ZwRkCXFU8tG8bvoWm52n+9NmK1ZMEd+lIqhEWwFGDHfSzOezPu5qXr696fkgnEaE16eyPgyp5onkpmslNMPm7498zs1LA= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273259601109.74627633141881; Fri, 9 Oct 2020 12:54:19 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5139.13414 (Exim 4.92) (envelope-from ) id 1kQySq-0005yl-6X; Fri, 09 Oct 2020 19:54:04 +0000 Received: by outflank-mailman (output) from mailman id 5139.13414; Fri, 09 Oct 2020 19:54:04 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySp-0005yK-U0; Fri, 09 Oct 2020 19:54:03 +0000 Received: by outflank-mailman (input) for mailman id 5139; Fri, 09 Oct 2020 19:54:03 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySp-0005x6-8P for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:54:03 +0000 Received: from mga12.intel.com (unknown [192.55.52.136]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id f6f54446-46d1-4920-a493-c209ac9ecba7; Fri, 09 Oct 2020 19:54:02 +0000 (UTC) Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:54:01 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:54:00 -0700 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySp-0005x6-8P for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:54:03 +0000 Received: from mga12.intel.com (unknown [192.55.52.136]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id f6f54446-46d1-4920-a493-c209ac9ecba7; Fri, 09 Oct 2020 19:54:02 +0000 (UTC) Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:54:01 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:54:00 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: f6f54446-46d1-4920-a493-c209ac9ecba7 IronPort-SDR: s702jsQClR22uyUIa1DJCn3AxvMbIytbcDnPsENmUbh0L/kV/PkPNi2T5tmbu+/56fcl6uR0LT +MZiIYckw7Rw== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="144851103" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="144851103" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: vscQ8/PPGEHFzlszF4epup1/yO0Zdiea6PUky2hcTMxo6TNU67DufPr1A76ntRogBKZEHAEf8L bsjRzl3g/9bQ== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="529054196" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , Kirti Wankhede , 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 55/58] samples: Utilize new kmap_thread() Date: Fri, 9 Oct 2020 12:50:30 -0700 Message-Id: <20201009195033.3208459-56-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny These kmap() calls are localized to a single thread. To avoid the over head of global PKRS updates use the new kmap_thread() call. Cc: Kirti Wankhede Signed-off-by: Ira Weiny --- samples/vfio-mdev/mbochs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/vfio-mdev/mbochs.c b/samples/vfio-mdev/mbochs.c index 3cc5e5921682..6d95422c0b46 100644 --- a/samples/vfio-mdev/mbochs.c +++ b/samples/vfio-mdev/mbochs.c @@ -479,12 +479,12 @@ static ssize_t mdev_access(struct mdev_device *mdev, = char *buf, size_t count, pos -=3D MBOCHS_MMIO_BAR_OFFSET; poff =3D pos & ~PAGE_MASK; pg =3D __mbochs_get_page(mdev_state, pos >> PAGE_SHIFT); - map =3D kmap(pg); + map =3D kmap_thread(pg); if (is_write) memcpy(map + poff, buf, count); else memcpy(buf, map + poff, count); - kunmap(pg); + kunmap_thread(pg); put_page(pg); =20 } else { --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273266; cv=none; d=zohomail.com; s=zohoarc; b=MMetEGUQGnialIgipaFn0oilyZm6ylR9RBeMP9Br8Bw0YUoymB+C0oyFIpJga6YbpBWpxAjV8Udq0IXuPMYKqBCP7kb7Ronn0iSrSzIZqA1HiiYaUCs3m874XNR0OeWMWdLQ8Cp5a8Fa8Pva5ObaByFYGS36DLSIzmn1mwu1IHI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273266; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Cds4+JszdD6fKEWddCf/cFxVEOgX+d1DlbrAjq4X3vE=; b=B1UIJsSL5cA/jGvlc+sVIr3QRkVuobuDjefzCLwwUezC3854q2+TOSidDLLLw2RVoaN49mSLfetPqRf/QtpnpoVDXpcqFPABJf18ysi2z4Dh31HgTUfN6AvpyuWwnwuYWYBfP+/Y41hkAwe6vIb8073tqqH/z50sRCqQ7lH9Zxs= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273266000371.39198079161747; Fri, 9 Oct 2020 12:54:26 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5144.13441 (Exim 4.92) (envelope-from ) id 1kQySv-00068x-CN; Fri, 09 Oct 2020 19:54:09 +0000 Received: by outflank-mailman (output) from mailman id 5144.13441; Fri, 09 Oct 2020 19:54:09 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySu-00068W-U6; Fri, 09 Oct 2020 19:54:08 +0000 Received: by outflank-mailman (input) for mailman id 5144; Fri, 09 Oct 2020 19:54:07 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySt-0005x6-77 for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:54:07 +0000 Received: from mga01.intel.com (unknown [192.55.52.88]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id b5bc4318-9a41-4b0b-bc6e-214ad03ae863; Fri, 09 Oct 2020 19:54:06 +0000 (UTC) Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:54:04 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:54:03 -0700 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySt-0005x6-77 for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:54:07 +0000 Received: from mga01.intel.com (unknown [192.55.52.88]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id b5bc4318-9a41-4b0b-bc6e-214ad03ae863; Fri, 09 Oct 2020 19:54:06 +0000 (UTC) Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:54:04 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:54:03 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: b5bc4318-9a41-4b0b-bc6e-214ad03ae863 IronPort-SDR: c5c8lWx53OKNfJTf5ukBb57x4xGzHo3/RsCiYSxlMsrD0E9zKISdhlW1OfiP938gwC0kIn9Ony mzjXzkcVlXMQ== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="182976549" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="182976549" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: NEiErKYZfPZGqrWyxIZ0z43ef9+IKjrcXd9NJIRckxXQwdDEMd5poh/dknsqhifod6Ym/UoaZd Mu4h9c7DJvbA== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="462301216" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , 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 56/58] dax: Stray access protection for dax_direct_access() Date: Fri, 9 Oct 2020 12:50:31 -0700 Message-Id: <20201009195033.3208459-57-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny dax_direct_access() is a special case of accessing pmem via a page offset and without a struct page. Because the dax driver is well aware of the special protections it has mapped memory with, call dev_access_[en|dis]able() directly instead of the unnecessary overhead of trying to get a page to kmap. Similar to kmap, we leverage existing functions, dax_read_[un]lock(), because they are already required to surround the use of the memory returned from dax_direct_access(). Signed-off-by: Ira Weiny --- drivers/dax/super.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/dax/super.c b/drivers/dax/super.c index e84070b55463..0ddb3ee73e36 100644 --- a/drivers/dax/super.c +++ b/drivers/dax/super.c @@ -30,6 +30,7 @@ static DEFINE_SPINLOCK(dax_host_lock); =20 int dax_read_lock(void) { + dev_access_enable(false); return srcu_read_lock(&dax_srcu); } EXPORT_SYMBOL_GPL(dax_read_lock); @@ -37,6 +38,7 @@ EXPORT_SYMBOL_GPL(dax_read_lock); void dax_read_unlock(int id) { srcu_read_unlock(&dax_srcu, id); + dev_access_disable(false); } EXPORT_SYMBOL_GPL(dax_read_unlock); =20 --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273266; cv=none; d=zohomail.com; s=zohoarc; b=IKXHD1SV5krNMkReqcJcbcGexf2XYAbW/EZfBdCAFWmSZeRuJ/jpZVV/LlIA2CTYaYnO2bkn3gwwSwWpvLDoPFCAnUNzSURylmwgnnjZL0Gk5UDPagCNv002DKkCWWeaVrdX+TL885zuoegEtw5kGTUKHIvO636j2qUxTvxG654= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273266; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=nAcApbTuHNvexDy6MnL+FDxzHaL/eZ+GQDmnJGnP7ic=; b=SNyYKhBh08oHQZJJ3PDl83HdUePgYJTQKrohy2QB8X22wrjPAM/PuDdKzmDdd7eM20HBuUzjifOJ7mp9+Gb4MnXAGsf7bScqeJ+XLKXkdS2idyhsOlLj8O97o1azixmzT0BM8+luHfWquW66Ykv/WCZ5ApAx9Lh0YmXNtmGIjZA= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273266723875.2628195827641; Fri, 9 Oct 2020 12:54:26 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5147.13457 (Exim 4.92) (envelope-from ) id 1kQySz-0006IM-Rx; Fri, 09 Oct 2020 19:54:13 +0000 Received: by outflank-mailman (output) from mailman id 5147.13457; Fri, 09 Oct 2020 19:54:13 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySz-0006I9-L6; Fri, 09 Oct 2020 19:54:13 +0000 Received: by outflank-mailman (input) for mailman id 5147; Fri, 09 Oct 2020 19:54:12 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySx-0005Ps-VW for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:54:12 +0000 Received: from mga06.intel.com (unknown [134.134.136.31]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id aeeae19a-7896-4128-97d7-8714610ab44e; Fri, 09 Oct 2020 19:54:08 +0000 (UTC) Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:54:07 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:54:06 -0700 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySx-0005Ps-VW for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:54:12 +0000 Received: from mga06.intel.com (unknown [134.134.136.31]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id aeeae19a-7896-4128-97d7-8714610ab44e; Fri, 09 Oct 2020 19:54:08 +0000 (UTC) Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:54:07 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:54:06 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: aeeae19a-7896-4128-97d7-8714610ab44e IronPort-SDR: H8bQ2F75ooVY2NRJCpX/U8qZHkgTS9+a84f9GqjJMTf/7sPa785KonRZXlZZdluWAAn3WcHYds KcVwzJGbiUfg== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="227179229" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="227179229" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: src9VKOvZKZdzmhAmOplZF/CbXKWViy2IZEce2k3Dk75HVdMa01qWYEbu8ywq24hGpakhLlrfI iYxmJaXcxtuw== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="519847335" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , 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 57/58] nvdimm/pmem: Stray access protection for pmem->virt_addr Date: Fri, 9 Oct 2020 12:50:32 -0700 Message-Id: <20201009195033.3208459-58-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny The pmem driver uses a cached virtual address to access its memory directly. Because the nvdimm driver is well aware of the special protections it has mapped memory with, we call dev_access_[en|dis]able() around the direct pmem->virt_addr (pmem_addr) usage instead of the unnecessary overhead of trying to get a page to kmap. Signed-off-by: Ira Weiny --- drivers/nvdimm/pmem.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/nvdimm/pmem.c b/drivers/nvdimm/pmem.c index fab29b514372..e4dc1ae990fc 100644 --- a/drivers/nvdimm/pmem.c +++ b/drivers/nvdimm/pmem.c @@ -148,7 +148,9 @@ static blk_status_t pmem_do_read(struct pmem_device *pm= em, if (unlikely(is_bad_pmem(&pmem->bb, sector, len))) return BLK_STS_IOERR; =20 + dev_access_enable(false); rc =3D read_pmem(page, page_off, pmem_addr, len); + dev_access_disable(false); flush_dcache_page(page); return rc; } @@ -180,11 +182,13 @@ static blk_status_t pmem_do_write(struct pmem_device = *pmem, * after clear poison. */ flush_dcache_page(page); + dev_access_enable(false); write_pmem(pmem_addr, page, page_off, len); if (unlikely(bad_pmem)) { rc =3D pmem_clear_poison(pmem, pmem_off, len); write_pmem(pmem_addr, page, page_off, len); } + dev_access_disable(false); =20 return rc; } --=20 2.28.0.rc0.12.gb6a658bd00c9 From nobody Fri Apr 26 00:16:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1602273268; cv=none; d=zohomail.com; s=zohoarc; b=l1IsrPqwlPLp93+dfp93z3oZwWR5aEMJJkVXw7zZvN6nfciuTHP/nuCTsmFBIhOvrIaKCiUs4dJmewY7c+bEvQSt3cFpvh/d5QacIYtXmKExmGkvzZGdNZ99X1x0wU0YIz3IV0V7XmVZTuAXOFRebBDaAQmGgVbv18amhNl8KnA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602273268; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ezPFVQ9vruey7ZxyB/8VBQee+N11zVdxSsYoMeSFkhA=; b=bnPL53sL67h5ri/fVsmT601X98AsoZNNU/IYSSdfstuOwz2E1IOXJH58hkxCReIDUw2LJ1dk7Qc7j0fIq2JL5ChhSBTCb/8hHBmOfBCT7EfvT+hErujl9KwTbWOnGwJp9q0c9EwRqhJ9Q7AcVmHAN739pqeplF7WZoW+YfzBBD8= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1602273268526332.6115013719908; Fri, 9 Oct 2020 12:54:28 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.5148.13464 (Exim 4.92) (envelope-from ) id 1kQyT0-0006Jx-FD; Fri, 09 Oct 2020 19:54:14 +0000 Received: by outflank-mailman (output) from mailman id 5148.13464; Fri, 09 Oct 2020 19:54:14 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQyT0-0006JE-31; Fri, 09 Oct 2020 19:54:14 +0000 Received: by outflank-mailman (input) for mailman id 5148; Fri, 09 Oct 2020 19:54:12 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySy-0005x6-7b for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:54:12 +0000 Received: from mga03.intel.com (unknown [134.134.136.65]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 8081570c-b6c3-4219-88e1-68789d0e79c4; Fri, 09 Oct 2020 19:54:11 +0000 (UTC) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:54:10 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:54:09 -0700 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQySy-0005x6-7b for xen-devel@lists.xenproject.org; Fri, 09 Oct 2020 19:54:12 +0000 Received: from mga03.intel.com (unknown [134.134.136.65]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 8081570c-b6c3-4219-88e1-68789d0e79c4; Fri, 09 Oct 2020 19:54:11 +0000 (UTC) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:54:10 -0700 Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 12:54:09 -0700 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 8081570c-b6c3-4219-88e1-68789d0e79c4 IronPort-SDR: c08hdHvc6ybHobwQ+D0UVX/9ZHOzfQiZb2ianlX2khVfGVs+sgixO1byrqO2vOAn/X1rge7y3h hITAoUY46rQg== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="165592594" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="165592594" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False IronPort-SDR: LoljxrxdEbdUiebRGt6guGtjo6SPfpWGHMJuLgTgYB7BeDU8CJtiGau7DzbQyZ+Y5gpHVnCtT5 urTwCEpflSRg== X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="343972696" From: ira.weiny@intel.com To: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , 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 58/58] [dax|pmem]: Enable stray access protection Date: Fri, 9 Oct 2020 12:50:33 -0700 Message-Id: <20201009195033.3208459-59-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 Content-Type: text/plain; charset="utf-8" From: Ira Weiny Protecting against stray writes is particularly important for PMEM because, unlike writes to anonymous memory, writes to PMEM persists across a reboot. Thus data corruption could result in permanent loss of data. While stray writes are more serious than reads, protection is also enabled for reads. This helps to detect bugs in code which would incorrectly access device memory and prevents a more serious machine checks should those bug reads from a poison page. Enable stray access protection by setting the flag in pgmap which requests it. There is no option presented to the user. If Zone Device Access Protection not be supported this flag will have no affect. Signed-off-by: Ira Weiny --- drivers/dax/device.c | 2 ++ drivers/nvdimm/pmem.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/drivers/dax/device.c b/drivers/dax/device.c index 1e89513f3c59..e6fb35b4f0fb 100644 --- a/drivers/dax/device.c +++ b/drivers/dax/device.c @@ -430,6 +430,8 @@ int dev_dax_probe(struct device *dev) } =20 dev_dax->pgmap.type =3D MEMORY_DEVICE_GENERIC; + dev_dax->pgmap.flags |=3D PGMAP_PROT_ENABLED; + addr =3D devm_memremap_pages(dev, &dev_dax->pgmap); if (IS_ERR(addr)) return PTR_ERR(addr); diff --git a/drivers/nvdimm/pmem.c b/drivers/nvdimm/pmem.c index e4dc1ae990fc..9fcd8338e23f 100644 --- a/drivers/nvdimm/pmem.c +++ b/drivers/nvdimm/pmem.c @@ -426,6 +426,8 @@ static int pmem_attach_disk(struct device *dev, return -EBUSY; } =20 + pmem->pgmap.flags |=3D PGMAP_PROT_ENABLED; + q =3D blk_alloc_queue(dev_to_node(dev)); if (!q) return -ENOMEM; --=20 2.28.0.rc0.12.gb6a658bd00c9