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 C49BCC3271E for ; Mon, 8 Jul 2024 06:22:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 40B366B0083; Mon, 8 Jul 2024 02:22:21 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3BB976B0088; Mon, 8 Jul 2024 02:22:21 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 283B36B0089; Mon, 8 Jul 2024 02:22:21 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 08E866B0083 for ; Mon, 8 Jul 2024 02:22:21 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 7D988C1120 for ; Mon, 8 Jul 2024 06:22:20 +0000 (UTC) X-FDA: 82315590840.28.A6113EC Received: from mail-vk1-f181.google.com (mail-vk1-f181.google.com [209.85.221.181]) by imf28.hostedemail.com (Postfix) with ESMTP id B4076C0009 for ; Mon, 8 Jul 2024 06:22:18 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=kGeQofnt; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf28.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.221.181 as permitted sender) smtp.mailfrom=21cnbao@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1720419714; a=rsa-sha256; cv=none; b=zDjVsngw8sagLeCOHc8G/iT/X+16a5tkSoW/ictPhPOhTedYSI5pW5zF3+W4GtfmIEzpCc OMDRO/Twu5G0+6YVus0uNafQVej9EITnx6Si00vodKZJJ+9a7pYnQ65+jiBwJ44XEHpObT ZtnC5+AK4o8GrrQLuG0Ldiz1wAFnKhs= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=kGeQofnt; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf28.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.221.181 as permitted sender) smtp.mailfrom=21cnbao@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1720419714; 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=ifbBmc00s6PDs4jKRokz1EGyBAXHA5r+QHtuV6zq9aU=; b=SWmh0phBajWyt/pkkmrbjmPJmw1pbU5rwvNL+slh54AGSBb1l1mizIfF2wyr8CQKAvjN+a ymps4hl/UW/j3JUPWDo6NW4Xjq8IGjpQMIa+ikKEUIJEyod5UTPfRbzmX2JE03+apyUawV IA0/1o472Ay2TBQQZcPv+Nq3TbfaegY= Received: by mail-vk1-f181.google.com with SMTP id 71dfb90a1353d-4f2f24f6470so1129110e0c.1 for ; Sun, 07 Jul 2024 23:22:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1720419738; x=1721024538; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=ifbBmc00s6PDs4jKRokz1EGyBAXHA5r+QHtuV6zq9aU=; b=kGeQofntUdQtBn1TnSHGp8FZthUQRCjdsMsf7N05+vTFxNE+V+F5XW1S6ABliiZBom sfeIrZF1nIhhyP31asBat0lC8f0avZVG/Ajxslt7UHaOR3DSsbmgyFHjbIw8m4xwoJI0 BDsex4kBbNIPW2E2f0Qv1lc9cHKB+J3miecyGKx/23iYfsVTtxinFFivd1ivwcOgyOTb fx84qCRk+gYVm45qFOic3BKeaEazFGROrK/moYPgv5uUE5bojlbIOUpnKiw07BQsfZGB iGg39gJ+ukldzmtfc6J4vvkcd+uDvGX1Ydno57qKDANPptBjRoqvCKGnD3+dJ/R0It75 dm9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1720419738; x=1721024538; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ifbBmc00s6PDs4jKRokz1EGyBAXHA5r+QHtuV6zq9aU=; b=FLmDr7yHjy4KAVySeoeEMznQ+cROE2VsjtjUCPKQIbHUAlabFX+09s0zMN+phbxZxj 3l3sHE7yLXF/h7jjii9AhgTK9vHSCK8/B+OfjXbVRT8fxOywKWNqHY/Hb/VbNBuljkrR QW26dU04Dyt5bFzre5m80OUGbEi8uonEhyOR3T+rkQFSXEuOTKFP9VF2F6bCq0V98ZIQ f7XVA+5hjgNVGTXeDyVnpEB6jRE2Wss6IR0jRzk1V3U+JECBxZIFZ6oJnCi6MWTvQY++ xiVFr0RA7uHM9yccMkf0vbyFvfGfzuGsmeDxkqjc5hjujyYg+MT/DawSZS9Mnc6t7WUy n77A== X-Forwarded-Encrypted: i=1; AJvYcCWXhhq3xs91hAtXNl7BhI6/vJEvCjz1q1OSCz8nalbGb1HxZLASwiw3+genp+Cd0Cji2VekXXZbIukPM3yhxdB2PNw= X-Gm-Message-State: AOJu0Yx3RJnmRFTHr3hl8CsYInn88xnzdQKNzA0EoGLcIiCZkYuW9yKa YvWmcPwzTNVga87ciH9eAHdoNwIsRANfYc9Hjsp0SA/+viVIOgnn3wDOFVMvifQaTNtxa9K27O2 +3xHwKcZjyFs7knoQgwgx+MDvzQg= X-Google-Smtp-Source: AGHT+IGrJQmhgXFsCY2qekC9LVQNgQRc/rdLVgJl+vebrSbBItHIhf9jN3LXtZ+VVv8NFhqfcLjpjX0XuCGP/9CgupY= X-Received: by 2002:a05:6122:1c0d:b0:4ef:66cf:8745 with SMTP id 71dfb90a1353d-4f2f3f84f21mr11564421e0c.7.1720419737768; Sun, 07 Jul 2024 23:22:17 -0700 (PDT) MIME-Version: 1.0 References: <20240708061502.9006-1-21cnbao@gmail.com> In-Reply-To: <20240708061502.9006-1-21cnbao@gmail.com> From: Barry Song <21cnbao@gmail.com> Date: Mon, 8 Jul 2024 18:22:06 +1200 Message-ID: Subject: Re: [PATCH] mm: Extend 'usage' parameter so that cluster_swap_free_nr() can be reused To: akpm@linux-foundation.org, linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org, Barry Song , "Huang, Ying" , Chris Li , Ryan Roberts , Kairui Song , David Hildenbrand , Chuanhua Han Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: B4076C0009 X-Stat-Signature: o6ia8kjn1eemgq88xifsu7bzrfn17xgt X-Rspam-User: X-HE-Tag: 1720419738-996587 X-HE-Meta: U2FsdGVkX1+7jkvsovJKSQM18ZwIaoRUXUloqU0CPYy+/fkhrAzhmbWSPPv3Nrt+4DNbaXYAwUv1cTfV95kyjN1lwwyJ6DukUicowRPn2zSxiJqy3vbDTgLzZu4CjitME3i6TenEG8Uijr20/nHEmhmVEbgacLUt2dfZMQBQ9bQXvPjGvPtaUyYmHg1+HmYLm0Bm/wFN5qkS6qaK4whRMomIcNnXYNhxuQhqMoomo6rLS2Oke5+YFzkUrrvWR4qZNu27KrFnNsg+Qg3tvzVdiiL+9uhL10GGFIuR5KHtJVgSaz5HU11ipDSldBHLdK4flS28O2ySgU3tmXWFwmeUa8I9Q+i8LPfb831Yn11rIncfJHQY24fHuepaTFS0FPhvcr57P+ILQ0skc5jLk3rnGxBnFXnMWpzBoXu36D8d7qC3JYK7+4t8DeVk/JuAgKjM8BvmQO72K60fBObnEWVv8NKsTL96Sc17Xk4Ftclm2iyzvYVscdm7U4u+gHPCWpgs7QPKKLuPdMk0psukWZ3kw/a7zD5gAuZuLx1+muEBhB1D42zG2cS7jnlETwYJAXevIgDrwZ3iJK2140ydIhJv0f1v+E7pUEjFT/zsviWKJ6727dYtL8ASYVHpbRAago/mIgwtVS0s4lsjEaGettsujP/V2H+FsNzQBl6NSXAhxzZSXPNTpxK+vVoKOlb4IzCB6dUAdJVPPV8y4gAYXdDeT9ePj+iU5iOdPLcyGoCs/QgYH9RFMzFlx9DEQ24pliGD4pY1Po+z8+Z8x/Oq5IYKDw7sv1jibgkWkfCRMyerNEKKXIdLVyj2EjkdWd4hV1w8WF3gfV5+oGowDuHI2FK+UY66h+e93wq9JVGnenLlFOCaNj5U0Lqy3N1RPxjtXePiM3p+KETsvdaEZmEaINxgOb1IhpmcdUs5XW5iCz3F3fLjDlo55M+kPptFpLfImrFw8cbJx9tb7tSWomF2ejo dMGJFgML nrPrYlq2CS/VhG1Wfx1codrygg4rb6esRrWvxbyiQPO5qnJynoByx22jNuqcIxUJ0MnqSZep0j/TuE1e1WrOQkSgwZ4yUZ5ED9yNMqPUzx9eYkLUB1UCIoXwvorpS8Ri0L3u6SxEvHs/KXJWmLWDjCSha5ahucpZmgg+iXiW701yileVQ2DSNtRfDHDitw7PJ6hui2jbEHre2WNRLI6K/wt26uZp2hMFeiB9fsJ/MI5OzIpzsHxKZmXzP11dia0PwzFkqkW7fq1Mn+IM63a+j65bSMSq1/RoxLM6mGTBtiCuNxi1PcBa1yPbg92VnUSvYWjTcmMaXCcYQfc56oVSQkJjpW6uhxoO35dYonN884SumtZ5/lfiVduG9QM5VKhuzTVpovxgbtCye6wHYWMnGudw8JUPnDjawNQix6J9pMIREZ0j3SZp/Y2VnYcpnkq7ur2saf9Ozq1TQA+l98K4eeaxwHJYKAf5bwaKInyWCgShf11d3oSDcQieEZLLpl/kGp54BK7OOdkqHQiUk9x1fKsa+U/0tuKSA4DQMMKXpvY6qo+cbATsV2xBAU5qc9YTDN1JReSHZNE4WhzuC6HNGukIt42UxMn5tEMOHFVeUWiOcjfzI09Th0FKmTf7/EUsipOUnA/6kLNiHailjX4xYmOlEOg== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000126, 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 Mon, Jul 8, 2024 at 6:15=E2=80=AFPM Barry Song <21cnbao@gmail.com> 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 > --- > mm/swapfile.c | 15 +++++---------- > 1 file changed, 5 insertions(+), 10 deletions(-) > > diff --git a/mm/swapfile.c b/mm/swapfile.c > index f7224bc1320c..70c4a9132672 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) =3D { 0 }; > @@ -1363,7 +1364,7 @@ static void cluster_swap_free_nr(struct swap_info_s= truct *sis, > nr =3D min(BITS_PER_LONG, nr_pages); > for (i =3D 0; i < nr; i++) { > if (!__swap_entry_free_locked(sis, offset + i, 1)= ) > - bitmap_set(to_free, i, 1); > + bitmap_set(to_free, i, usage); I'm terribly sorry for the mis-operation(sent the wrong patch), I actually mean: if (!__swap_entry_free_locked(sis, offset + i, usage)) bitmap_set(to_free, i, 1); > } > if (!bitmap_empty(to_free, BITS_PER_LONG)) { > unlock_cluster_or_swap_info(sis, ci); > @@ -1396,7 +1397,7 @@ void swap_free_nr(swp_entry_t entry, int nr_pages) > > while (nr_pages) { > nr =3D min_t(int, nr_pages, SWAPFILE_CLUSTER - offset % S= WAPFILE_CLUSTER); > - cluster_swap_free_nr(sis, offset, nr); > + cluster_swap_free_nr(sis, offset, nr, 1); > offset +=3D nr; > nr_pages -=3D 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 =3D swp_offset(entry); > - unsigned char usage; > > - ci =3D lock_cluster_or_swap_info(si, offset); > - usage =3D __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) > -- > 2.39.2 >