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 76CCFC021B2 for ; Mon, 24 Feb 2025 01:24:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E4A856B007B; Sun, 23 Feb 2025 20:24:49 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id DFAF66B0083; Sun, 23 Feb 2025 20:24:49 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CC2B96B0085; Sun, 23 Feb 2025 20:24:49 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id AD51C6B007B for ; Sun, 23 Feb 2025 20:24:49 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 312FF805FF for ; Mon, 24 Feb 2025 01:24:49 +0000 (UTC) X-FDA: 83153093898.19.0DD9EF6 Received: from mail-lj1-f182.google.com (mail-lj1-f182.google.com [209.85.208.182]) by imf15.hostedemail.com (Postfix) with ESMTP id 46B42A0007 for ; Mon, 24 Feb 2025 01:24:47 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=kaNGasD3; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf15.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.182 as permitted sender) smtp.mailfrom=ryncsn@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740360287; a=rsa-sha256; cv=none; b=Dydr29wJZCYHmTuDOJ6/HE6DHkN1OzWxOImSh+tHQofwjpr8VSjrmz3p2pYcOK2HxALjtn ukbuhb2h82hvbJ0BBiVgf2bPxlrd5nnZfJn1GZcp7kjDOrcsNNZxEy8Fy0g1AE0ioahoxM QqdO83ekPJEMeP+xXcyNqTdzVv4N9rQ= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=kaNGasD3; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf15.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.182 as permitted sender) smtp.mailfrom=ryncsn@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740360287; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=kWRhnuNKHExb1VDxgv51mpMpxwvaFtowfPGvchn87gs=; b=SIi2RN1vcJhF/PUFCjj/Vn+EjrSf4ymwXmfjuaHiue4Gc5F1E4Um5vP5I4FIihajto1jC1 tyrhW2ityfpaJO9ENwq2lk9uNl8tyt4yYjqLOy5ixmzREQ8XcQXA4fN9Vw8nQ4xbqFKQfp cHheswEGZMUZxiHITAVjgcRMdHxF65A= Received: by mail-lj1-f182.google.com with SMTP id 38308e7fff4ca-307c13298eeso45199241fa.0 for ; Sun, 23 Feb 2025 17:24:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740360285; x=1740965085; darn=kvack.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=kWRhnuNKHExb1VDxgv51mpMpxwvaFtowfPGvchn87gs=; b=kaNGasD3BdCsKn72/FpK7hvzgwiORqbJDGhxFRYzJ1+CSu2zFLhfpJr4EDhwQPkUKT wnN6tZcE1Wvn5T2hkHluQRuOxX8rV0P/nQ53ePzVWK2CrT5zFi4aUBKaYA5Iv8hGODWK 283qWTsew8Wv52MOdvV2OnL0OjrTtho+VdK9tIdMkT1wHZNwzQW8Q4OxFCSfHti7DJbM zG+hrx45oZvh4HrGIPEof3XCisSy34LR3/4q6N8WQPatdxhzssxUXOq+BZ+5Ws3YyLJJ 3DB+7T4ksljLYoLro36dYFAaSyMHX7nqvrQOMstl17p4YFS9wGmQs6U5tANDEj/3aCCA Z46A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740360285; x=1740965085; h=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=kWRhnuNKHExb1VDxgv51mpMpxwvaFtowfPGvchn87gs=; b=dWc3r8J9sT8W2sdRt97Cc5aceOxB+ZlpWvNlbgS+7pvEev0MhEXUJgKzNPZn4XQFym wF/VuSSYeQGbCN9D4wX9wnSs5DJBCLb/zHtFXSwo7RqwPq2RmSdSgU7B7wdrwiYICXiz sx2FQ2HMeubyIG6b0fdyh3Xqi70m7P38O8C6wCVqTMzLX+7qNGeBnmSPWFdzua6yG759 G2NAZNv1n4YyLb+hC1FZdwWcDgXQgt7LfW4TsZjP+DxmQ1aZjUmuZ7KuEWlSL4GifAZx thZzgHDWeUh/tLa1/1YlwUBJTMx0e+oVzqxc+KG8Y4XijFCXXw33EoduUEQb7FerTvA1 fH0g== X-Forwarded-Encrypted: i=1; AJvYcCWoOkkaqWsyUcsT34GkzPIgrkErpuafDTrpVGBIoFbkeNP8RJF+Q9ZP2lXMnAfRp42XA4zUtIOrNw==@kvack.org X-Gm-Message-State: AOJu0Yw5oN9Lj38q5rkiZaoYCGSS8NfZI1lRqpPWXRNEDcp8WQEyU8tb Nv/NyBxoWFO7vqMLT4IDRk9okXcESWW/AaOnhWTYRT+aEckHKDyn/ZZxP/oYzRnZHkE20EXDYAm /hqDHrrvXEw5G7yT8zvIrk8hsc7g= X-Gm-Gg: ASbGnctnmEWlRWFlkPsaPh1b5lHBgx8HzwSA103qmiugM3iVyy2kYm4R92qG5q2Xl8i QAHFKEFiEVzGIpfPHP5vv7AcN1YnZaExWUnBfwd25gOMPHpMpsCI4YUg3wz2yv9HX/K/CtJvC+n dol2zAuw4= X-Google-Smtp-Source: AGHT+IEEJI9HxVQbSSlRssIQ7laIZ7nuaJrUJqDMncspRslwIZvPV1B9m1xXnq0CuBVuV+9lDNbY90vWmSXW3FyR1o0= X-Received: by 2002:a05:651c:cc:b0:309:28c9:54c3 with SMTP id 38308e7fff4ca-30a5063fcacmr49963251fa.12.1740360285157; Sun, 23 Feb 2025 17:24:45 -0800 (PST) MIME-Version: 1.0 References: <20250222160850.505274-1-shikemeng@huaweicloud.com> <20250222160850.505274-5-shikemeng@huaweicloud.com> In-Reply-To: <20250222160850.505274-5-shikemeng@huaweicloud.com> From: Kairui Song Date: Mon, 24 Feb 2025 09:24:33 +0800 X-Gm-Features: AWEUYZm6ICjU9XOY9nGC3UXzsTyb_HByMRwOWAGdFPGci9733ag4JV55v4dDA8c Message-ID: Subject: Re: [PATCH 4/6] mm, swap: remove setting SWAP_MAP_BAD for discard cluster To: Kemeng Shi Cc: Andrew Morton , linux-mm@kvack.org, LKML Content-Type: multipart/alternative; boundary="000000000000940388062ed93417" X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 46B42A0007 X-Stat-Signature: 5ozm5hxnxkadmre63985du1bx337m4fx X-Rspam-User: X-HE-Tag: 1740360287-69093 X-HE-Meta: U2FsdGVkX18/Sa9JMauaKlJGGmjq+L0iDIhCHthE0mo0Vq1K8JGZ71RnC7Cnbpx90EXwu/md8rfTf+0eD9FyagmeN+Li+Jj1NxeuDnDLa5TWQPS4DKPmH3DLcehAOtCpt7szlmRORnD52UP3EEEpYPxoM47WLUrxbPhB2Zy5I3FgQIcsfrnhi6w0JM7Q7wED5MYE7cmzmiwthlrjN754jCcI+wUAOw1G978byJxX9iDTf0YDTSfeJaGdKpeLDMlB9obQbfkWpTeZd0/dWiejPdZYgQRt+IVvKYl+NHWvqwbS/9vHcGpI93x1LAsISCETJcAdoyG2CCMI5noBG7xDiy18BH251VUggXn2SAn4gdgvgMDmadC8wdVsK7y3aBOJmB0qgQ/SGyRHKtF+ZutcROnjfOtPC9jM8Isv5x9AYq0iYTfJJd2l8bilA8u87aLdJUo9o9eEJTSjLFKN7OYSCdJWeXfWn5VN5lYUJZ82v0P/fomtUoBBRaby7ouDr8B8X4s8RA3l7EYhEuMbcEu74HS1LEq2qj1iR7Hsa0lH1wNQOPrNdGrVy5xQeEl3pgfzjXsbzv7uvl2wqMv9311rRvIOLeaLZLzShUrLv4s2oqTKZY+45LyE1qHwZUJE/tlOCRvmWx3WuN2U0zBiNMZo5Gp87MqHy9uhTGoZJgF9p8FdfR8t6rUkjcZj3n0Z8EPaTOdz9sBfSQ2nYlxaW+YZqtJzGVOWw9cgByIP00pJd1ft3EBQ36+jrnb42nLQVP2SH2j5GzV7aU9VZPD4fhVD083ze69qhKcb84ZP7K6s46kamDLhD/w14O6W/Ajp3/PSEESmN/Su6uKLsDg8sVRcRDVe3JqarboraYSkxv2QQIDZOmFJE65voGuwzVZIpf+fzE2lHoAV4SwA9sch18urEwWlT8nx2Lv5Q8XC6xg/fuOiYJAafVMq4LSufvJPHaszcPPAzCDrHG3xJWAanFH XhHHncYv MUlPrGUY9QRyEmGTpUppITbrmnnyAuXY5ShpXr7RK+e39SurKOvE0NjYvIc5/rCA3f0r4qtJgrhJ7FzGhEBcQGDjaV2jo+lkRMSGOitb5biZUBHxi0DZ6PCaAU+UfN1Yu/EM1gw6vPaGdPoxF4xYerFVYGp0UKaeaq2SIR/w0T6kfrWj1LJxBSng0obheJRgbwEe6ifKgvFJ9eG6WOhy3179AHUxaZkn3DUHUiAddauVynBdT7tcMEc1JVCs0Nb6bleA3hIEeb1j2CCNNvDORK2OOmIwg63/GcR8F5XH/wEFlpaH8Gy17JL+Ahoh+aM9p3efz7OYsikKnxEtsiaQbdM5lA2YMuZJXj9PXvW5AltYvA7dLIIXrOurGqYWQPThBZfKZHHBYHj3B+8P8X9w5omHwsGGDHBEm6tLQeg3Owak4QpkIUL/+BiOhnWXeia9/HYXbqJR6fNm7SrQ1gqAPJFACv3o4Ze6rnJD9D8XXed3+PVbIrqFpKbTYpzwOI1HjIATjnIcM+Xgxyy0= 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: --000000000000940388062ed93417 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, Feb 22, 2025 at 3:12=E2=80=AFPM Kemeng Shi wrote: > > Before alloc from a cluster, we will aqcuire cluster's lock and make > sure it is usable by cluster_is_usable(), so there is no need to > set SWAP_MAP_BAD for cluster to be discarded. > > Signed-off-by: Kemeng Shi > --- > mm/swapfile.c | 11 ----------- > 1 file changed, 11 deletions(-) > > diff --git a/mm/swapfile.c b/mm/swapfile.c > index fc45b9d56639..c640f77a464a 100644 > --- a/mm/swapfile.c > +++ b/mm/swapfile.c > @@ -479,15 +479,6 @@ static void move_cluster(struct swap_info_struct *si= , > static void swap_cluster_schedule_discard(struct swap_info_struct *si, > struct swap_cluster_info *ci) > { > - unsigned int idx =3D cluster_index(si, ci); > - /* > - * If scan_swap_map_slots() can't find a free cluster, it will check > - * si->swap_map directly. To make sure the discarding cluster isn't > - * taken by scan_swap_map_slots(), mark the swap entries bad (occupied). > - * It will be cleared after discard > - */ > - memset(si->swap_map + idx * SWAPFILE_CLUSTER, > - SWAP_MAP_BAD, SWAPFILE_CLUSTER); > VM_BUG_ON(ci->flags =3D=3D CLUSTER_FLAG_FREE); > move_cluster(si, ci, &si->discard_clusters, CLUSTER_FLAG_DISCARD)= ; > schedule_work(&si->discard_work); > @@ -571,8 +562,6 @@ static bool swap_do_scheduled_discard(struct swap_info_struct *si) > * return the cluster to allocation list. > */ > ci->flags =3D CLUSTER_FLAG_NONE; > - memset(si->swap_map + idx * SWAPFILE_CLUSTER, > - 0, SWAPFILE_CLUSTER); > __free_cluster(si, ci); > spin_unlock(&ci->lock); > ret =3D true; Good, I wanted to do this some time ago, but forgot about this while busy with other things. Reviewed-by: Kairui Song --000000000000940388062ed93417 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Sat, Feb 22, 2025 at 3:12=E2=80=AFPM Kemeng Shi <shikemeng@huaweicloud.com> wrote:
>
> Before alloc from a cluster, we will aqcuire cluster's lock and ma= ke
> sure it is usable by cluster_is_usable(), so there is no need to
> set SWAP_MAP_BAD for cluster to be discarded.
>
> Signed-off-by: Kemeng Shi <shikemeng@huaweicloud.com>=
> ---
>=C2=A0 mm/swapfile.c | 11 -----------
>=C2=A0 1 file changed, 11 deletions(-)
>
> diff --git a/mm/swapfile.c b/mm/swapfile.c
> index fc45b9d56639..c640f77a464a 100644
> --- a/mm/swapfile.c
> +++ b/mm/swapfile.c
> @@ -479,15 +479,6 @@ static void move_cluster(struct swap_info_struct = *si,
>=C2=A0 static void swap_cluster_schedule_discard(struct swap_info_struc= t *si,
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0struct sw= ap_cluster_info *ci)
>=C2=A0 {
> -=C2=A0 =C2=A0 =C2=A0 =C2=A0unsigned int idx =3D cluster_index(si, ci)= ;
> -=C2=A0 =C2=A0 =C2=A0 =C2=A0/*
> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 * If scan_swap_map_slots() can't find= a free cluster, it will check
> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 * si->swap_map directly. To make sure = the discarding cluster isn't
> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 * taken by scan_swap_map_slots(), mark th= e swap entries bad (occupied).
> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 * It will be cleared after discard
> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 */
> -=C2=A0 =C2=A0 =C2=A0 =C2=A0memset(si->swap_map + idx * SWAPFILE_CL= USTER,
> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0SWAP_MAP_BAD, SWAPFILE_CLUSTER);
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0VM_BUG_ON(ci->flags =3D=3D CLUSTER= _FLAG_FREE);
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0move_cluster(si, ci, &si->disc= ard_clusters, CLUSTER_FLAG_DISCARD);
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0schedule_work(&si->discard_wor= k);
> @@ -571,8 +562,6 @@ static bool swap_do_scheduled_discard(struct swap_= info_struct *si)
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 * return= the cluster to allocation list.
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 */
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ci->fl= ags =3D CLUSTER_FLAG_NONE;
> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0memset(si->= swap_map + idx * SWAPFILE_CLUSTER,
> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00, SWAPFILE_CLUSTER);
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0__free_cl= uster(si, ci);
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0spin_unlo= ck(&ci->lock);
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ret =3D t= rue;

Good, I wanted to do this some time ago, but forgot about this while busy w= ith other things.

Reviewed-by: Kairui Song <kasong@tencent.com>
--000000000000940388062ed93417--