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.7 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,URIBL_BLOCKED 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 6ECC7C433FE for ; Wed, 9 Dec 2020 10:12:39 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 25F9423B7E for ; Wed, 9 Dec 2020 10:12:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727719AbgLIKMU (ORCPT ); Wed, 9 Dec 2020 05:12:20 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53174 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729775AbgLIKMH (ORCPT ); Wed, 9 Dec 2020 05:12:07 -0500 Received: from mail-pj1-x1043.google.com (mail-pj1-x1043.google.com [IPv6:2607:f8b0:4864:20::1043]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E0635C061794 for ; Wed, 9 Dec 2020 02:11:26 -0800 (PST) Received: by mail-pj1-x1043.google.com with SMTP id m5so643241pjv.5 for ; Wed, 09 Dec 2020 02:11:26 -0800 (PST) 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=d8yNDgYWASv11UhUw/bWcMz19H0C2yz7qXfuD0bhUn0=; b=dmAazBXoyUeAWM3edEVyWfiXKxv66KTgKIwyOz0VOteoRRUk7F3ylzt43TAE3VMM8Q 1sFsmFSjj63jlXMen3WT9Urn7Q2qLWZlj/66N9zfy28SAr77QjrM/kjt9v6gTeAZ2/2Q DxWcZVRg8JuBlOn1nCXBjiwDKXFW2UrRAxKKutGUL0No8NJ0uU46GIErudp/1bpk2YOV 3iug93DTUMEW2TAmeCsIw3wEhf9IHF6uOKwqCNO1Hpl26TMxv9bmpX9TmdEvCRvUfsXA OCgNgwTE8xwzTzA2JxXQOVrq4aT16xBpCrfgLj1GoHU8UovIah/xqh1uMCcQl+Rf6li8 QDoQ== 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=d8yNDgYWASv11UhUw/bWcMz19H0C2yz7qXfuD0bhUn0=; b=aWJnCkM+FtV6jmojKMg7tbS60X7TIz7JYHe6BFFUCawroQVVNQHcjnqvB8n2EAw82N PY1L9Tyri7Qa+YRUfGmDEBUZKTPvkdrUffwTN0WT70e20e2BAcElnaRMF+MT3X7sSVtJ CY3kjwq+lnQhExNbMqlLG7tm7BRbLY0/K9sEraakEnRulVwdpC5h8SR1mGjS3ipGSmxN HWyqu8SnpR7c/Pir7WzxctLCVxxrV9PHbSoJncocBNjuOfdUXyDpkqLlmdLBxf0Md2fI 5XbuxM2JKONEoAOGhrNX0ribZgQiNYGsQUtWMnexyUtHQi1wiUxw7Jf87DEUXDksZGvD ZK1w== X-Gm-Message-State: AOAM533bDi6p9qGM88S5ZWpDZ5CuxMqwMRmzHNDUDjt/BKAzpXPOYm/Y pE2cUJhD4nWskYTjPRoBXCQTMoEkVIn4TVBwoBn5vA== X-Google-Smtp-Source: ABdhPJyZbpmo6sQ/giSzPaUJeLNjnQbqSMGyDjlFlX08gqr+lliLp5PTVbu7rjbOxMBdYCStZdmNjSw4u/bBranfZic= X-Received: by 2002:a17:90a:ae14:: with SMTP id t20mr1578160pjq.13.1607508686459; Wed, 09 Dec 2020 02:11:26 -0800 (PST) MIME-Version: 1.0 References: <20201130151838.11208-1-songmuchun@bytedance.com> <20201130151838.11208-7-songmuchun@bytedance.com> <4b8a9389-1704-4d8c-ec58-abd753814dd9@redhat.com> In-Reply-To: <4b8a9389-1704-4d8c-ec58-abd753814dd9@redhat.com> From: Muchun Song Date: Wed, 9 Dec 2020 18:10:50 +0800 Message-ID: Subject: Re: [External] Re: [PATCH v7 06/15] mm/hugetlb: Disable freeing vmemmap if struct page size is not power of two To: David Hildenbrand Cc: Jonathan Corbet , Mike Kravetz , Thomas Gleixner , mingo@redhat.com, bp@alien8.de, x86@kernel.org, hpa@zytor.com, dave.hansen@linux.intel.com, luto@kernel.org, Peter Zijlstra , viro@zeniv.linux.org.uk, Andrew Morton , paulmck@kernel.org, mchehab+huawei@kernel.org, pawan.kumar.gupta@linux.intel.com, Randy Dunlap , oneukum@suse.com, anshuman.khandual@arm.com, jroedel@suse.de, Mina Almasry , David Rientjes , Matthew Wilcox , Oscar Salvador , Michal Hocko , "Song Bao Hua (Barry Song)" , Xiongchun duan , linux-doc@vger.kernel.org, LKML , Linux Memory Management List , linux-fsdevel Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Dec 9, 2020 at 6:06 PM David Hildenbrand wrote: > > On 09.12.20 11:03, Muchun Song wrote: > > On Wed, Dec 9, 2020 at 5:57 PM David Hildenbrand wrote: > >> > >> On 30.11.20 16:18, Muchun Song wrote: > >>> We only can free the tail vmemmap pages of HugeTLB to the buddy allocator > >>> when the size of struct page is a power of two. > >>> > >>> Signed-off-by: Muchun Song > >>> --- > >>> mm/hugetlb_vmemmap.c | 5 +++++ > >>> 1 file changed, 5 insertions(+) > >>> > >>> diff --git a/mm/hugetlb_vmemmap.c b/mm/hugetlb_vmemmap.c > >>> index 51152e258f39..ad8fc61ea273 100644 > >>> --- a/mm/hugetlb_vmemmap.c > >>> +++ b/mm/hugetlb_vmemmap.c > >>> @@ -111,6 +111,11 @@ void __init hugetlb_vmemmap_init(struct hstate *h) > >>> unsigned int nr_pages = pages_per_huge_page(h); > >>> unsigned int vmemmap_pages; > >>> > >>> + if (!is_power_of_2(sizeof(struct page))) { > >>> + pr_info("disable freeing vmemmap pages for %s\n", h->name); > >> > >> I'd just drop that pr_info(). Users are able to observe that it's > >> working (below), so they are able to identify that it's not working as well. > > > > The below is just a pr_debug. Do you suggest converting it to pr_info? > > Good question. I wonder if users really have to know in most cases. > Maybe pr_debug() is good enough in environments where we want to debug > why stuff is not working as expected. When someone enables this feature via the boot cmdline, maybe he should want to know whether this feature works. From this point of view, the pr_info is necessary. Right? > > -- > Thanks, > > David / dhildenb > -- Yours, Muchun 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.7 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,URIBL_BLOCKED autolearn=ham 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 21485C433FE for ; Wed, 9 Dec 2020 10:11:30 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 71AB123B85 for ; Wed, 9 Dec 2020 10:11:29 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 71AB123B85 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 D1D5A8D0010; Wed, 9 Dec 2020 05:11:28 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id CF4098D000B; Wed, 9 Dec 2020 05:11:28 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C0AB78D0010; Wed, 9 Dec 2020 05:11:28 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0140.hostedemail.com [216.40.44.140]) by kanga.kvack.org (Postfix) with ESMTP id AACA48D000B for ; Wed, 9 Dec 2020 05:11:28 -0500 (EST) Received: from smtpin23.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 661731EE6 for ; Wed, 9 Dec 2020 10:11:28 +0000 (UTC) X-FDA: 77573326656.23.mice71_5316e89273ee Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin23.hostedemail.com (Postfix) with ESMTP id 4758F37604 for ; Wed, 9 Dec 2020 10:11:28 +0000 (UTC) X-HE-Tag: mice71_5316e89273ee X-Filterd-Recvd-Size: 5541 Received: from mail-pl1-f193.google.com (mail-pl1-f193.google.com [209.85.214.193]) by imf19.hostedemail.com (Postfix) with ESMTP for ; Wed, 9 Dec 2020 10:11:27 +0000 (UTC) Received: by mail-pl1-f193.google.com with SMTP id x15so689079pll.2 for ; Wed, 09 Dec 2020 02:11:27 -0800 (PST) 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=d8yNDgYWASv11UhUw/bWcMz19H0C2yz7qXfuD0bhUn0=; b=dmAazBXoyUeAWM3edEVyWfiXKxv66KTgKIwyOz0VOteoRRUk7F3ylzt43TAE3VMM8Q 1sFsmFSjj63jlXMen3WT9Urn7Q2qLWZlj/66N9zfy28SAr77QjrM/kjt9v6gTeAZ2/2Q DxWcZVRg8JuBlOn1nCXBjiwDKXFW2UrRAxKKutGUL0No8NJ0uU46GIErudp/1bpk2YOV 3iug93DTUMEW2TAmeCsIw3wEhf9IHF6uOKwqCNO1Hpl26TMxv9bmpX9TmdEvCRvUfsXA OCgNgwTE8xwzTzA2JxXQOVrq4aT16xBpCrfgLj1GoHU8UovIah/xqh1uMCcQl+Rf6li8 QDoQ== 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=d8yNDgYWASv11UhUw/bWcMz19H0C2yz7qXfuD0bhUn0=; b=tzCx3xX1BdTha3ipE92ssuOoJdimbvlpob1Fe+YFXRpB8K88/M2I/3wqwRhNlIG09b /O8Qr7onzSw7EF1edRAOY+XTd0bXiqm+C2pxUV90sIQyIHwFuKTdw31GL6dNz0AFJVdG +fgPfUg/ZZf7zdr1R5wUzz8Vyxl3OL6mJrn/cmCqgJwpKFSqW6YGyohwBcSkv06yXmpi ZIGfPn9EkqPEjRB8alvVuX/kmEQGPEzLFbB3i82KZ7qkO2iJGVzdSy4DzeKPUg7EmXms eOWQFXTvLjZDDbIFvx8zp5g8alf7zMN3ncOnNNOKx245MvJuZ4QJI3gI9gtRRwWOCe7F kpRw== X-Gm-Message-State: AOAM531SZsOhf8gCHdLZvWRyvMBZLqKGSevroRmPhQxE5n0askGITKNx 44kyUUJp1mzlEkyVuXbCvPFSGDTvzFsOPhmiQKkdpQ== X-Google-Smtp-Source: ABdhPJyZbpmo6sQ/giSzPaUJeLNjnQbqSMGyDjlFlX08gqr+lliLp5PTVbu7rjbOxMBdYCStZdmNjSw4u/bBranfZic= X-Received: by 2002:a17:90a:ae14:: with SMTP id t20mr1578160pjq.13.1607508686459; Wed, 09 Dec 2020 02:11:26 -0800 (PST) MIME-Version: 1.0 References: <20201130151838.11208-1-songmuchun@bytedance.com> <20201130151838.11208-7-songmuchun@bytedance.com> <4b8a9389-1704-4d8c-ec58-abd753814dd9@redhat.com> In-Reply-To: <4b8a9389-1704-4d8c-ec58-abd753814dd9@redhat.com> From: Muchun Song Date: Wed, 9 Dec 2020 18:10:50 +0800 Message-ID: Subject: Re: [External] Re: [PATCH v7 06/15] mm/hugetlb: Disable freeing vmemmap if struct page size is not power of two To: David Hildenbrand Cc: Jonathan Corbet , Mike Kravetz , Thomas Gleixner , mingo@redhat.com, bp@alien8.de, x86@kernel.org, hpa@zytor.com, dave.hansen@linux.intel.com, luto@kernel.org, Peter Zijlstra , viro@zeniv.linux.org.uk, Andrew Morton , paulmck@kernel.org, mchehab+huawei@kernel.org, pawan.kumar.gupta@linux.intel.com, Randy Dunlap , oneukum@suse.com, anshuman.khandual@arm.com, jroedel@suse.de, Mina Almasry , David Rientjes , Matthew Wilcox , Oscar Salvador , Michal Hocko , "Song Bao Hua (Barry Song)" , Xiongchun duan , linux-doc@vger.kernel.org, LKML , Linux Memory Management List , linux-fsdevel Content-Type: text/plain; charset="UTF-8" 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 Wed, Dec 9, 2020 at 6:06 PM David Hildenbrand wrote: > > On 09.12.20 11:03, Muchun Song wrote: > > On Wed, Dec 9, 2020 at 5:57 PM David Hildenbrand wrote: > >> > >> On 30.11.20 16:18, Muchun Song wrote: > >>> We only can free the tail vmemmap pages of HugeTLB to the buddy allocator > >>> when the size of struct page is a power of two. > >>> > >>> Signed-off-by: Muchun Song > >>> --- > >>> mm/hugetlb_vmemmap.c | 5 +++++ > >>> 1 file changed, 5 insertions(+) > >>> > >>> diff --git a/mm/hugetlb_vmemmap.c b/mm/hugetlb_vmemmap.c > >>> index 51152e258f39..ad8fc61ea273 100644 > >>> --- a/mm/hugetlb_vmemmap.c > >>> +++ b/mm/hugetlb_vmemmap.c > >>> @@ -111,6 +111,11 @@ void __init hugetlb_vmemmap_init(struct hstate *h) > >>> unsigned int nr_pages = pages_per_huge_page(h); > >>> unsigned int vmemmap_pages; > >>> > >>> + if (!is_power_of_2(sizeof(struct page))) { > >>> + pr_info("disable freeing vmemmap pages for %s\n", h->name); > >> > >> I'd just drop that pr_info(). Users are able to observe that it's > >> working (below), so they are able to identify that it's not working as well. > > > > The below is just a pr_debug. Do you suggest converting it to pr_info? > > Good question. I wonder if users really have to know in most cases. > Maybe pr_debug() is good enough in environments where we want to debug > why stuff is not working as expected. When someone enables this feature via the boot cmdline, maybe he should want to know whether this feature works. From this point of view, the pr_info is necessary. Right? > > -- > Thanks, > > David / dhildenb > -- Yours, Muchun