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 D19FBC3DA4A for ; Sun, 11 Aug 2024 09:22:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DD71F6B008A; Sun, 11 Aug 2024 05:22:35 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D87336B0092; Sun, 11 Aug 2024 05:22:35 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C4E6C6B0095; Sun, 11 Aug 2024 05:22:35 -0400 (EDT) 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 A67F86B008A for ; Sun, 11 Aug 2024 05:22:35 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 3BEA3121A1E for ; Sun, 11 Aug 2024 09:22:35 +0000 (UTC) X-FDA: 82439424270.27.4E0D753 Received: from mail-vk1-f180.google.com (mail-vk1-f180.google.com [209.85.221.180]) by imf14.hostedemail.com (Postfix) with ESMTP id 6DCCB100007 for ; Sun, 11 Aug 2024 09:22:33 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Rfa0Zyow; spf=pass (imf14.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.221.180 as permitted sender) smtp.mailfrom=21cnbao@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1723368099; 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=zLaYZ8wOVJRqaAfDCb8RdcM/bRwQ6VYGKjOcAekdAS0=; b=0TsDsMUX0WgunSi6GsKEBhRorkYjWNSmf3B9MLV4ILzoFDCUnSuRmqVY3+EgeIpwofvI5C X7NbuylLny4EO5IbhUwtyjX9joVYLIQL5y5dunBHttrDtVeEKT7SudpbVPcMMarTfZkDb8 YgBAUlIo4JmphNOT8SrSEFSxXJUrFHU= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Rfa0Zyow; spf=pass (imf14.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.221.180 as permitted sender) smtp.mailfrom=21cnbao@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1723368099; a=rsa-sha256; cv=none; b=iLvwpfAdin59QFc0GY8c1B41aQe407e62wvSWitpi1itQ92p6e80Di38YvzscOtvcaQ4Qa mI4rDqE5ja1waXUGVjYEMVx4KgaN1F9iKCYYNtuDVpqWVcrsSJEVrAdBtJhJiincosHQkF AKXHn1Y0ltnSZjaOsKXAmjN2iC7aYJo= Received: by mail-vk1-f180.google.com with SMTP id 71dfb90a1353d-4f6ac477ff4so1984404e0c.3 for ; Sun, 11 Aug 2024 02:22:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1723368152; x=1723972952; 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=zLaYZ8wOVJRqaAfDCb8RdcM/bRwQ6VYGKjOcAekdAS0=; b=Rfa0Zyoww2zUWIjwbnL1/jDn02BUpnrj0ujXlV0sv1h1HjIlfoeAL3U+DgmR9Wpdus lR44lXKB5PpI2Hkd1IxN6NmtEITnrDDSEmlKWr80vYELhtbjgHmPsepe3ITBQKtECn3I wienfYhd+A09G+ZWlp/Bii3nPDN/0xiNOHdyen/VgFvJuO+p2ocYDZ4dH3y0UBHaFKMi yniYVFATFt5TdMTnQjFVr7sbkH/KLb5txKfMGeI5cPUusR012DFCTmUEQwMCnkNYdaTs IeLbYQyUsZIYAA51u5/xkcSp0uCCkrhcJN9G+5CwQoAMVontIjheZBbXHuw7yyA2X1mf wT5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1723368152; x=1723972952; 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=zLaYZ8wOVJRqaAfDCb8RdcM/bRwQ6VYGKjOcAekdAS0=; b=GTl1ft4mFcYkWtGgZ6yaOg8r/3eOewpDd7UxvJxVRcxLbW2Xb6meyRRIg5rKRgRvkS +NsKfnj63wnoVON4qYBTAjV2W5EfUBp5xEjUB7EfyBfO3WmAryhz9vzUvikK3skUjQHZ NuiVDG6O5+oyHjO2myCrlXLjxAGwFPvXpuhSKKx/6ZeYeGdkoHyp7/Y2oGh/E30hPVlV pmpT46J2ooNGGIsGA00W6LRAXysS8XFxiByKUx0l8CcQLO6P8ndqWGNSr1+fPCfolkDa 1izFRASowBwafAVqpU4+u/Ya0vhzD1I7Nt3aabIxbm6JMLG1g5kTFaH6kIIZnndOFL4J 9/CQ== X-Forwarded-Encrypted: i=1; AJvYcCVdzXS6TBVTrPdUJExW2Lc2uFSO2u0Z5bZcPMvOWCEWXA02GclqOD8qKMQMd6oRu+WjNSLu0XgaBDPNSdHZZM5JUl4= X-Gm-Message-State: AOJu0YzPPmK0hP4zdQtJJtFFNHf9Q0g0mXVDTxzF+VpbKpKdb2fuJM3i GEicGodTD7uTq+4IjWm85Dzl2LWm3Tov6SmnBpJIYkcU37FYj99CLYHvNRZzfmzwD4AFINmSoN5 3H9u8ridL//cRJhe/PN6IcvBiVZA= X-Google-Smtp-Source: AGHT+IFgcJiZ65dB4VotfMOC9xLv86p3zf1BzDbqZj3vQt18yXBhtkoXUKJEONnKlVRvIQ6njgE75LDjv6rgBcnPwHY= X-Received: by 2002:a05:6122:318c:b0:4f6:b160:3806 with SMTP id 71dfb90a1353d-4f9132eaf09mr7349309e0c.11.1723368152444; Sun, 11 Aug 2024 02:22:32 -0700 (PDT) MIME-Version: 1.0 References: <41b49313-5804-46ba-9e1d-358b079274cd@redhat.com> <20240809070412.33847-1-21cnbao@gmail.com> <62d758b1-595a-4c05-ab89-3fe43d79f1bf@redhat.com> In-Reply-To: From: Barry Song <21cnbao@gmail.com> Date: Sun, 11 Aug 2024 21:22:21 +1200 Message-ID: Subject: Re: [PATCH RFC 1/2] mm: collect the number of anon large folios To: David Hildenbrand Cc: akpm@linux-foundation.org, baolin.wang@linux.alibaba.com, chrisl@kernel.org, hanchuanhua@oppo.com, ioworker0@gmail.com, kaleshsingh@google.com, kasong@tencent.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, ryan.roberts@arm.com, v-songbaohua@oppo.com, ziy@nvidia.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: 9utbamtea5qtfh5jg1ff36acer3qtz7n X-Rspam-User: X-Rspamd-Queue-Id: 6DCCB100007 X-Rspamd-Server: rspam02 X-HE-Tag: 1723368153-861075 X-HE-Meta: U2FsdGVkX1865hQODuIgId1kVXOHsn4+/e/+C6PyaTKyiPJvWdi4sUfoBcOxHv1j+EbX0+Phbt3Xm5VCQMVqR2gt3sCEZ4LfEq0QBXPvf9KsMSpq7hN1sUrQriewONBZPX9+jfjMGilptypkxdync5NGNT8bwl0TjoluPQJWMXNJUx46EipxBcIU4xHyoWtCJIxgVRjv7UbZQmSiDpy/wBMnUB4YT36swQcArpFuH6HXQq+gn+40R48Fx77Ii17bSRdZXWdFifv9XDz9tj9xZuck5z4wBeYCZWNleyPFWIKXmulNl/iDYhl3QkpDB/4KUlBwFbXmgjmiUlMAWSc32ubWerh0wMsxk09xMpvZsCL3gmVK/ckLTl7JXpPrQihaOUl8yV3BkXzU5BLaQnQuSwkXTve3HzI9I1gPzMpjLWz8dP/fYX/YnBPmrjjocAPFfp86RGXWv+nTupcl2Ic4Uic1eQXRqYDq4Ue2pTmTpK+Z708oYDRufWCpLQgd6ZRqTgTFPEAsFL7Wha6/EE5II7HOttBt8LJlibLG4P2HiVI0+R7va5lz1Iw7LLReWZpGzS8moQBOHCsmFxBYAyH/P8whu4mjqe9r3xKY5X74CSo2/iYiuZn81ZwXdfMPrNVGs4odAxt0U95teEWb5NP+VYcHCxfFV3WAbSBeb0krxMT+QNv2YqDM69HHfwEskFtSZtAgpdnABGenkTD76669fFx0zD2HZjgjF/FyRcCsfFKryYChOXwKZsw6S9Rj4k0X8nPdo6KCVfAVFAvCFVz5XXXqpoI4IlYgwvSl2yliF5LQONEAssV8ammGZCemfxmHFZp5z11+OJubVdNnqhCSPgPvCAZCIfjwJS8T+0z3M+xTUg5uoSHvaoLk80zIGG6Vl6yR4DYpMMrW1hAErrKrNfGeBdvZqVIMGpurBj+ltmpeMTBMyZ3RkkcLekKa5nhs1Ljdzk6DWUlcEFpbQ1c FXB3N5yG K8+URTt7MprnEWO8rtmv5MKalLrEJifaqbC91IeAJnBTE1QHIhp711HtD6k3aART+KOLoFTWaMTUJjLM+l5jdpDxoNZCAUPh3NBalEgTfEGcg6opxgwjR66twls9/iakMWR5E10lZubUz+7tCjkoYoFKqmJJfFAA69UZCW+O59bynd8UGdKyzZH3b3+zp0Z3INnCgrxPL47Rhl/joZo/wipQtP/KDtV69P5UQ6pEXJ9peHw1ncLgzfcYhWZCSAf+BVS/Hztg119yJtAx+bUb2I1FprYEnf74cCHwJXUB65VE7Yq6cFKsvLhZEmTzdz05Idno0 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 Sun, Aug 11, 2024 at 8:51=E2=80=AFPM David Hildenbrand wrote: > > > the correct place should be: > > > > @@ -1329,6 +1326,10 @@ static int migrate_folio_move(free_folio_t > > put_new_folio, unsigned long private, > > if (anon_vma) > > put_anon_vma(anon_vma); > > folio_unlock(src); > > + > > + if (folio_test_anon(src)) > > + mod_mthp_stat(folio_order(src), MTHP_STAT_NR_ANON, 1); > > + > > migrate_folio_done(src, reason); > > > > return rc; > > > > Without this modification in migration code, my tests fail, anon_num ca= n > > become negative. > > I was wondering if we should do it in __folio_migrate_mapping(). > > There, we set newfolio->mapping. Correct! To handle cases where the destination might not be migrated to but could be put or freed, migrate_folio_undo_dst() will be called to release t= he destination earlier. It's better to simply place the count where the anon mapping is set and cleared. --- a/mm/migrate.c +++ b/mm/migrate.c @@ -423,6 +423,8 @@ static int __folio_migrate_mapping(struct address_space *mapping, /* No turning back from here */ newfolio->index =3D folio->index; newfolio->mapping =3D folio->mapping; + if (folio_test_anon(folio) && folio_test_large(folio)) + mod_mthp_stat(folio_order(folio), MTHP_STAT_NR_ANON= , 1); if (folio_test_swapbacked(folio)) __folio_set_swapbacked(newfolio); @@ -446,6 +448,9 @@ static int __folio_migrate_mapping(struct address_space *mapping, * no turning back from here. */ newfolio->index =3D folio->index; + + if (folio_test_anon(folio) && folio_test_large(folio)) + mod_mthp_stat(folio_order(folio), MTHP_STAT_NR_ANON, 1); newfolio->mapping =3D folio->mapping; folio_ref_add(newfolio, nr); /* add cache reference */ if (folio_test_swapbacked(folio)) { > > -- > Cheers, > > David / dhildenb >