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 C4E0FEB64DC for ; Mon, 10 Jul 2023 08:39:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4DFC06B0072; Mon, 10 Jul 2023 04:39:36 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 48FCF6B0074; Mon, 10 Jul 2023 04:39:36 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 37E1C6B0075; Mon, 10 Jul 2023 04:39:36 -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 298EC6B0072 for ; Mon, 10 Jul 2023 04:39:36 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id E7ADD120202 for ; Mon, 10 Jul 2023 08:39:35 +0000 (UTC) X-FDA: 80995053510.09.85701B6 Received: from out-47.mta1.migadu.com (out-47.mta1.migadu.com [95.215.58.47]) by imf21.hostedemail.com (Postfix) with ESMTP id AAF091C0010 for ; Mon, 10 Jul 2023 08:39:32 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=Ivy1al2D; spf=pass (imf21.hostedemail.com: domain of naoya.horiguchi@linux.dev designates 95.215.58.47 as permitted sender) smtp.mailfrom=naoya.horiguchi@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1688978372; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=f3AhQNodXj38q0A4RJMgjfTCHYaDaMVujsrqc1ZOwT4=; b=fQNCSHc1wUD6dgNk9IcIRXuAeaA3TJR1GRNg8LwohIrOXzZQuFhB33STJ/eoE0dLnR3AGj 8Yhh98+P/uY382+2UwtBJOaUweYAUl+Coiiffi5wUG/d7lyc+XSKXHkFFHOhaBsOjEz6is fBn8wwCuEXCtkX2GqNyMuc6gV/JWzIM= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=Ivy1al2D; spf=pass (imf21.hostedemail.com: domain of naoya.horiguchi@linux.dev designates 95.215.58.47 as permitted sender) smtp.mailfrom=naoya.horiguchi@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1688978373; a=rsa-sha256; cv=none; b=EeRbsK1VajH8t4gAlycIaXreHejiRCwb+84193/KfabF6ggNqh2o5Fy5WX4oP6bGFkuoX5 xbkI3xAYh4aPM9abGKSMXutcpXwHrn2aK+F4Hccq4siwSmEmxK/hrv5zHLAIECQgA8HAsz JQvss9mZihBeSykfDfkXwKS9ivQOrXQ= Date: Mon, 10 Jul 2023 17:39:25 +0900 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1688978370; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=f3AhQNodXj38q0A4RJMgjfTCHYaDaMVujsrqc1ZOwT4=; b=Ivy1al2D4UEgWZb/o3Qwc8na2ZmkWAjPPgynJKnr1n14TTFft8HSXdG5HwtEARWFytVMeV vj1GhVkawKDFxLDfNOkqtEnk/h9Al6altFXc/6idFD4ZxUcaM2urhxtHK+SLYgPT+l9wwv RG9hXNY8ink+ZItRSNAgXsr617cRE+w= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Naoya Horiguchi To: Miaohe Lin Cc: akpm@linux-foundation.org, naoya.horiguchi@nec.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 8/8] mm: memory-failure: fix race window when trying to get hugetlb folio Message-ID: <20230710083925.GA1754785@ik1-406-35019.vs.sakura.ne.jp> 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> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <74acb109-76cc-3990-c770-8330e343ef54@huawei.com> X-Migadu-Flow: FLOW_OUT X-Rspamd-Queue-Id: AAF091C0010 X-Rspam-User: X-Stat-Signature: ku9gjkucyt51471uqq4f5suhsstrrert X-Rspamd-Server: rspam01 X-HE-Tag: 1688978372-67065 X-HE-Meta: U2FsdGVkX194RkfFWk9R0ZcMUsJL89jEvpfgaUg4AgqzJ7LArqAVOWog0r+aPu9nViiXeiF8PxLYIsnakGOiAWDBLTDFjNk2PPBxw07xtVaRCQ8N81wGMEPiS78fQqd4TN8KQN6enEfUKyv6peYitKMtijIYPQeEA/RvsQXrN0rTl3FQ02Jm7ootyL+88SxygCnZ2dw2w3admFUSdR+DtXVpp+Gdi9/oq6Plp6a+iTI6b4o9O0V4gP+mw0Z6uM25wWf03HtpwFsvDxdUXaTsqNLzDRv+G2kZ8FX/GYr/gIAAas6e8BwP/z/5fsopkDmx9Vu3FRAc5mW7wmUmLUCVl1W6JV7JfrRf3nupKUDIklUyxOTi84w334pNLJ8y9uhIms6PY6pE31XvQjlt0lf5ahPGw55/RMR3/W1GoUq7qc6Y85OZVp6kTo1q5qIElSdrN5vPGjG3c91ZZsSm5XC3i/Y01DsZSH0tX6TubMEO0Pqq5upUWIA/+jzaX50VzqdmN9HrGvCY2Pz5J3mPp7TAA1gb/FhcP49f0oK+4hmP1kER5z2qYX0bXOnIdnCMjAFIspCjgmObrPu2NtJfP2BSEoHJ5yybJPjDeCi6VqCUcz+AAWChd7v3twl7Rx3v+qLXN1EtM894jAY/xgSt+KwMTZLDGDwa95C3MCx1bMzkTR/+EvM9C5yyWK/aA2UGZNh5cUpFsSdrUHTwMLiq7mnUv9ZLzAvyDY6oj6Pfso3kq+Fb/LL8gkoGI5KjDu2P3Y6du3zXH1J3z6zyp3VP5knD5DFhO5dbAfrwxi3BH52uBmiwBf2XzcRJ9F2Y7a4Z5jwLNmA0UNpq6A+BWv1JvNoGuNZjscVPERZoKT2dMZRnO+M8cDwgspLVPDLfi5TE09Xrm5se9O2X0EC96YvZBrfFQyk97c/+NvNYwVXjuQUIhtaXvPnHhLRe+4C8tRUuby9WN5gumxiBkqUWW6snZW3 h+7WSZGd kdvEh+pPKEmodTFgGWkk/tx3oIDYdoSuAPMYVO6jYMBbo9hBQoDgNyemi9KV6bX3vBtvK 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, 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. Thanks, Naoya Horiguchi