Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp30841676rwd; Thu, 6 Jul 2023 11:27:56 -0700 (PDT) X-Google-Smtp-Source: APBJJlGyga7vAThyihr/09gyEG7rddDEuxwE5HgZkqXe1tYl1fFB3qZZ6tuigLCXwAgcLJKcaeXQ X-Received: by 2002:a9d:65c3:0:b0:6b8:7fe2:cdde with SMTP id z3-20020a9d65c3000000b006b87fe2cddemr2926435oth.29.1688668076569; Thu, 06 Jul 2023 11:27:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688668076; cv=none; d=google.com; s=arc-20160816; b=iIU6cEC7Ncd6G+xFxugU5qw0i0Pd6LjNlwQLvP519laY9mRLJsSmILeLMZT+q39ZM7 smbfVpx39Ckyn2hNFpW4KxD15JwW+XXTAuLanMdTGZDNYjpJ2hAWnhaYuhwRjnxdiYuR ygvH4DbQLhPjGpHsi3mwA5qvzW92jmdlht/cgbve+0EAkC2n8nyTYgkZo1q+SJ7uMSkl O1YPwGQ1POt67dgMv1tDYujR7hxyItpg7vxIIQVTvGGYVF0yd4HJ19sx6TXPKX3GIg/7 aj1M0QFJhGHNmj/m1MD4NHYHP9EYJX2BBBFRuOC/+EXSDpeiL37d5CorpF9aRlyoN2i+ cj/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=Yoi+Ui/n5ymlKlL4emJAwTL06zox3wOS5TKB3nBjTn0=; fh=8m/nJoD/IsjIun05Z4EWG191YnWinYdqPC6nmmtIznc=; b=wIJ1xSJgNqTr+9V8grEd3sCQscjshK2ywYlX6/si1mXX+JcRnjXLDMXJ5dX1igSxd6 9QgnY13DtAqVUB3YxFxf0nJhv7ILBTpzQ4IuiGoZ3vM2S2fYvAF0ngal6AlJta8SvNQl RJ94VAXoYRuv3+O+gg1JjfPKelrz4KbpvwWyc5XrFRZl7Mi97+As2sMWTpYfff9F/wId qOY6ME4b6NwUAfLlFTCS9+5inCtlkJEvgHmykadBrEtE7X0yfbuYDWr/HDiSM4AdmvYB wIyaDy14eQ2M1GXL3Cja/2GXxHZHvlsTgMXOnzToaCHj8WTBt471mARHPx78Y7Y3j08g qaeQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20221208 header.b=0ABh7BnJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bv123-20020a632e81000000b00536b4c4b695si2000126pgb.136.2023.07.06.11.27.43; Thu, 06 Jul 2023 11:27:56 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20221208 header.b=0ABh7BnJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232149AbjGFSLy (ORCPT + 99 others); Thu, 6 Jul 2023 14:11:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52310 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229968AbjGFSLx (ORCPT ); Thu, 6 Jul 2023 14:11:53 -0400 Received: from mail-yb1-xb30.google.com (mail-yb1-xb30.google.com [IPv6:2607:f8b0:4864:20::b30]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C62C21BEB for ; Thu, 6 Jul 2023 11:11:49 -0700 (PDT) Received: by mail-yb1-xb30.google.com with SMTP id 3f1490d57ef6-c5f98fc4237so1049130276.2 for ; Thu, 06 Jul 2023 11:11:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1688667109; x=1691259109; 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=Yoi+Ui/n5ymlKlL4emJAwTL06zox3wOS5TKB3nBjTn0=; b=0ABh7BnJQaOkCm2vwnIyXS85Dm6oN23GDz6XekxiM5iuuvfjXA0V3sc+fj0ZJlKrmW JoRoMZlnwm4pe0qo0/HKiKXtoo2kjmt5Eyl7hzUSwj4Mo+R5UpHYRIdR6UXkQgI2Kl8q cxoI72dPLw8DGkocfdomCxadLgQTPkz+3PIELCGbAXIpeDwnsx6wRaQsldAAZ9lhYLsb HGkcTDMjjasKMcZ8ijtbTGQkQO1Ms+l5fzaabqAyGAM9CXJPihwsb2gxQNwsCmehMJTu RlWbpR719cRHDOMj62gy8n1T5g2b7wEy4PNreo2IScT9KDTvIsh+eBx5Rggsy4b+SYse Kgfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688667109; x=1691259109; 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=Yoi+Ui/n5ymlKlL4emJAwTL06zox3wOS5TKB3nBjTn0=; b=Fxxh8Tfs8b9xZ45b6eCd53/pdwrCbeCDeiB5uUWYJNDB1qmavjRqn3qkm2bSSFoiN8 XGU8QA+heZDAO4E3fungikKAXc0GcJGcez/aCj3sb4gDv0Iv5fv/BiCqHeMikknorg49 ABosTORYiivTdu2MoZD1MHRvcd6T5znGnQCYFyD9x5eyySfJFrsC59XVUtJgjyEsD0vT FYV2/9zP3RW5U3GjqcYwiFTZ1d8zmRv3IqfWuQ3S/AozNWHc4ft5j1XCbnMX/Y6MjMqw n3x38phc7KXY+sPCf6EoXBhtEm8+sryHz5u1g8cspN8lkCUR8p4/trOVBgBg8lP+GxKM PIsA== X-Gm-Message-State: ABy/qLZCi6eEv49tHyZ9yTDCiRPL70ZiLXNVQZN6+YimP2k0eaezQP+9 Qmfnq7nwGVpkdq/HT5mr/JURfy0vjEcjVmeAX8adUw== X-Received: by 2002:a25:6085:0:b0:c18:1300:6339 with SMTP id u127-20020a256085000000b00c1813006339mr2566303ybb.52.1688667108853; Thu, 06 Jul 2023 11:11:48 -0700 (PDT) MIME-Version: 1.0 References: <20230623164015.3431990-1-jiaqiyan@google.com> <20230623164015.3431990-2-jiaqiyan@google.com> <20230705233541.GC41006@monkey> In-Reply-To: <20230705233541.GC41006@monkey> From: Jiaqi Yan Date: Thu, 6 Jul 2023 11:11:37 -0700 Message-ID: Subject: Re: [PATCH v2 1/4] mm/hwpoison: delete all entries before traversal in __folio_free_raw_hwp To: Mike Kravetz Cc: naoya.horiguchi@nec.com, songmuchun@bytedance.com, shy828301@gmail.com, linmiaohe@huawei.com, akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, duenwen@google.com, axelrasmussen@google.com, jthoughton@google.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-17.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,USER_IN_DEF_DKIM_WL,USER_IN_DEF_SPF_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jul 5, 2023 at 4:36=E2=80=AFPM Mike Kravetz wrote: > > On 06/23/23 16:40, Jiaqi Yan wrote: > > Traversal on llist (e.g. llist_for_each_safe) is only safe AFTER entrie= s > > are deleted from the llist. > > > > llist_del_all are lock free with itself. folio_clear_hugetlb_hwpoison()= s > > from __update_and_free_hugetlb_folio and memory_failure won't need > > explicit locking when freeing the raw_hwp_list. > > > > Signed-off-by: Jiaqi Yan > > --- > > mm/memory-failure.c | 8 +++----- > > 1 file changed, 3 insertions(+), 5 deletions(-) > > After updating the reason for patch in commit message as suggested by Nao= ya, Thank you both Mike and Naoya! I will add the explanation in the next versi= on. > > Acked-by: Mike Kravetz > > -- > Mike Kravetz > > > > > diff --git a/mm/memory-failure.c b/mm/memory-failure.c > > index 004a02f44271..c415c3c462a3 100644 > > --- a/mm/memory-failure.c > > +++ b/mm/memory-failure.c > > @@ -1825,12 +1825,11 @@ static inline struct llist_head *raw_hwp_list_h= ead(struct folio *folio) > > > > static unsigned long __folio_free_raw_hwp(struct folio *folio, bool mo= ve_flag) > > { > > - struct llist_head *head; > > - struct llist_node *t, *tnode; > > + struct llist_node *t, *tnode, *head; > > unsigned long count =3D 0; > > > > - head =3D raw_hwp_list_head(folio); > > - llist_for_each_safe(tnode, t, head->first) { > > + head =3D llist_del_all(raw_hwp_list_head(folio)); > > + llist_for_each_safe(tnode, t, head) { > > struct raw_hwp_page *p =3D container_of(tnode, struct raw= _hwp_page, node); > > > > if (move_flag) > > @@ -1840,7 +1839,6 @@ static unsigned long __folio_free_raw_hwp(struct = folio *folio, bool move_flag) > > kfree(p); > > count++; > > } > > - llist_del_all(head); > > return count; > > } > > > > -- > > 2.41.0.162.gfafddb0af9-goog > >