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 1789AC761A6 for ; Mon, 3 Apr 2023 10:02:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 63F9A6B0072; Mon, 3 Apr 2023 06:02:53 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5EFCD6B0074; Mon, 3 Apr 2023 06:02:53 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 469916B0075; Mon, 3 Apr 2023 06:02:53 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 379C86B0072 for ; Mon, 3 Apr 2023 06:02:53 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id EDEF41C69CA for ; Mon, 3 Apr 2023 10:02:52 +0000 (UTC) X-FDA: 80639640984.18.AC4EE53 Received: from out4-smtp.messagingengine.com (out4-smtp.messagingengine.com [66.111.4.28]) by imf03.hostedemail.com (Postfix) with ESMTP id CD76F20029 for ; Mon, 3 Apr 2023 10:02:49 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=shutemov.name header.s=fm1 header.b="J 499p0h"; dkim=pass header.d=messagingengine.com header.s=fm2 header.b=QSFQg3S7; spf=pass (imf03.hostedemail.com: domain of kirill@shutemov.name designates 66.111.4.28 as permitted sender) smtp.mailfrom=kirill@shutemov.name; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1680516169; 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=KAs2cClcytIPI/wu2fz/XtyTfqxpeJmdesR7LFRIvfw=; b=lNLez/ppM3rFjWTN9faU2I4U6YEMcyXmmV0XYWOVLNsyEeCQf6uia3ExVL8D3rOEtuyk2l ClqvuL4RXAd6zk0NxDfD9wbm/7XOQP+YSAeODt0JaTDOUxYFklmVwGKlNegh0swq503Cbq dA9pbwjN08qu+M6ud801nfzLWZ0Afsc= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=shutemov.name header.s=fm1 header.b="J 499p0h"; dkim=pass header.d=messagingengine.com header.s=fm2 header.b=QSFQg3S7; spf=pass (imf03.hostedemail.com: domain of kirill@shutemov.name designates 66.111.4.28 as permitted sender) smtp.mailfrom=kirill@shutemov.name; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1680516169; a=rsa-sha256; cv=none; b=h9C4gGLBkdNQ0ay//brg8gWeofczFZqNP099Days1QrvLGnw0syT/IEuwLtg/r4fpN0adl UqIobdyMxKbmkppn9JyOYRJ52orlu1bqh1aIu5ELwNPugW0ZJ8W0UabvVr/1RR+pnlvVvn gZsNVdtvK50jmaAWLNBZsNuluAOkMVw= Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id 2817D5C0114; Mon, 3 Apr 2023 06:02:49 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Mon, 03 Apr 2023 06:02:49 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=shutemov.name; h=cc:cc:content-type:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm1; t=1680516169; x= 1680602569; bh=KAs2cClcytIPI/wu2fz/XtyTfqxpeJmdesR7LFRIvfw=; b=J 499p0hPPencZjPib0BH5d3ajQHQAgwnB/MpQ7JRIiU4qYT2NqGLEUePG6uA6234Z +3T4CTUPiQfH4ZBiCDWFHnS4DkvlzonlSGwRrug3Eyld3e1VyBvHQIc1kJSa59NP vvhze5ix0I2PIoddn5sIpFmK262dErsiMVvmbG0Taaf0lPCbwOeqJuqvGskjqc30 QcWRju2ycv36wZMY65mkXxDP2MvXYYT125Vh9DIUFJmYW7nG7nY3T1FukmGhRQLE MbEzVoZFccZqKqyWriU4farFj0et2qubH4WcOjwrGVnuF3uibhZXJZ6r7GtxRHzL rq5U0gtxY7h9D8c+RiXEQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm2; t=1680516169; x=1680602569; bh=KAs2cClcytIPI /wu2fz/XtyTfqxpeJmdesR7LFRIvfw=; b=QSFQg3S7Q6mmaV36Dv8g9Hx3nbw5N HzZ47pHWVbhm9paMJPgf2vppy30T1LMgpVuOafN9lChgQOabWew7dwA5IlBfJdT+ 22Uup1afQ9c88vpClFuY5AcZ5qftK7aLnaodJh70T4Lc5Nue9fwRXG64E98DJq8A IM6QJk7jma/7gs008ZZz/Hi0zx7Pqkax+LinpQRcsF+Bpxr7NxKMQeFEEKsaE/0V nS1bv9Fjx/mMRpzu9iGU0rj/mu15665rDHV9TJEhkRfEW/DR5hkCPGQH3ppF6dzi PHqOfycWZjWHeXkg9ngTkDSBYn9hIX7JkGUq4oSqLfGF4FIjd5JxLUsQw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrvdeijedgvddvucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepfffhvfevuffkfhggtggujgesthdtredttddtvdenucfhrhhomhepfdfmihhr ihhllhcutedrucfuhhhuthgvmhhovhdfuceokhhirhhilhhlsehshhhuthgvmhhovhdrnh grmhgvqeenucggtffrrghtthgvrhhnpeekvddvjeffheetgedtvdfgieejiedvgeejieet jeehieehveffueekfeehffdvveenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmh epmhgrihhlfhhrohhmpehkihhrihhllhesshhhuhhtvghmohhvrdhnrghmvg X-ME-Proxy: Feedback-ID: ie3994620:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 3 Apr 2023 06:02:46 -0400 (EDT) Received: by box.shutemov.name (Postfix, from userid 1000) id 08AC710D7B3; Mon, 3 Apr 2023 13:02:45 +0300 (+03) Date: Mon, 3 Apr 2023 13:02:44 +0300 From: "Kirill A. Shutemov" To: Vlastimil Babka Cc: "Kirill A. Shutemov" , Borislav Petkov , Andy Lutomirski , Sean Christopherson , Andrew Morton , Joerg Roedel , Ard Biesheuvel , Andi Kleen , Kuppuswamy Sathyanarayanan , David Rientjes , Tom Lendacky , Thomas Gleixner , Peter Zijlstra , Paolo Bonzini , Ingo Molnar , Dario Faggioli , Dave Hansen , Mike Rapoport , David Hildenbrand , Mel Gorman , marcelo.cerri@canonical.com, tim.gardner@canonical.com, khalid.elmously@canonical.com, philip.cox@canonical.com, aarcange@redhat.com, peterx@redhat.com, x86@kernel.org, linux-mm@kvack.org, linux-coco@lists.linux.dev, linux-efi@vger.kernel.org, linux-kernel@vger.kernel.org, Mike Rapoport Subject: Re: [PATCHv9 02/14] mm: Add support for unaccepted memory Message-ID: <20230403100244.4sre7ki4ccusiiul@box> References: <20230330114956.20342-1-kirill.shutemov@linux.intel.com> <20230330114956.20342-3-kirill.shutemov@linux.intel.com> <43234108-fa4f-7583-e3b4-2daa2de89fb0@suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <43234108-fa4f-7583-e3b4-2daa2de89fb0@suse.cz> X-Stat-Signature: x5j3zjsgyw4463b8tuyuftt36a4ccpa4 X-Rspam-User: X-Rspamd-Queue-Id: CD76F20029 X-Rspamd-Server: rspam06 X-HE-Tag: 1680516169-504483 X-HE-Meta: U2FsdGVkX1/KwtQ/JKE5Jq6vHwsji1WpyPORIgw+jVL/+12hjlaNg37Y2TqnkgZ2ksr6OFb7Pl5szhxDn8UZ9/5iltRJ1L061vZlE7mwWQpfzljhK/ywiftYk4X/o2gE1y6a+xuWgAp+/QB4+92PqnYD7ZaWs6B5Y/HSWGRjrGojANcBdlnACAPcbm3aqglH2/YQGLT/Ox/+2iVZqVil6ei0cyvxWbofRXbt2Q0+tQKGlVaEy4eq+lNgq9VmPGVKXVfGNX/m13QdSzMgOxRl5H+mw8gHzlaG9zjKHoGq6jbnc8VJkXAPaVqsjm3NfDWz5wlYz2WCn9dsiLQ7GliyOOWx3fqFaJh+quR2TM2h7L2vJ8bUZn45VyIZEZfHO6Bu51kZr5wsgBInb7/YqatEmW8aBzMHNubc8Pctz0VB4PMZl36UuO2k9RuD6U4cP2/ji64KU61RF2YeDfyFmROYrxI5TdCP/hj06djRaCYg28GiSACzsQ+VX2D3CMNPlzGc9UaIsDPM2BGQbEkgJ4tGhBrxNmsy5J2A1x3AkwHrdvR6wWb1P+sFRLLqKN+lO04UqM1L9CLejOWWZu8OnsnmUuPG5+v0FTfRht9qUlLDMKi471w9MwsuSm8/CSMiNXeSJMYVb62vM/nyLK2BV9TjLphuzPcfkSHdOwEMLXMCNCnUTDCGvQJHinDq6s/zSQuIK2GYlOkeuB+oklo7ba9JL6KSYaq5lq937pTWOTPwr3zO79aUNYUwofJMoLN7p5c9CvcFHLTbd+N5aYQGhXi7Pe4DENgFzCsTLOZx0eXw8nifNlgmE0Zkc9AFH8a4kYgJ2bbxpRkYMr0eeP0y9LDdEGuWe4ScT9WJsdLbOlCyAJT7GrBmWpBrbuXwakZwHaZIE4bl19PgtbphExrLWekbePUnSFjf5MiLmNV1jLCzU2KPH97Hrkx+NnTSG4xiuD8R8GbvAxuXE8RLlhvqU/K YVRahBQH +iSiSj5mm9nkj2dLvzBW9MnNBzQ3vHUiD287D3X8FlO+Ylmv7mMPTIh8mn8fUbh1W8UB1S1jdVYuluOlArHSVMRau+Oe8Osjg0rcyvMBGBvdQVbV2UHPBQaLTnKUiRwNC0fF9HIBavqEqLKpGrCYR6osiiMea6kD0ww/XlpCuI8Bz1G4sUXbS9PoUqbnxq39VemqrwDdRN/NCtHsaUSI+V5aWXkkyLu+4DzU5DTkRqh5vf15sSH/GT3AKYAXrcevWGJWU3FYEXjlaNfDxjUCXanEuU2FTCWsWj5rKun6xyz1c1ANRSOgKbAFJ21duP2WzeUtAqoCL13lCAOY= 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, Apr 03, 2023 at 11:26:53AM +0200, Vlastimil Babka wrote: > > Signed-off-by: Kirill A. Shutemov > > Acked-by: Mike Rapoport # memblock > > Reviewed-by: Vlastimil Babka Thanks! > Just a small suggestion below: > > > + > > +static bool try_to_accept_memory(struct zone *zone, unsigned int order) > > +{ > > + long to_accept; > > + int ret = false; > > + > > + if (!static_branch_unlikely(&zones_with_unaccepted_pages)) > > + return false; > > > This potentially (depends on what compiler decides) means we'll call this > function just to skip the static branch. OTOH forcing it as inline would be > wasteful too. So I'd split that away and make the callers do that static > branch check inline. Just as deferred_pages_enabled() is used. Like this? diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 07e16e9b49c4..80fe5e4b6cca 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -390,6 +390,7 @@ EXPORT_SYMBOL(nr_online_nodes); static bool page_contains_unaccepted(struct page *page, unsigned int order); static void accept_page(struct page *page, unsigned int order); static bool try_to_accept_memory(struct zone *zone, unsigned int order); +static inline bool has_unaccepted_memory(void); static bool __free_unaccepted(struct page *page); int page_group_by_mobility_disabled __read_mostly; @@ -3464,8 +3465,10 @@ get_page_from_freelist(gfp_t gfp_mask, unsigned int order, int alloc_flags, gfp_mask)) { int ret; - if (try_to_accept_memory(zone, order)) - goto try_this_zone; + if (has_unaccepted_memory()) { + if (try_to_accept_memory(zone, order)) + goto try_this_zone; + } #ifdef CONFIG_DEFERRED_STRUCT_PAGE_INIT /* @@ -3519,8 +3522,10 @@ get_page_from_freelist(gfp_t gfp_mask, unsigned int order, int alloc_flags, return page; } else { - if (try_to_accept_memory(zone, order)) - goto try_this_zone; + if (has_unaccepted_memory()) { + if (try_to_accept_memory(zone, order)) + goto try_this_zone; + } #ifdef CONFIG_DEFERRED_STRUCT_PAGE_INIT /* Try again if zone has deferred pages */ @@ -7302,9 +7307,6 @@ static bool try_to_accept_memory(struct zone *zone, unsigned int order) long to_accept; int ret = false; - if (!static_branch_unlikely(&zones_with_unaccepted_pages)) - return false; - /* How much to accept to get to high watermark? */ to_accept = high_wmark_pages(zone) - (zone_page_state(zone, NR_FREE_PAGES) - @@ -7321,6 +7323,11 @@ static bool try_to_accept_memory(struct zone *zone, unsigned int order) return ret; } +static inline bool has_unaccepted_memory(void) +{ + return static_branch_unlikely(&zones_with_unaccepted_pages); +} + static bool __free_unaccepted(struct page *page) { struct zone *zone = page_zone(page); @@ -7398,6 +7405,11 @@ static bool try_to_accept_memory(struct zone *zone, unsigned int order) return false; } +static inline bool has_unaccepted_memory(void) +{ + return false; +} + static bool __free_unaccepted(struct page *page) { BUILD_BUG(); -- Kiryl Shutsemau / Kirill A. Shutemov