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 A0AA3EB64DD for ; Tue, 8 Aug 2023 02:49:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DF09E6B0075; Mon, 7 Aug 2023 22:49:58 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D7A688D0002; Mon, 7 Aug 2023 22:49:58 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C1B188D0001; Mon, 7 Aug 2023 22:49:58 -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 A926E6B0075 for ; Mon, 7 Aug 2023 22:49:58 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 7A7891607D4 for ; Tue, 8 Aug 2023 02:49:58 +0000 (UTC) X-FDA: 81099407676.16.F0D8FCD Received: from mail-qt1-f172.google.com (mail-qt1-f172.google.com [209.85.160.172]) by imf24.hostedemail.com (Postfix) with ESMTP id 80B3C180011 for ; Tue, 8 Aug 2023 02:49:56 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=a272jKXZ; spf=pass (imf24.hostedemail.com: domain of yuzhao@google.com designates 209.85.160.172 as permitted sender) smtp.mailfrom=yuzhao@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1691462996; 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=6RSNnQZT08dQdFVE5RJv/G+IJCRbc3TJGyCsrhcpmdQ=; b=cOkQ60xYUn4w82phmKaSGVcPBukwQMK/fqvxWFIT/Y0BilueYfgW6AruTb6BXb9xcOlZfU bDSNOVKUZmyjbIL8xPDTqh6GG6bB3OLH5AOet+MRrYCkp2ZK8NaXLcx0KExt9Eduh+9LCq mkW/wIGqBrnNbbTL2Kr7+pz9IC+qeBk= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=a272jKXZ; spf=pass (imf24.hostedemail.com: domain of yuzhao@google.com designates 209.85.160.172 as permitted sender) smtp.mailfrom=yuzhao@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1691462996; a=rsa-sha256; cv=none; b=O7my+0ONzKpQR0zcWb72Smyh+bWTTbi0Cc2eCTnibGM7xbOAuvfmJas6V8PNyz2+OuayNS 0rVR1E+pfdoY0VjvMhyPsAkjjD4j+UVzVCkHnmG9DqJjvYz1G5FnzJAPLAcr/snKKy4hnA hHMuBrcdtyf/GGg4CKm+59WivRmDzJk= Received: by mail-qt1-f172.google.com with SMTP id d75a77b69052e-4036bd4fff1so106581cf.0 for ; Mon, 07 Aug 2023 19:49:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1691462995; x=1692067795; 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=6RSNnQZT08dQdFVE5RJv/G+IJCRbc3TJGyCsrhcpmdQ=; b=a272jKXZUQokY6L5C0Br3ocABCJ+A8NpiSSqAW2ukctHWiYUg0oPKJ+vgx0NyQAwv2 UKQDyT/D5JaOlhyZlhwe/G7vvSnImf0tKcfkclJhEKEzV6GEr7q+JBN8MxUO7P9r913M uI+NpMpW3CMQ9TtTqVY509r87gnSnsvdAVwRDCljGI3WsvByZB2H6f4qwRj/RotvSktg n33C1JWAuTsjt7/yM1TrXoyLh3SF/AoKIUPQxtQ8dWgMYhIkOZpoQWzmZ72g46myu1b6 MvfVM6rFEPbilLDFeGW1Gt9RNnEsYUZ/Q63C54Az3wdihv5Q6BKRqdaVa8N0hz7NDLwD inzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691462995; x=1692067795; 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=6RSNnQZT08dQdFVE5RJv/G+IJCRbc3TJGyCsrhcpmdQ=; b=bTVnaxAJo69Xnej9oNOrcDrCWYPzV399rIlqsKro8a2fA98upzslNL1sN7KTyPcR5G gRMrqwDwEZ36Il7dvQjhw/prkEnn83F5C1Dh+DHwiaXOe1nNXV9S3+3w86pusG9uIDjD n5A3p/T4SrbPRAtEgKzSKLnmDCXq5Yc+PwyH26zNqfxHmo082uParfVqT6vuwPh5QuEm QtH6lbz9ys1CZIbi5QTBI2frVmECf8FuzeOJ5tF2aIA7RTqKbXpoZ2HFPGNrmjHI1LCz S0oUNJAzgJwiCeRpZI2YaWAmE/hblLqJRva7m/skQk3chlFTDzKgaoTBAREdV9lHHA3p 3EAQ== X-Gm-Message-State: AOJu0YzT8boP5q1NpZPPb1i7B/j3E0tXwrMvc265mHw90uJ7ZDPEZMuH r75MVXNwbwd7kztpel6IYaxxa2QY1CCHtguCWArqQA== X-Google-Smtp-Source: AGHT+IFvXwWNd1BMS+iG4q7Z3meYuXCiDq9AoY3zcgK3v7qramlFnSOemTPJKu+4UN/Xp/QO5nOMIVY1TX40Y3Ro7hQ= X-Received: by 2002:ac8:5c53:0:b0:403:b1e5:bcae with SMTP id j19-20020ac85c53000000b00403b1e5bcaemr749780qtj.10.1691462995526; Mon, 07 Aug 2023 19:49:55 -0700 (PDT) MIME-Version: 1.0 References: <20230808020917.2230692-1-fengwei.yin@intel.com> <20230808020917.2230692-3-fengwei.yin@intel.com> In-Reply-To: <20230808020917.2230692-3-fengwei.yin@intel.com> From: Yu Zhao Date: Mon, 7 Aug 2023 20:49:19 -0600 Message-ID: Subject: Re: [PATCH v2 2/3] madvise:madvise_free_huge_pmd(): don't use mapcount() against large folio for sharing check To: Yin Fengwei , akpm@linux-foundation.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, willy@infradead.org, vishal.moola@gmail.com, wangkefeng.wang@huawei.com, minchan@kernel.org, david@redhat.com, ryan.roberts@arm.com, shy828301@gmail.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 80B3C180011 X-Rspam-User: X-Stat-Signature: z94qpbfg8e9amsqay4k3rgjijae56zsd X-Rspamd-Server: rspam01 X-HE-Tag: 1691462996-732501 X-HE-Meta: U2FsdGVkX1844dag1ZPAfzrtNiziuzIzU/afcrqfOYB1PeamCchYTuotODrZSpUCova180d6lj+kgSLEqSOMAtMI3S/t6kG+dqnEmCIymrtWnTUcZ7bSRkYBOzPoWFvolS/1kaW6bu+jbn6ZK+L3ylkBmUXMH7uATviWQWTd1PvQ790kLVKSjaBgEsDWDkVUvtA+dA/QD509vmEYjcVAw76yRAUcGBs5tcxivi4TBejWK1hHf/8AsXuw4HCqQBRL6eFV+kiwLtjaB1XqyB/UD9vL6rmxEXUay86vxvOKe4lxoEoNHH19Kt8uX1FluZSKeBXWymkcOBQQ11kBs0CqNlY2Hdg9RQJXl9K+FC/ZHXc5vcH+JWqy3T0MWYf3Xs0weIEFA6JvME4AD5gUkiQ1a3l+cynvaSlcI/sU1lLvPE/yMTBzb7T3eOmcaaMIkRyDUllqZiZ31gMiIBtngq2FD+xPA8PjbBy7kv2tgzu6hwj3xbKExC6FopmehXBAuF7aCLHxo9ufDeX3WaXPR5ILzh/XI0S7z28QKBAVGQJbm+19yUpSZDh9wuYnSnWUC3fUtpyMLLzRtYE/PDbdd2Rhmiv3IPLujiAzP3sdf9KRV9eObo9YrhJuTOXV55Jk9oHDoQgmB+2b9ixl7Ll+lZRME1Jlqjyib9Dav/Ml466F9c2hEza3UL6LaExB5YEnNm9XFCjQ3ysxO0nR1qsUZAwlbQDckQfadJut1pipH2uHpubQAN5/UNj8N4wa2OuObgsuickHOVOJyzRPnCgu0JZKFZWXHG0G+FVhBYECm/h5Ef6QUvoZPHr5D65CzyABi5MyHOoWG2fJcB3YZdSfiOxm2uyOi/+wY7oGSQV6ureA8ip5N+ZFYicFJWyyQgEY+pZJHN/MfnPNbMBnSwTyrjpxJ6rorSBlRjabk/ztdZAg1wEzmlQCo64WgnH/TB3a1XLwBtBwmH1f3bXtbGibumT gC92z8Rm bPM0nT77bMDYweFFfOFm01lIbVpNjbw8qu9IiKHf7H99lwy/wll4UByAlCif9vNzCmRYUx7brbF5RYnj0X/DX8J5C2F2FKW3x+CEI0m00BzVCbWqwCSpaETA70fRGNkJWJyppYutsrvFLx/sgMYdTKT0flIcaPkjnGaifffUO7N9HX8E6sfYqclKT1EvqIDIXRzxW8aiLsZNUEBLE/h9lWscNp2VI4dExdVGxvjliFl4fy37cRPIEU/zQ+pitrgyONHCtCyLrBgqvUBa9SRQzxnUdmL9mTO1cb6yUD+D5PVTTPkFRyHzvc2UMKAbnWtML/2TgARPyazERqMrCI1KbzZsTilKjGanvBCZ3vmYxF0K3e9pTEIN1SWj8S6qQGa8KMoVkaeUR6g5bcCcPuG+wZC/N3r/wyivqS7JbIRg1+tgyN2SHZzwPkHO5NLKk87WdRy1jNsESYRwvwQ3bEDpUoNK0ZKiWoAk9TyQRlq/0Z+2ma4wmcruj/Jp3/P5k3zPrM9lJ 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: On Mon, Aug 7, 2023 at 8:11=E2=80=AFPM Yin Fengwei = wrote: > > Commit fc986a38b670 ("mm: huge_memory: convert madvise_free_huge_pmd to > use a folio") replaced the page_mapcount() with folio_mapcount() to check > whether the folio is shared by other mapping. > > It's not correct for large folios. folio_mapcount() returns the total > mapcount of large folio which is not suitable to detect whether the folio > is shared. > > Use folio_estimated_sharers() which returns a estimated number of shares. > That means it's not 100% correct. It should be OK for madvise case here. > > User-visible effects is that the THP is skipped when user call madvise. > But the correct behavior is THP should be split and processed then. > > NOTE: this change is a temporary fix to reduce the user-visible effects > before the long term fix from David is ready. > > Fixes: fc986a38b670 ("mm: huge_memory: convert madvise_free_huge_pmd to u= se a folio") > Cc: stable@vger.kernel.org Andrew, this one isn't really a bug fix but an optimization, so please feel free to drop the Fixes and Cc tags above. (It seems to me it doesn't hurt for stable to take it though.) Thank you. > Signed-off-by: Yin Fengwei > Reviewed-by: Yu Zhao > Reviewed-by: Ryan Roberts > --- > mm/huge_memory.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/huge_memory.c b/mm/huge_memory.c > index 154c210892a1..0b709d2c46c6 100644 > --- a/mm/huge_memory.c > +++ b/mm/huge_memory.c > @@ -1612,7 +1612,7 @@ bool madvise_free_huge_pmd(struct mmu_gather *tlb, = struct vm_area_struct *vma, > * If other processes are mapping this folio, we couldn't discard > * the folio unless they all do MADV_FREE so let's skip the folio= . > */ > - if (folio_mapcount(folio) !=3D 1) > + if (folio_estimated_sharers(folio) !=3D 1) > goto out; > > if (!folio_trylock(folio)) > -- > 2.39.2 >