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 9BBC4C04AA5 for ; Thu, 25 Aug 2022 06:21:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DE4076B0074; Thu, 25 Aug 2022 02:21:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D9355940009; Thu, 25 Aug 2022 02:21:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C5C1A940008; Thu, 25 Aug 2022 02:21:46 -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 B53E86B0074 for ; Thu, 25 Aug 2022 02:21:46 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 4BECC161340 for ; Thu, 25 Aug 2022 06:21:46 +0000 (UTC) X-FDA: 79837119012.22.E6B6E47 Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) by imf14.hostedemail.com (Postfix) with ESMTP id ACE1310000A for ; Thu, 25 Aug 2022 06:21:44 +0000 (UTC) Received: by mail-pl1-f180.google.com with SMTP id x19so17672229plc.5 for ; Wed, 24 Aug 2022 23:21:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance-com.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc; bh=N0Kam/r+6J/z7kUybT3q/5t+alB2JmkG99SLjn1j3Rk=; b=oF/Ad1kg9nAylTheyNzvM7JmKBx7AcLCQbAbFg15yzyJGO2DYMYbhDTdN0+ZYLKCed TxH2ByMLSail1ctqcrTe/zaSrMb0E3lfvjrmjkikPEly9D7UFFgyoYVi8ebRaQsJSoqu 8X6RFVI4nGdhJOVUX9dSQZtZ+dRKapTvzq5d8O7xZbB+YOPr8X95vGVZN3NnovHaw6gJ ecYE+c5Vu5ZjRIACsMjAo8mQBViAycXcdk0pPjpFhpY8wA9CPXLlH4Wseavb7zH6tSF3 r4wwxm1rWBLvb4KRUZEQ9at8aunC4szIRIvYG4llojhgmUcp25lYqua0i0ekFZhjmEzX 6LGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc; bh=N0Kam/r+6J/z7kUybT3q/5t+alB2JmkG99SLjn1j3Rk=; b=DEXcSKT4u9dGIY5PcQx6yj1UFNBsBsy2qgw9F9DZ9SFJ8NGMI+Fu/l/GYPrer+/C7E 7z0JP+rNnW2YFG8aBHP1GbD5ByACjDj00ZVS37iYCcJpbbGo70MPRmRYI4NaS4REskIR Ld9vqr++VjgxNANg/FZCycbNM3vsTHxL7jueU9xNrR/4dJemdJUNQeZYvnumXChEMWLn mWvDDXtfZj1CuZMeMsqNsttVK2J1HQ7Hf9CKWZMdjl9Nq6ryoS25intitmDQnH7ScJ/b FaQaNOtPY1oWmY55htRdqkZxPKNI3UZ1fOhymllJGOv8JmZOeRQve+LcxRw2NnDjykB9 soLQ== X-Gm-Message-State: ACgBeo1Kl83qvOtIRo5vAZSO47XV0bIhr2ZG8604ZfvKVCAfAQOV1NCz ijPAt6YhTxqxgTrYJz4LjwKrZQ== X-Google-Smtp-Source: AA6agR4i+iJk8hmig2393bFwU6Fl0ZUVI7TJobcxPnJSj1qc0BGRUcQ3+Zwm9PlJG8Fj9Dm0dfJc4w== X-Received: by 2002:a17:903:2310:b0:173:10e1:3a76 with SMTP id d16-20020a170903231000b0017310e13a76mr2463156plh.160.1661408503463; Wed, 24 Aug 2022 23:21:43 -0700 (PDT) Received: from MacBook-Pro.local.bytedance.net ([139.177.225.225]) by smtp.gmail.com with ESMTPSA id b2-20020a17090a8c8200b001f1694dafb1sm2560522pjo.44.2022.08.24.23.21.37 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 Aug 2022 23:21:43 -0700 (PDT) From: lizhe.67@bytedance.com To: mhocko@suse.com Cc: Jason@zx2c4.com, akpm@linux-foundation.org, corbet@lwn.net, keescook@chromium.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, lizefan.x@bytedance.com, lizhe.67@bytedance.com, mark-pk.tsai@mediatek.com, mhiramat@kernel.org, rostedt@goodmis.org, vbabka@suse.cz, yuanzhu@bytedance.com Subject: Re: [PATCH v2] page_ext: introduce boot parameter 'early_page_ext' Date: Thu, 25 Aug 2022 14:21:29 +0800 Message-Id: <20220825062129.92091-1-lizhe.67@bytedance.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1661408505; a=rsa-sha256; cv=none; b=rohUwxTL6fPxsgKZcy4U1RYTtBZ7T/fseN9o3zfG257OC5/ZUKvWgZdzb46mwR4G/hKrhe i8HtIP2Wt33D32+jH1lE6we4r1ZDGVeh3pXlI50dbPXJ37u1OK2Y3liVXMlcTXM5c52DBH rgNzvTdvQY3m1pYFIfV6s+9QoB/MfsM= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=bytedance-com.20210112.gappssmtp.com header.s=20210112 header.b="oF/Ad1kg"; spf=pass (imf14.hostedemail.com: domain of lizhe.67@bytedance.com designates 209.85.214.180 as permitted sender) smtp.mailfrom=lizhe.67@bytedance.com; dmarc=pass (policy=none) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1661408505; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=N0Kam/r+6J/z7kUybT3q/5t+alB2JmkG99SLjn1j3Rk=; b=YR0MwMgQvdG53o0H7FSKFQP5f/wdusUNAlk9dFH19MPgb/AFQLK8tsUo4/KUnj79rZDVFd aNmhsWfZaIUhzq3+TUe20ykyLYrRzBcpGovQExwiB0RyF7Et8aJlrFgANYTkCbelexB2EU 1QGt+FegMRweALm53C4fRa4YXz8oHnI= X-Stat-Signature: d4j6wsq465k18kxsjyohrt3bdfpx6hdg X-Rspamd-Queue-Id: ACE1310000A X-Rspam-User: X-Rspamd-Server: rspam06 Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=bytedance-com.20210112.gappssmtp.com header.s=20210112 header.b="oF/Ad1kg"; spf=pass (imf14.hostedemail.com: domain of lizhe.67@bytedance.com designates 209.85.214.180 as permitted sender) smtp.mailfrom=lizhe.67@bytedance.com; dmarc=pass (policy=none) header.from=bytedance.com X-HE-Tag: 1661408504-556169 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 2022-08-24 8:09 UTC, mhocko@suse.com wrote: >On Wed 24-08-22 14:50:58, lizhe.67@bytedance.com wrote: >[...] >> diff --git a/include/linux/page_ext.h b/include/linux/page_ext.h >> index fabb2e1e087f..3e081cf8a1ec 100644 >> --- a/include/linux/page_ext.h >> +++ b/include/linux/page_ext.h >> @@ -38,19 +38,22 @@ struct page_ext { >> >> extern unsigned long page_ext_size; >> extern void pgdat_page_ext_init(struct pglist_data *pgdat); >> +#ifdef CONFIG_DEFERRED_STRUCT_PAGE_INIT >> +extern bool early_page_ext_enable(void); >> +#endif >> >> #ifdef CONFIG_SPARSEMEM >> static inline void page_ext_init_flatmem(void) >> { >> } >> -extern void page_ext_init(void); >> +extern void page_ext_init(bool early); >> static inline void page_ext_init_flatmem_late(void) >> { >> } >> #else >> extern void page_ext_init_flatmem(void); >> extern void page_ext_init_flatmem_late(void); >> -static inline void page_ext_init(void) >> +static inline void page_ext_init(bool early) >> { >> } >> #endif > >Why do you need to make it CONFIG_DEFERRED_STRUCT_PAGE_INIT >dependant? Yes it is unnecessary. Thanks! >[...] >> diff --git a/init/main.c b/init/main.c >> index 91642a4e69be..3760c0326525 100644 >> --- a/init/main.c >> +++ b/init/main.c >> @@ -849,6 +849,8 @@ static void __init mm_init(void) >> pgtable_init(); >> debug_objects_mem_init(); >> vmalloc_init(); >> + /* Should be run after vmap initialization */ >> + page_ext_init(true); > >you can just > if (early_page_ext) > page_ext_init(); > >> /* Should be run before the first non-init thread is created */ >> init_espfix_bsp(); >> /* Should be run after espfix64 is set up. */ >> @@ -1606,7 +1608,7 @@ static noinline void __init kernel_init_freeable(void) >> padata_init(); >> page_alloc_init_late(); >> /* Initialize page ext after all struct pages are initialized. */ >> - page_ext_init(); >> + page_ext_init(false); > > if (!early_page_ext) > page_ext_init(); I think we can use an inline function instead of 'early_page_ext' here. The reason is that if CONFIG_PAGE_EXTENSION=n, 'early_page_ext' is undefined. Thought we can #define early_page_ext as false, it is ugly. >> >> do_basic_setup(); >> > >and without the ifdefery it all becomes much more simple. Yes it becomes much more simple. Thanks for all your advices! I will take your advices and send a v3 patch.