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 2F922C2BD09 for ; Tue, 9 Jul 2024 08:06:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B9A476B0096; Tue, 9 Jul 2024 04:06:14 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B225C6B0099; Tue, 9 Jul 2024 04:06:14 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9EAAB6B009D; Tue, 9 Jul 2024 04:06:14 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 7C8716B0096 for ; Tue, 9 Jul 2024 04:06:14 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 2A7E6A1761 for ; Tue, 9 Jul 2024 08:06:14 +0000 (UTC) X-FDA: 82319481468.22.21B49A9 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf07.hostedemail.com (Postfix) with ESMTP id 17E4A40003 for ; Tue, 9 Jul 2024 08:06:11 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=none; spf=pass (imf07.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com; dmarc=pass (policy=none) header.from=arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1720512358; 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; bh=881MhLWba6VNbfAX9wrV/g39RTfuJKU9rWAe5H+Djkg=; b=K6p3pbVCamhjhg4EistWwnoGKAUfTZTVdEILKvuUCrhyIsExFZLgZesxTlxJrrKzSSarEK CKZbZJQxYCOyOM/Fs9tYxEQP0lg/rUZr/AgG/PzQOauMZyVIsCffHmRvpeoQNYUFTQ5Nx4 IC7jhrcD3su9S6zdZ6DSkJEf7viJ8MY= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=none; spf=pass (imf07.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com; dmarc=pass (policy=none) header.from=arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1720512358; a=rsa-sha256; cv=none; b=G3jS5gPZWrO3cREsYLWXYCOUOwGFhuPJ7kNRbKEQHGrTz68dvXDsVctOUMdOA/ATsHsQaU S8iLnl7kYW1Nf2Kh5U9s3tzhfHsNM5GS03WVX8oMEzz7QmRVY2hctBMVBpy5Ls6Dq1/Rzf aMRiX7Vl9z+3ujXfToK7TnXNtImIwLI= Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 4EA8E139F; Tue, 9 Jul 2024 01:06:36 -0700 (PDT) Received: from [10.57.76.194] (unknown [10.57.76.194]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 50F033F762; Tue, 9 Jul 2024 01:06:09 -0700 (PDT) Message-ID: <5dcfd3e6-ce76-4243-8a37-ad83f8335eda@arm.com> Date: Tue, 9 Jul 2024 09:06:07 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2] mm: Extend 'usage' parameter so that cluster_swap_free_nr() can be reused Content-Language: en-GB To: Barry Song <21cnbao@gmail.com>, akpm@linux-foundation.org, linux-mm@kvack.org Cc: chrisl@kernel.org, david@redhat.com, hanchuanhua@oppo.com, kasong@tencent.com, linux-kernel@vger.kernel.org, v-songbaohua@oppo.com, ying.huang@intel.com References: <20240709012122.16994-1-21cnbao@gmail.com> From: Ryan Roberts In-Reply-To: <20240709012122.16994-1-21cnbao@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 17E4A40003 X-Stat-Signature: jp4fcxfb751hoi8w8g15zqs6sk53tr45 X-HE-Tag: 1720512371-248386 X-HE-Meta: U2FsdGVkX1+drm+1etNXt3kXR+2Nwi2nLMUZ/zrddM9zjzlfDvcqXy8W8XEiejDzh4gv7z2cj+aynC6pSDlSQBq5tUbC5r/mXrUqwVaZvO09XnoK5GDlZTtLNmcjjpDYleGTqLLHiFgxLaxQ/h8tnq0HbU0e+69F5iZ47p098VCnoezauwsHO01Y+1SCVtXuUFZGxkl/7DEFAV5zBuFpYb8TX2xL6w0TQYUCzOBzaH5KFmujbl6khqrdFbHX2CYbdQGpV3SP+Nbe6LnIZveKF0oMdKjLjanD+wPIs3GmBl64xpnbCnOmZD48mW2QfpT20EKOEV4OJgrVQczywQeZq2v2Pg+TPgGPY4txlvq+EyQbjndSORa1Qx8HJY+JyiBQI6PDqHVfy73C2LlYEldK51mBgkudQ5UTyO+gio5Ua4O2LrkPnlbHPxj6u4t31bHN/W2aFcTeiASV7y5WFTGySxXJIcIVAGCPIOZsdGU6xLcgKPP0kLeHiV8itkxXE2WMBnIuv/ZNPSc0JML16Z1BTgIQuDXRpRH3tzlg5PEQxCXHzIwAveAJJHOVAzTmdC/MIZunNz6dur16iuOBDceY3cJu5Ti/zf3F+meBEFjYGzHN0snUYcWzRnYovR73IzH4fmObzBtvC7qlxpkT5JG+FSI+6/yqRTIEkPFAMmZnaMWTQ5ArfYViATawOnPnySGWfL8dPm8hYeotpJ6v0lwrmxIuk6Td15qrJOBKSHw4L7+yQe5/EEMv3HXXYH/oRxF8Dz4HLR7Nd/r4EQ3t2T8atePdmOsZsZt5LuEAlIq9WPfQWQ7WU7Rh4g1tcHBJzaGdwBWkCXhGihDfRcC9PLKE/QpOLW8osjG7xG/nyXOeKKeKl8+rhv+NGjCkTXcm4chCotbpx58mEyElR3GEUVvVhnM2VuyCZMFRkcD5Xh69tECAo5ewT/wzAUO7kdChIQIxKPImFGlSZf9nu3bLelM OlWE259u IzGpEFD76cQ60h/fsSCEDq1HtftJe2cTa5B+m4HSYjPlVjpmR95Ic2tnbkKMAkVRPzL3AvhX5zgK6h2li7XnJES1r+Qy5HcFLTnC7MBQq4ArpNQFaQCtjbMOOJu3uuSRN2HKU++vCy8ra7j0z88Oa5QaC0ass5o3O9oDBHsy09DQIrSI8fPcIgec3Bcoz1yr5/gO2loJQudQzTlYCFal0NUQ1DAulzkqQ9EnrEOQl1G1JeSMVUPdt8XkEJDV2sNp6gYimRV+kItttDrSGO8SWnumJriaC95OmGv4J9wDE53T8lm6Fhr3tVY4YfJ2Jfolk6bBf+emn1XQ45FR7/1EqlcS2H//2cqv8DUsbKuILr6kcU4UyRUB7XHtLqZLentkeXZF9Vi/Ril5HDlyFSSc3r/P/uGf36jkF01MlzhDU4K7YLGr4IWszJXVv71rQA3vViLa1Xy8kG9F1zm7Muv1N2HsXvqPDgM3mADsj 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: On 09/07/2024 02:21, Barry Song wrote: > From: Barry Song > > Extend a usage parameter so that cluster_swap_free_nr() can be reused by > both swapcache_clear() and swap_free(). > __swap_entry_free() is quite similar but more tricky as it requires the > return value of __swap_entry_free_locked() which cluster_swap_free_nr() > doesn't support. > > Cc: "Huang, Ying" > Cc: Chris Li > Cc: Ryan Roberts > Cc: Kairui Song > Cc: David Hildenbrand > Cc: Chuanhua Han > Signed-off-by: Barry Song LGTM! Reviewed-by: Ryan Roberts > --- > mm/swapfile.c | 15 +++++---------- > 1 file changed, 5 insertions(+), 10 deletions(-) > > diff --git a/mm/swapfile.c b/mm/swapfile.c > index f7224bc1320c..c097c513db02 100644 > --- a/mm/swapfile.c > +++ b/mm/swapfile.c > @@ -1352,7 +1352,8 @@ static void swap_entry_free(struct swap_info_struct *p, swp_entry_t entry) > } > > static void cluster_swap_free_nr(struct swap_info_struct *sis, > - unsigned long offset, int nr_pages) > + unsigned long offset, int nr_pages, > + unsigned char usage) > { > struct swap_cluster_info *ci; > DECLARE_BITMAP(to_free, BITS_PER_LONG) = { 0 }; > @@ -1362,7 +1363,7 @@ static void cluster_swap_free_nr(struct swap_info_struct *sis, > while (nr_pages) { > nr = min(BITS_PER_LONG, nr_pages); > for (i = 0; i < nr; i++) { > - if (!__swap_entry_free_locked(sis, offset + i, 1)) > + if (!__swap_entry_free_locked(sis, offset + i, usage)) > bitmap_set(to_free, i, 1); > } > if (!bitmap_empty(to_free, BITS_PER_LONG)) { > @@ -1396,7 +1397,7 @@ void swap_free_nr(swp_entry_t entry, int nr_pages) > > while (nr_pages) { > nr = min_t(int, nr_pages, SWAPFILE_CLUSTER - offset % SWAPFILE_CLUSTER); > - cluster_swap_free_nr(sis, offset, nr); > + cluster_swap_free_nr(sis, offset, nr, 1); > offset += nr; > nr_pages -= nr; > } > @@ -3492,15 +3493,9 @@ int swapcache_prepare(swp_entry_t entry) > > void swapcache_clear(struct swap_info_struct *si, swp_entry_t entry) > { > - struct swap_cluster_info *ci; > unsigned long offset = swp_offset(entry); > - unsigned char usage; > > - ci = lock_cluster_or_swap_info(si, offset); > - usage = __swap_entry_free_locked(si, offset, SWAP_HAS_CACHE); > - unlock_cluster_or_swap_info(si, ci); > - if (!usage) > - free_swap_slot(entry); > + cluster_swap_free_nr(si, offset, 1, SWAP_HAS_CACHE); > } > > struct swap_info_struct *swp_swap_info(swp_entry_t entry)