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 X-Spam-Level: X-Spam-Status: No, score=-13.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A37F7C47089 for ; Fri, 28 May 2021 02:43:32 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id F1E9E613BA for ; Fri, 28 May 2021 02:43:31 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F1E9E613BA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=bytedance.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 4FD596B006C; Thu, 27 May 2021 22:43:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4AD816B0070; Thu, 27 May 2021 22:43:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 300B56B0071; Thu, 27 May 2021 22:43:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0111.hostedemail.com [216.40.44.111]) by kanga.kvack.org (Postfix) with ESMTP id EFF8D6B006C for ; Thu, 27 May 2021 22:43:30 -0400 (EDT) Received: from smtpin10.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id 95E2DA748 for ; Fri, 28 May 2021 02:43:30 +0000 (UTC) X-FDA: 78189093780.10.03BD9D8 Received: from mail-pj1-f43.google.com (mail-pj1-f43.google.com [209.85.216.43]) by imf01.hostedemail.com (Postfix) with ESMTP id 822F3503BD18 for ; Fri, 28 May 2021 02:43:21 +0000 (UTC) Received: by mail-pj1-f43.google.com with SMTP id ot16so1692028pjb.3 for ; Thu, 27 May 2021 19:43:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=WK7OvhFGEkm9+yUjk0yhj08hvOUVzO8BEh+bcJphobk=; b=YVjm2iFD/iidjeX+pAgz/60ykJQDrsKhPPU2W4DajsYYUtCikdjC++gYgPHMKw+ha2 L6jkmHnk/A514N42ePVMmOnSbYqbp7F/nsrqABYE1eU5X1wcty7JvU53CjaDviI4KhVB nuZ0XZpInEU6QqKu2jzbeN7Z9A7XfIDvmbFADQYmQGZ3sBpP816cvILTECCoUhYi0a5h G1MvSYzeYFIes44hCHSba9PrSAlFtbIkSV1hmJ8Y3t3wDB91NkT78AKZCmbGvk52DYMf ATkdNn9tBLkz1kwFIwe1mIKVwP66kQ0EYv+NQqd10pmBKJRXY2jMqvcQI/5VqJWLjSS0 DyPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=WK7OvhFGEkm9+yUjk0yhj08hvOUVzO8BEh+bcJphobk=; b=ec37xU6U5dMr/ue9a/Y214AeOFFwXOxBNBgmFCWv+RvD1PwqEcVogb8J71jCapziTx 7nJjKn5nnneGz9/tWr/kqeHQ+f6bYmwQQx7zV+X5+tkncK6zDLcmNGPlBdK2xWL3VHk+ dlQR0KEijDMbGnkOw2NcdKvTUdfChK4xbcejQNm+5O70NcuE9vYPu4JjfX8viPnwrpmI bqPBYF6gYGj9VwLMeM7I7+WVxqSNFznqKkdOgMUed0bWmZb1wz9LU1GkRpgFPc2VPcGS EvucjR4EVaByDWZagX3Ka1DjUXLV+QcXBA3oLL5mdKfp/gTXALOdlJ7B4ioyZnLRX519 bmoQ== X-Gm-Message-State: AOAM530OGl/AkxQa5Vk1Nrh7olZXNrXiT7g4k91PVwgrpxaRA3KTsvgg fNXScWlSjAe164yrjEXVZb5sVBwQDsJhCkNeq5U8jQ== X-Google-Smtp-Source: ABdhPJzLyme5Cu7erOyOPnEVb3k7CpFuGVYCuJq2UiCSfbZOQyFIm5M+EW929Cl9bzFGapFhADyFhnKJkSsm6edOS0E= X-Received: by 2002:a17:902:d2c8:b029:fe:cd9a:a6bb with SMTP id n8-20020a170902d2c8b02900fecd9aa6bbmr5329743plc.34.1622169808671; Thu, 27 May 2021 19:43:28 -0700 (PDT) MIME-Version: 1.0 References: <20210527231225.226987-1-mike.kravetz@oracle.com> In-Reply-To: <20210527231225.226987-1-mike.kravetz@oracle.com> From: Muchun Song Date: Fri, 28 May 2021 10:42:52 +0800 Message-ID: Subject: Re: [External] [PATCH] mm: hugetlb: fix dissolve_free_huge_page use of tail/head page To: Mike Kravetz Cc: Linux-MM , lkml , Michal Hocko , Oscar Salvador , David Hildenbrand , Naoya Horiguchi , Andrew Morton Content-Type: text/plain; charset="UTF-8" Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=bytedance-com.20150623.gappssmtp.com header.s=20150623 header.b=YVjm2iFD; spf=pass (imf01.hostedemail.com: domain of songmuchun@bytedance.com designates 209.85.216.43 as permitted sender) smtp.mailfrom=songmuchun@bytedance.com; dmarc=pass (policy=none) header.from=bytedance.com X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 822F3503BD18 X-Stat-Signature: 5dsbj9h4iyb3oa6tdk1hhhg8r1pn7nof X-HE-Tag: 1622169801-550951 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 Fri, May 28, 2021 at 7:12 AM Mike Kravetz wrote: > > The routine dissolve_free_huge_page can be passed the tail page of a > hugetlb page. The tail page is incorrectly passed on to the routines > alloc_huge_page_vmemmap and add_hugetlb_page which expect a hugetlb > head page. > > Operating on a tail page instead of head page could result in addressing > exceptions or vmemmap corruption. > > Signed-off-by: Mike Kravetz > --- > The code with this issue is only in mmotm (and next). Specifically > mm: hugetlb: alloc the vmemmap pages associated with each HugeTLB page > Andrew, I assume you will fix in your tree. Sorry. It's my bad commit. Thanks Mike for fixing this. I suspect this should be squashed to "mm: hugetlb: alloc the vmemmap pages associated with each HugeTLB page". Reviewed-by: Muchun Song Thanks. > > mm/hugetlb.c | 4 ++-- > scripts/rust-version.sh | 0 > 2 files changed, 2 insertions(+), 2 deletions(-) > mode change 100644 => 100755 scripts/rust-version.sh > > diff --git a/mm/hugetlb.c b/mm/hugetlb.c > index 69a4b551c157..d2461c1f32dd 100644 > --- a/mm/hugetlb.c > +++ b/mm/hugetlb.c > @@ -1954,7 +1954,7 @@ int dissolve_free_huge_page(struct page *page) > * Attempt to allocate vmemmmap here so that we can take > * appropriate action on failure. > */ > - rc = alloc_huge_page_vmemmap(h, page); > + rc = alloc_huge_page_vmemmap(h, head); > if (!rc) { > /* > * Move PageHWPoison flag from head page to the raw > @@ -1968,7 +1968,7 @@ int dissolve_free_huge_page(struct page *page) > update_and_free_page(h, head, false); > } else { > spin_lock_irq(&hugetlb_lock); > - add_hugetlb_page(h, page, false); > + add_hugetlb_page(h, head, false); > h->max_huge_pages++; > spin_unlock_irq(&hugetlb_lock); > } > diff --git a/scripts/rust-version.sh b/scripts/rust-version.sh > old mode 100644 > new mode 100755 > -- > 2.31.1 >