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 260FAC001B0 for ; Tue, 8 Aug 2023 02:11:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9DB416B0075; Mon, 7 Aug 2023 22:11:11 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 964256B0078; Mon, 7 Aug 2023 22:11:11 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 804C68D0001; Mon, 7 Aug 2023 22:11:11 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 6DFCA6B0075 for ; Mon, 7 Aug 2023 22:11:11 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 4AD93B20E4 for ; Tue, 8 Aug 2023 02:11:11 +0000 (UTC) X-FDA: 81099309942.06.77F64BF Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.65]) by imf17.hostedemail.com (Postfix) with ESMTP id 245B34000A for ; Tue, 8 Aug 2023 02:11:08 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=gbjbalHj; spf=pass (imf17.hostedemail.com: domain of fengwei.yin@intel.com designates 134.134.136.65 as permitted sender) smtp.mailfrom=fengwei.yin@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1691460669; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=o6jkD1q2jWi2X8kGNkhNdNjBTl2DhE6CD0Wi6fdQEcw=; b=dAy+JZVGQiUDqKphJZbKTUix8eTlCOEmzmsI88Q3vdqHc62B94tBGNjtB1VXWze1EnWNm3 9mGYykMVg9GRQPptdjZLj3LdSPqfOVIOdh85awdbOIZk6bIY68qCPYR39S4JOvhkJLQmWI iqQmOi35VUxL3ubCdmPz7IWkj2moRJs= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1691460669; a=rsa-sha256; cv=none; b=gFj/hG91jkA8qKujga1exJu1GXl3hbGipwVYUe7e/SexeAaBurvUjspoCTp43YZzLpEsrV +j/V6B8tfRPC3wop2WzV9O6OySI1g5Qc6wbK81EZ7si3fAtwJSb28qjzEDkIzFLg4F32i7 alhe2jF+h9u+kmY/4yCFVfme6QbK9gc= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=gbjbalHj; spf=pass (imf17.hostedemail.com: domain of fengwei.yin@intel.com designates 134.134.136.65 as permitted sender) smtp.mailfrom=fengwei.yin@intel.com; dmarc=pass (policy=none) header.from=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1691460669; x=1722996669; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=F3oORw0alZIlqdHjL/85Fxei/Bpe8d1CgQMNfWf9J+M=; b=gbjbalHj/loBHFKeNOf3jKfkVm1836tdIpJa1oEUqOAZ57va2RR225WJ JMINJ4sSyUpp/fRAweqbc04102uTwUM1HAPYeSM8/5VrUzfAq5288081J 3RW50E1ToQsyplup929EQeojDhfu2L3bL+Ix9/81uyf+ctHY3s4O9ws9e V7b7Z/MiKaOjb31FUAenGVk0asPcqOgGkVUuMTEXM1pX+M9VXTreCoFS2 Q8MLcmUrvViiqUCzjj/dIudw2CDXGVutfVYFU/AtufIQQab4ONc3C9ECJ gE6PxHjun7E2nIcDT3vvcxLPdAKBN2hj1hz8jlTLJU+GAcFhx+EAjIY+j g==; X-IronPort-AV: E=McAfee;i="6600,9927,10795"; a="374371060" X-IronPort-AV: E=Sophos;i="6.01,263,1684825200"; d="scan'208";a="374371060" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Aug 2023 19:11:07 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10795"; a="681051006" X-IronPort-AV: E=Sophos;i="6.01,263,1684825200"; d="scan'208";a="681051006" Received: from fyin-dev.sh.intel.com ([10.239.159.32]) by orsmga003.jf.intel.com with ESMTP; 07 Aug 2023 19:11:03 -0700 From: Yin Fengwei To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, akpm@linux-foundation.org, willy@infradead.org, vishal.moola@gmail.com, wangkefeng.wang@huawei.com, minchan@kernel.org, yuzhao@google.com, david@redhat.com, ryan.roberts@arm.com, shy828301@gmail.com Cc: fengwei.yin@intel.com Subject: [PATCH v2 2/3] madvise:madvise_free_huge_pmd(): don't use mapcount() against large folio for sharing check Date: Tue, 8 Aug 2023 10:09:16 +0800 Message-Id: <20230808020917.2230692-3-fengwei.yin@intel.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230808020917.2230692-1-fengwei.yin@intel.com> References: <20230808020917.2230692-1-fengwei.yin@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Stat-Signature: r4mz3hrepr9xhfdicr5tnjmp87dd36cy X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 245B34000A X-Rspam-User: X-HE-Tag: 1691460668-368921 X-HE-Meta: U2FsdGVkX1+JbSlYKDL0y8zklaWmMdxPeGnCbpQfNccx83TdyS9Zl0A+gORnemSRbyTNOVTwJdRkQeFD/QMSAq63qX4XwpLvcVuRnfgxFLOsBDeK17oEA8nEsb8/d/xt84cr4fVhZvMypIVUBr6zktOpjeKSWb4btpIGi64+cWEiy55+krk+eD3QmvXD5Rd14GHX4y7J8mliAY5BmguN/BHKrbg5fP7N3XX/7QujPCmY+eJh5xrQWCV+PLjupWSkLlhe6Faygf+K3zc0iqYnesnWUL4Da9P+2gnNBLVSXcGYO8QaWnakCJEzL4Z4ot5Li9QTPrJiZbl7CDnVUDPc7pO92GQb5BnqZc1GJ3AYkWPUseWUATtuOSzShLNWfCY1FhEWFh0icQwAhRXp3YyDThx5lUYylNG6ifQ4vbUIqIVNt4CwynKqzlsBJVNVU1pMDTCE3TbTIpEtPR+0Zl6UQepdvY+kQmI2+u4S521pdI5JyuiFt82zRMpzkyaA69fCxZgplwPDJDbLe2jL5/sPb7laD/+OtycJYsVXsKPw8hsv5IZ2HXc679g2hg7PFMWlDykNgvrZsRjLmX7xSLenXPN3gDXE0XVqU7aTeioB3dtm6XMiFbqd5028Upli5DRQkDZmUKtCZg8tDL8piwTHMXIjDTVp/Vh+boUhkSVehb5++TGedDv1KGR4iZ9LadsdR+CETZAwOPgcYeyYmMIyGAA4/musGSQD94ZeMZgsmCg+tsb/71Wue8Ed695ty1sh6fL6sdxcz8zK08Z20YypGK/xyUVeQmksQ5K6QIYmf9mT8CiQUSLSIzBLsCZDH2QEjP/g1dISfQEAdldFV4FFRlSIPrZOUAwwmQ5OtJ7Ly7L8yzD5q+La1cm8WtnxWCvxkMifUPbWGNV2K299dWXbNQhRc9x2Tiwj+j1nCZFxCJuYfc0qtKU3vC8SyQIQKPh7k5YOtcw/FCs5sHkO9wi PRHuoTFH 6fZckQrgGKNDN5MKIy6ug9Lq2zeYJHeMZNkwi9+yikDsgYXeACu0lfBDtEfiJ5zx8WHpSm7sfX4jybFOYMdENwg9lkfu7DESL13/C5Owrs5Nk/nPXNi8jSekDW4fr7ei7yAEae2efJJq8ZibGF4JqCkFSVqwokwwqxOHIhkUTkQI0wPhtbNyGgvt4MgM1zKq/I9ve8d5MKfmjIG8NGTRczxDtXUU4n0x382eXf5SaIwFRSfggs5Khuito5vMPcJXh868Z9T8szdQNZg2VdEJp5MVKfKM0GkVrG/qSS912PQBSgKCSZz5XazqxwPVSN4dk0NUle8tLDR9lSZdtUM/CeTXSueJFOOBrOzfs77KMNvSp75y9aZpjsFgWoOY0FAR14erjTc71z/I9rMc5gwfyGmVz+7Ge5/VzJY8Y 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: 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 use a folio") Cc: stable@vger.kernel.org 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) != 1) + if (folio_estimated_sharers(folio) != 1) goto out; if (!folio_trylock(folio)) -- 2.39.2