From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 622CBC4167B for ; Mon, 27 Nov 2023 16:01:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EB33C6B02C8; Mon, 27 Nov 2023 11:01:16 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E637C6B02C9; Mon, 27 Nov 2023 11:01:16 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D52776B02CE; Mon, 27 Nov 2023 11:01:16 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id C45726B02C8 for ; Mon, 27 Nov 2023 11:01:16 -0500 (EST) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 37C50C0397 for ; Mon, 27 Nov 2023 16:01:16 +0000 (UTC) X-FDA: 81504198552.20.E6277EC Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.151]) by imf07.hostedemail.com (Postfix) with ESMTP id 570D840069 for ; Mon, 27 Nov 2023 16:00:52 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=Ba4MNb5G; spf=none (imf07.hostedemail.com: domain of fabio.maria.de.francesco@linux.intel.com has no SPF policy when checking 192.55.52.151) smtp.mailfrom=fabio.maria.de.francesco@linux.intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1701100853; a=rsa-sha256; cv=none; b=mWgDCNxSAtWGcXQwDWPC7r69D2dts99Gd/QsLJC3V9HMZTLa/KnKpXSFLpbzBMvV20K+e1 zRCG7elj17TNSk37YIgoOHIsMkymL0aJ7Z18yJoXv/i5tRqsq+YFL5d58pSYQxBMmXsdz9 K1PgER4DTFRvmPk/AUKSVRxmq0e+IAE= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=Ba4MNb5G; spf=none (imf07.hostedemail.com: domain of fabio.maria.de.francesco@linux.intel.com has no SPF policy when checking 192.55.52.151) smtp.mailfrom=fabio.maria.de.francesco@linux.intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1701100853; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=3z/HhipTL8gIH6MpgtOBFieGOa/xU0CATrDv3uXEc/I=; b=UWuBaLqirj5iXLtjA6YICaLTc7VRPgD27ZelLh2XgV0s10G7/NoFMI4qEYPy9pYQhXuJpp JC6HL4rOoH1n/um/QBCFivH2ZbBm9ZudHXgR87TE7vwBRRjNkpPxBZQHNi0+buPviDhnVT ABF/60jtl7xE1y6fRtSonV7+LvIL0rs= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1701100853; x=1732636853; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=c2cu0vMGg8Ol2YSa4yfd/4bw6RpgEUsUJKa+9vCAoF0=; b=Ba4MNb5Gxesaof+RKI4ICtBXLBV0xI1TwvUc6Fe8Cj+ZWZiiNgeyl8he XIO3HaqC9xE9M6WROc4oOx4jBsjOWfSilsrYrarRHIsMICQMSxHYMnhcG CKpBPRoqcvMt2tD+rTN+lUkXPsuF93xz3hMD4jVPZ4W9A+pjl5UQjcZRv L48WLFhw90Wrn+XU86JzAjcDloZUNResAgf5C+vBU3UNTqas1SGqFqcxU Hl2r0cfWdJDHm8mabn9p22J+PWmPOHXTQlarVs5wpsxjw16IbNsOSd5Fc baW4i1jYrEfLvtSJgL8gmkAh2EvgjmzyAxrDJbeiREUc/reyPcw/Gh2He w==; X-IronPort-AV: E=McAfee;i="6600,9927,10907"; a="372901012" X-IronPort-AV: E=Sophos;i="6.04,231,1695711600"; d="scan'208";a="372901012" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Nov 2023 08:00:50 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10907"; a="1015611212" X-IronPort-AV: E=Sophos;i="6.04,231,1695711600"; d="scan'208";a="1015611212" Received: from fdefranc-mobl3.ger.corp.intel.com (HELO fdefranc-mobl3.localnet) ([10.213.15.40]) by fmsmga006-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Nov 2023 08:00:48 -0800 From: "Fabio M. De Francesco" To: Seth Jennings , Dan Streetman , Vitaly Wool , Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: Ira Weiny Subject: Re: [PATCH 1007/1007] mm/zswap: Replace kmap_atomic() with kmap_local_page() Date: Mon, 27 Nov 2023 17:00:46 +0100 Message-ID: <4529535.LvFx2qVVIh@fdefranc-mobl3> Organization: intel In-Reply-To: <20231127154636.585898-1-fabio.maria.de.francesco@linux.intel.com> References: <20231127154636.585898-1-fabio.maria.de.francesco@linux.intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 570D840069 X-Stat-Signature: w8miphsbyyn87zft5hrr8q97c7wpbwbi X-Rspam-User: X-HE-Tag: 1701100852-660746 X-HE-Meta: U2FsdGVkX18ZxOhMgKVNixJtMElLDLZG9dWboGnsFWwpmd+5rlg9p+K3Koj6hLAz58l67tG7zo6iAweLoHZpnrP3NdMVcZw2afiRRZsNk9CEMnhx6wiBkAGt3ZG9+SNxgnlbGUXytCE22FcOpDrZWhFu+fEXWOzAympcJC4pSmEna+x+pDX1TvhOqR868KA0enS55IcNXsSzehxZAHERjG9nFmm3rkqnumK0eNCU8tMaJDeL35xjI1WzFKNrDp6yekiCT0Ac/3TokFwju/6N7hhzY6h0UpvkUyKBb4oC/32LY2ApfpQQJscF32ePiW9v6of4qc4K4QDdk4F7gg7z7kyG5VPXmKvTxnHsszuVZBrmlsRM/arq7UyMxoDi/QnEq042Q41b+UMrLqYqQ7e4JmQh8t2dYpG0cNrK16wTlftKvIE1TiJ5P2uZVFhXbKD/5rYvghqsYXmNVKk3u36owk5LnvS82iwCz1Z2nHLzmbEYjGssKsl4lCKVj5UBrKBT4IVDQUPIMCjLzNny5NOdRKVHQbXolGpBBgGX23A2uj59CZg5llrdSfRETDL96vhsiTyJbOg0HVcK+otftHlh6yTV5P+MwEGAzT2nkQwzwqQs4CPrKId+swmhwcXCy5qQJBKOFlW/3cYA+4/maXPBUT8NUbRyaFLm9DhxDAzicTk32hmx91yqTKlX0w6ns49K/uO6E+x7bTYieX7EWOnW2ueJv3hAyp9Ig432LsYGpAmxxTc4sF4SaO5MGKnxoMt7VRzlHnmTaCGkdUD84D6vCz6L94EEwxtLvO8ABcOmqMUV7z81dFKsTLpxndVDcD2seOaDVnQtuIaYy+woLbb4/w4iqRZQghijN4CO6nbMkEu57F0F3fz8LGulJ22sjFSmrqI+YcGFCRyfgjgTizdlakXwxH30wr8HMayJdQQQGZ09xU+Lre5+8P1sqWtbyRqoUVakOi5qRkupVArQvGT MQ71DzAK MAkj7uLV2AB923UbOuD78jlN3v4pbafG0N3KO6yyTKl6M19YqeLUAE//8N4/Ipm4xVWXo99T3iyH+b/47hLNaNDTjnVfciw4G/QOjEe7n3HOdniWHrJADGfxkNGrCU8uUhETmjLkFL0a+obuXxhcnjAeaVheKwdxAzCGyEGJZc+ObCQjhr6MtB0YWBvRB0A7waR4qmOop/STvv4NaNXHwMHl5ydehf1UsLjPs0mKZEB+0Hkp47UMJG4fT8ffmXIbloHlW X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Please discard this patch for a mistake in the subject. Fabio On Monday, 27 November 2023 16:46:22 CET Fabio M. De Francesco wrote: > kmap_atomic() has been deprecated in favor of kmap_local_page(). > > Therefore, replace kmap_atomic() with kmap_local_page() in > zswap.c. > > kmap_atomic() is implemented like a kmap_local_page() which also > disables page-faults and preemption (the latter only in !PREEMPT_RT > kernels). The kernel virtual addresses returned by these two API are > only valid in the context of the callers (i.e., they cannot be handed to > other threads). > > With kmap_local_page() the mappings are per thread and CPU local like > in kmap_atomic(); however, they can handle page-faults and can be called > from any context (including interrupts). The tasks that call > kmap_local_page() can be preempted and, when they are scheduled to run > again, the kernel virtual addresses are restored and are still valid. > > In mm/zswap.c, the blocks of code between the mappings and un-mappings > do not depend on the above-mentioned side effects of kmap_aatomic(), so > that the mere replacements of the old API with the new one is all that is > required (i.e., there is no need to explicitly call pagefault_disable() > and/or preempt_disable()). > > Cc: Ira Weiny > Signed-off-by: Fabio M. De Francesco > --- > mm/zswap.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/mm/zswap.c b/mm/zswap.c > index 74411dfdad92..699c6ee11222 100644 > --- a/mm/zswap.c > +++ b/mm/zswap.c > @@ -1267,16 +1267,16 @@ bool zswap_store(struct folio *folio) > } > > if (zswap_same_filled_pages_enabled) { > - src = kmap_atomic(page); > + src = kmap_local_page(page); > if (zswap_is_page_same_filled(src, &value)) { > - kunmap_atomic(src); > + kunmap_local(src); > entry->swpentry = swp_entry(type, offset); > entry->length = 0; > entry->value = value; > atomic_inc(&zswap_same_filled_pages); > goto insert_entry; > } > - kunmap_atomic(src); > + kunmap_local(src); > } > > if (!zswap_non_same_filled_pages_enabled) > @@ -1422,9 +1422,9 @@ bool zswap_load(struct folio *folio) > spin_unlock(&tree->lock); > > if (!entry->length) { > - dst = kmap_atomic(page); > + dst = kmap_local_page(page); > zswap_fill_page(dst, entry->value); > - kunmap_atomic(dst); > + kunmap_local(dst); > ret = true; > goto stats; > }