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 BB011C52D7D for ; Sat, 17 Aug 2024 17:48:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DAFC96B0433; Sat, 17 Aug 2024 13:48:07 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D5F916B0434; Sat, 17 Aug 2024 13:48:07 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C28196B0435; Sat, 17 Aug 2024 13:48:07 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 9CA226B0433 for ; Sat, 17 Aug 2024 13:48:07 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 2EAC3A79AF for ; Sat, 17 Aug 2024 17:48:07 +0000 (UTC) X-FDA: 82462471014.24.78FA6A1 Received: from mail-lj1-f173.google.com (mail-lj1-f173.google.com [209.85.208.173]) by imf19.hostedemail.com (Postfix) with ESMTP id 4D1A51A0009 for ; Sat, 17 Aug 2024 17:48:05 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=OvJwO4Zv; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf19.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.173 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=1723916801; 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=9mqGzmAAwp8/+D6emKhOc783bM6P4L7CLETTrYC2FRo=; b=uIGRUgUwgck7cLmTB321/w6Eb8wLk9oG1rIYqbF0V+bZGNd6uVfgwmE6AKXZfAR87f2RE7 AV8aFYa+R4IUUD0TOdT4VOgB8wePntPzU93amwRxXAL9MEMmMhUu3Dvzh7Obv80PQbLQ+P u/lyEdTqOIX+mbqpo0cAOVB9RIIUJCY= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1723916801; a=rsa-sha256; cv=none; b=ltKWTbku7SZVOPkaeC0hjh5Ot6pEAc7OxQ4rxTsmQzZ7yL61nAcjxa8YicUIn6UsDCV7/4 XiNL6uAFPDWKX0SLRHLm9RvBTZjBioE4lvBvWyLjfTFESNN1RhO3EK9Rcd3nhE+B8M+TG5 r9hKONx8lbE35HU/blTYLV6r4DEeuw4= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=OvJwO4Zv; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf19.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.173 as permitted sender) smtp.mailfrom=ryncsn@gmail.com Received: by mail-lj1-f173.google.com with SMTP id 38308e7fff4ca-2ef32fea28dso34043521fa.2 for ; Sat, 17 Aug 2024 10:48:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1723916883; x=1724521683; 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=9mqGzmAAwp8/+D6emKhOc783bM6P4L7CLETTrYC2FRo=; b=OvJwO4ZvkzUxsfRimtGYcUxE4TizSKy8N/LR1NYfkSlfTflTfYEzX1/VnUsfTFldX2 v7VK+Z3u5PeilCxfL5+cCqI68qb6KwVZTepZJ9XMucUiZI3bpwipBmADEoLMjcLgUf8c 192oL97OsLidOWCXJ10Za+RqTTKFj4FBW/q4W1IvxQZOy4QjG+O8FycidMdQCshYWyN0 O9LlMK8GhkEEDbYOmur5p7q9axH98HHgPocopzthuOS2InOB4PASr9yqfBD9Rk2hIP50 p1jBEBwvH/BWEvn+Be8YdqtDTESt56fthJoBNHYeEpy2zNK9fhVaXEjBLDjFgGF0kwZZ OcDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1723916883; x=1724521683; 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=9mqGzmAAwp8/+D6emKhOc783bM6P4L7CLETTrYC2FRo=; b=kPmM6TC4cKMAPqTQjZIk5Q3tzvaCocMPi4RqBKjWqp8l/3sJMosMp8vKEEgL4ij6jj 0aBFuhzpzXqeVvhCNMyjrhdV0UPAWo6Gvv1MLLsh0ceJIJtvPDy5LhigTVKEt7AtfMXu 1Io3NZTgCsHbPiUb4zNIlwQ/ddpXcq+0ypf9K1FEQ9gpxouCgLJ/Zr9xlMQEiTVrBW76 cjtRZm/SzKptEBCvCgP0XVoEEKys8DKmwFJqcoyucYMmPVoq9hvm76SDruPVrWc/qc1O VtqR6gUgWrabl1T52oC46L85A1vPuvNv2ycwXid2qhbpy/hDU7JJdX+/IrXGHU62Mzb1 +6Lw== X-Forwarded-Encrypted: i=1; AJvYcCXhkFTC9jkKsrQaV1ANPpBUJLin9uNxtDaeUUoueQhTeaVxUymKnMCwVYsNR2I7Z+jBWfrt5wFGTtRnPrcNBCh+gIk= X-Gm-Message-State: AOJu0Yx5+dF6MEdLenZw32hfoo8xsJwaYjK3Kc228spmFVyy/bm8L+zi UZ9sMWfklxPHoAe6AnWyh4e3wQo05+glQUD47z7Xm4iDtgao5G2YYejygNKpN7MvzlmndFe4rQo 1M7oohd5yFWSbvXpoIzc+gGxqAe4= X-Google-Smtp-Source: AGHT+IEBotNTKHJO6dOqOuMEUbBEg9Poe6CnESoH4k5zPpkfSwcF5YC1dGfMG+vhpfpptTuu81/GDIH0jMQxW8gv7/8= X-Received: by 2002:a05:651c:1502:b0:2f3:b078:8490 with SMTP id 38308e7fff4ca-2f3be57238bmr46031921fa.6.1723916882953; Sat, 17 Aug 2024 10:48:02 -0700 (PDT) MIME-Version: 1.0 References: <20240730-swap-allocator-v5-0-cb9c148b9297@kernel.org> <3c79021a-e9a0-4669-a4e7-7060edf12d58@redhat.com> <87le17z9zr.fsf@yhuang6-desk2.ccr.corp.intel.com> In-Reply-To: From: Kairui Song Date: Sun, 18 Aug 2024 01:47:46 +0800 Message-ID: Subject: Re: [PATCH v5 0/9] mm: swap: mTHP swap allocator base on swap cluster order To: Chris Li Cc: "Huang, Ying" , David Hildenbrand , Andrew Morton , Hugh Dickins , Ryan Roberts , Kalesh Singh , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Barry Song Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 4D1A51A0009 X-Stat-Signature: jjks3435dcyrqney7kijcjcz6qeqpi4d X-Rspam-User: X-HE-Tag: 1723916885-951177 X-HE-Meta: U2FsdGVkX19R+kycf7eEMUw+p8oM/+I5/LMzlSwxGsFdob+zKJUGaU7HvDeXNJk4kvUJrMHqtQp2hV5HHEhb8TrSx3X17Hs9hajbPsHLrQ+EHMwEg+ZkbwVmzWnCmPc03XXf0uE9Z8qq4NpjkQz5ci+pAHzBdr4t+wmmhAYvGUWmyAa9KCNPBsBlxxc0Rmc2A0yvESR+8gsXaWid1rNDtOpCi+hF28zZO20+gDcUFNFNWSC8tWG6ovU+JoYuX6W6Vo2W8O5bsbFwrSXTZKiccXYKSdd9H36WXHzSD+33RVlr5bkANpZfqfjDcaxJrodE7LM211VuHMm+tW84BQ31fmKQ6IhlD5Q7s32rQ1iCRmZNpIJLmi3Bflfm///ieL5VHsLd6V9pmA5/EiKQHXkBNHCHj6USnVZF7II17WIyWqY45kDBQI0tx1p8OTSVuXE6vcUpT/qlGjLup/vmKHet/k7Uhze7vL7+08nRib42P+FsLg9oiunfC9AlEQxSdzg0Qa8fRAS2iu7NaObjubWrdfjSYVHltO1FqhXKTTZO/hKQTQTjxuq7hykP9ToOBmBaarsOq4vl8s/UKGGHOzDmLp2pGp8i9LLhaPRmY7pncZ6fo/K3HWdSJAygvSc7r+uEqnn3GNo8Arn8jzGHdkkKiwX5w46fDh3gCEFK4or4IdrLfdyqmkViN0zTfhgT1lBsoxjVUEBvoyuPbcH/NLi8i8i8naSs5ziyM4XIrcQDNOReYfwS8vfVZ++2XFZroUWqmMxR3hxZ3FtBvlbWmwDaieH4JalWEdeVDjgULjuQ406mQuOqhqgX2/qPJHoPdCczFtM1jFlLUMmWGdXekr22BJR+SedtVB2RqjxBDq55vMx4wJlFqziohjX0ddt4pGh5xieM9vgBvOhl7NMLSscyIoc7j3CqlyuxzU3UAasD1GG6eTBXFJgoKaJv2LvN7IgBymEe26EFGZOToatesqn BRJ82msI +A9VoHb9OosFoXW9WQbjGjb93rCQ/gFqdnbxLBs2Y8S72EJ5vuuMlq8ZrjH5ClDJVLV5Xu9uvAJKDMzstECbHhmVB+iJYKe8q3QIup6Eca92G9GvJmLwkBDI8WohIWzt5eVKdV1Fnq2Fg7E7yTulEjWyDf9Iy2xXup+CgiUI5JnMD1OokBfP2luNXTEPtwk0zHqvRWCVA0gd0iAnFtk35Iviw/3XkvC/9ABbsS739jdhEe5WvXrTMgRAng8J3v9vPrBPYPG47H2Pmd6s46yK1dc23xAlQ9rzdgwiBNoAvgl6xWFTSk01VB4i1IVM+FhRpUpkWWNJVxizdu5Kk2gl2hLC+zRTNiELHP1YgjFu+iIGOnnZbJUlgomZAxCFSjWfUvpt2UX11dlcVGBUpataZ+vqVaA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000001, 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 Fri, Aug 16, 2024 at 3:37=E2=80=AFPM Chris Li wrote: > > On Thu, Aug 8, 2024 at 1:40=E2=80=AFAM Huang, Ying = wrote: > > > > Kairui Song writes: > > > > [snip] > > > > > --- a/mm/swapfile.c > > > +++ b/mm/swapfile.c > > > @@ -450,7 +450,10 @@ static void __free_cluster(struct swap_info_stru= ct *si, struct swap_cluster_info > > > lockdep_assert_held(&si->lock); > > > lockdep_assert_held(&ci->lock); > > > > > > - list_move_tail(&ci->list, &si->free_clusters); > > > + if (ci->flags) > > > + list_move_tail(&ci->list, &si->free_clusters); > > > + else > > > + list_add_tail(&ci->list, &si->free_clusters); > > > > If we use list_del_init() to delete the cluster, we can always use > > list_move_tail()? If so, the logic can be simplified. > > Thanks for the suggestion. Hi All, thanks for the review and discussion. > I feel that list_del_init() generates more instruction than necessary. > It is my bad that I leave the discard list without not a list flag bit > for it. Right, list_del_init is a little bit more noisy than list_del indeed. But considering after this patch, all non-discard clusters are always a on list (free/nonfull/full) already, and a cluster will be dangling only when being removed from the discard list (when doing discard work, it need to unlock si->lock, so the cluster have to be hidden from other racers). I think it's good to use list_del_init when deleting from the discard list in this patch, then list_move_tail can always be used when changing the list of a cluster. Discard should be a much less common operation so this should be OK.