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 A1003EB64D9 for ; Mon, 10 Jul 2023 08:59:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 304956B0072; Mon, 10 Jul 2023 04:59:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2B4256B0074; Mon, 10 Jul 2023 04:59:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 17BEB6B0075; Mon, 10 Jul 2023 04:59:20 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 07E486B0072 for ; Mon, 10 Jul 2023 04:59:20 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id BD5CC802B3 for ; Mon, 10 Jul 2023 08:59:19 +0000 (UTC) X-FDA: 80995103238.23.A438690 Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by imf05.hostedemail.com (Postfix) with ESMTP id 35C47100004 for ; Mon, 10 Jul 2023 08:59:15 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf05.hostedemail.com: domain of linmiaohe@huawei.com designates 45.249.212.187 as permitted sender) smtp.mailfrom=linmiaohe@huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1688979557; a=rsa-sha256; cv=none; b=TEoqmn1IOO9uEWWNX403LkjysZOEfoKK241z+UEamYfgn4Tqd214arxETXlWQThYdFn8gj 4ArXFdmD9FuTfuFfFaNu6tYY8qbdcHg9WTPoiKTzzP8sLuNvXuRIZvElpx0rBePqckF/w6 NstugVMdtK+2T/Z8EkEoxjMi+Q/1PU0= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf05.hostedemail.com: domain of linmiaohe@huawei.com designates 45.249.212.187 as permitted sender) smtp.mailfrom=linmiaohe@huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1688979557; 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; bh=5Mbc1vx3AzfxzMQH9xxT7mc7wMXv9RGjwMKx8cQLYH4=; b=gzsWbzKzgM08HMqwGxCASDI6MtkDoszvPhl0mDq5KnNFiIw+KNtHCpRnEqbtV2c34ZvjeZ 1a8n7wnbz6dp8uqj/slCEJVeLpSKWBvG0nqBE/nYbz/bIZN0LdeHYGbnnNUWi3RQEoLTz0 sko0DW19STpJZ25kDxGlDiOCVqhhNeA= Received: from canpemm500002.china.huawei.com (unknown [172.30.72.56]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4QzyXZ1hN1ztR8c; Mon, 10 Jul 2023 16:56:14 +0800 (CST) Received: from [10.174.151.185] (10.174.151.185) by canpemm500002.china.huawei.com (7.192.104.244) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Mon, 10 Jul 2023 16:59:10 +0800 Subject: Re: [PATCH 8/8] mm: memory-failure: fix race window when trying to get hugetlb folio To: Naoya Horiguchi CC: , , , References: <20230708085744.3599311-1-linmiaohe@huawei.com> <20230708085744.3599311-9-linmiaohe@huawei.com> <20230710075812.GH1686200@ik1-406-35019.vs.sakura.ne.jp> <74acb109-76cc-3990-c770-8330e343ef54@huawei.com> <20230710083925.GA1754785@ik1-406-35019.vs.sakura.ne.jp> From: Miaohe Lin Message-ID: <147fb145-1289-4526-862e-0cb63c9711e0@huawei.com> Date: Mon, 10 Jul 2023 16:59:10 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 MIME-Version: 1.0 In-Reply-To: <20230710083925.GA1754785@ik1-406-35019.vs.sakura.ne.jp> Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [10.174.151.185] X-ClientProxiedBy: dggems703-chm.china.huawei.com (10.3.19.180) To canpemm500002.china.huawei.com (7.192.104.244) X-CFilter-Loop: Reflected X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 35C47100004 X-Stat-Signature: 63rcnzrgzcu56rzbdp8uxh6zbnnn1818 X-Rspam-User: X-HE-Tag: 1688979555-154139 X-HE-Meta: U2FsdGVkX1+OgbQGGGy7r/RT3BUzcmnr/RegqN3nE7ayicF8AKpQ/1Wh05ERG+kt/VXmoxB5W0SW+HuhlrtKMz8hCgDM8fH6sepyPl/s8bUGTSao/x8sNnviSI+pTL3ZtDUGes7qQvg+4jCmTmerh4bX+ZqhC/nGkdZOZ+BU7qg1dSBfyHgv6+h4PTt3YHzj+LCfIfSQ3vmU8I8ZmdudLOhN0r4iUYJuBLnHP2QXW1lNT93WxSaomeDOpTJWJmpj4llYBIDJ78KG2JIffwBoWYzpXW2f5hjN5cC/BHNeyefZECDf6piW2tJBILLyXKIL0IuvEkDTny8QIywfP2jtrBPU1ZIWJgKmwfiDbBir4s95r1UHcAJomoJcL/1rAUtMzB/iDvUyyq8LcPbbfXtuTRLcHKqw7+3xWPJyrLhfLmFUqAZy3QXm3GetuR+6xdjP3EOYQ2Nv11BheMGVpbsAibUWQBfMqhmdXwFkhZIwz3QSJQfHKkM8nI5AxN8qy1moVsxy7dj8y0XiVzZFLBnnR+bYGpbNzyBWYQ1RaKRgLvzQnD91DYuPh+BnGniynwTi0ZHtJl8aznAzHjLT9SEhxZAr5FDCp44UfL0AdrWQmL1xUR0zfDo/dW3HB0o1kWBuRiiiZnv/ZDIBlVPElKPMcsuRdMixBFLM+Xb5ajGm60W5N/XO8ALtOK+cJek71y+GNf2xPMg+zhIxRWiXOGx8C5LVbMGQhwHAQ51mj+JKps5K6OVH07uoH6IUI4z0Ye0d0nkrztmvwqrAd+LYU/4lvtKIpZLeZ37z9HwXILb5rRZWKClQ5HgRpT0lt1rc5wlQmuYwqSawz+h03yObOgJD3x6xawnvQZV3UJ7+ECR+iaJHx2xkNJYOBH9hrz/gTfFYAyC5hhWs38ca1jFzvdBXH+zDjqidTvBwJzf9T4aHjs5V8lVIDej3kxS24HJKryrFfxf/7niPUGJV7tnhC1k TKjPih4S x8+u9W8xe9p3hXXOEEQfz7A7qCSvShkXRZ79zDzRwZt5RSEixuc7fiLGSfMkm23GwbSvTLATbIGB9BL5PxOmOd8qen9Qbu3ItYM11cfBvT9PyPmub+dpP67mwsjstf6AVIXA3LZC3y8LIpb9a41ljVgqiww== 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 2023/7/10 16:39, Naoya Horiguchi wrote: > On Mon, Jul 10, 2023 at 04:32:27PM +0800, Miaohe Lin wrote: >> On 2023/7/10 15:58, Naoya Horiguchi wrote: >>> On Sat, Jul 08, 2023 at 04:57:44PM +0800, Miaohe Lin wrote: >>>> page_folio() is fetched before calling get_hwpoison_hugetlb_folio() >>>> without hugetlb_lock being held. So hugetlb page could be demoted >>>> before get_hwpoison_hugetlb_folio() holding hugetlb_lock but after >>>> page_folio() is fetched. So get_hwpoison_hugetlb_folio() will hold >>>> unexpected extra refcnt of hugetlb folio while leaving demoted page >>>> un-refcnted. >>> >>> Very nice, thank you for finding the issue. >>> >>>> >>>> Fixes: 25182f05ffed ("mm,hwpoison: fix race with hugetlb page allocation") >>>> Signed-off-by: Miaohe Lin >>>> --- >>>> mm/memory-failure.c | 18 ++++++++++++++---- >>>> 1 file changed, 14 insertions(+), 4 deletions(-) >>>> >>>> diff --git a/mm/memory-failure.c b/mm/memory-failure.c >>>> index 76d88d27cdbe..066bf57f2d22 100644 >>>> --- a/mm/memory-failure.c >>>> +++ b/mm/memory-failure.c >>>> @@ -1388,8 +1388,14 @@ static int __get_hwpoison_page(struct page *page, unsigned long flags) >>>> bool hugetlb = false; >>>> >>>> ret = get_hwpoison_hugetlb_folio(folio, &hugetlb, false); >>>> - if (hugetlb) >>>> - return ret; >>>> + if (hugetlb) { >>>> + if (folio == page_folio(page)) >>>> + return ret; >>> >>> Some short comment about the race against demotion here is helpful. >> >> Does the below comment makes sense to you? >> >> " >> Make sure hugetlb demotion did not happen from under us. >> " > > Yes, this sounds fine. Will do it in v2. Thanks. > > Thanks, > Naoya Horiguchi > > . >