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 A106EC6FD1D for ; Fri, 7 Apr 2023 12:41:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C8F8F900003; Fri, 7 Apr 2023 08:41:01 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C3F8C900002; Fri, 7 Apr 2023 08:41:01 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B0834900003; Fri, 7 Apr 2023 08:41:01 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id A4135900002 for ; Fri, 7 Apr 2023 08:41:01 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 6944F1612F6 for ; Fri, 7 Apr 2023 12:41:01 +0000 (UTC) X-FDA: 80654554722.09.D99EAA4 Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com [66.111.4.26]) by imf08.hostedemail.com (Postfix) with ESMTP id 2E61916000A for ; Fri, 7 Apr 2023 12:40:59 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=shutemov.name header.s=fm1 header.b="J 1ByI0D"; dkim=pass header.d=messagingengine.com header.s=fm2 header.b=H6t2g66R; spf=pass (imf08.hostedemail.com: domain of kirill@shutemov.name designates 66.111.4.26 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=1680871259; 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=kSEpnMPkGTPPsN41+arr7bHAPWSDvj7dNaWlKlNJTSo=; b=Uw1rBmJ7JFXOWT9kCjO/okIO+uQG65fSYU7BTIPeNpla0vM8D9IQQDBi0MbNszC9/wpGYN Nz/g9f+OMdkieX8t8fVRIIVWFA+MFV4JirYI8fycFlD0SkNO9fpLq0kGap/AcC4ZdJgk5e rnwP/pJz9crXMeSUX3poBFOljaUPV5E= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=shutemov.name header.s=fm1 header.b="J 1ByI0D"; dkim=pass header.d=messagingengine.com header.s=fm2 header.b=H6t2g66R; spf=pass (imf08.hostedemail.com: domain of kirill@shutemov.name designates 66.111.4.26 as permitted sender) smtp.mailfrom=kirill@shutemov.name; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1680871259; a=rsa-sha256; cv=none; b=XZzG6sGylbpyJFDD00W4QNCYGqzpFS4XIFfYacBUTFKwIIXfKZBjdUYF5umxwmSR+Twul+ 77Q6ohRhAEwE3jfYy+OAJQ5SV5fXQ574+wKNSM0OCI1j926rzu73p3Q3m2exgTNn6AgHLI 2Jsgdv7uOHo7Mb+3KMAX8Am1yYqP+GY= Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 788DF5C015A; Fri, 7 Apr 2023 08:40:58 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute4.internal (MEProxy); Fri, 07 Apr 2023 08:40:58 -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=1680871258; x= 1680957658; bh=kSEpnMPkGTPPsN41+arr7bHAPWSDvj7dNaWlKlNJTSo=; b=J 1ByI0DdWJSjbPhCaC8Za6UyGSTuv8DlwV8ovnqKGob7U0qaKWlwV9Aoj/3uCOsGe 34d81S/JISQ5EH9jhoV8yC+hjxRWWD0vRbvPRnOZL631wbCz8CmXfw7Qxjb2hg/x baW6T4f5O156eaIWXpUpCG+6XgvHIO5havNqJU5cr/Z3bhk77+cPZx2THpzEQ/yX SRmjCmTYb4wzZGkdbOjRrQH6VG7hyQRu+wQ8ob9iynVkM/ie70uCgdgBTtndZq74 F0DxKNgD6mKVpY7v5DeDcz38asTD7Hd7UuVV/gwcehSnN+iMLpLPBtT2RA2YloUi 4SwRfHCcA++KQ8mpQyhGQ== 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=1680871258; x=1680957658; bh=kSEpnMPkGTPPs N41+arr7bHAPWSDvj7dNaWlKlNJTSo=; b=H6t2g66RQ9epY60kio5/w1xbmxlFe CzYs8ViS6+rtEq+3VWTCAm5BnbKwizT5E+8LNvRPm2M9OhM/oY5I3jj5qS/gtMYO 3SIE3AvD4kXRlMSliR/N9p5gXOMaw4lWUhWkzwuofnWQROYkyiyjWcdn9IajfXy1 w/PGE0z8/aHvkbQ5BzdV+rie2a6sVS2quyAAqXoLFK9sye87KDsRyO8+ifQu2p54 t7/HYuTNXweznCEhB4gprF19HiCpvJVhcEOT/T8th+Za5O3fSpff7cul9CXldjmr QN3JUoU6l4lPfRct23oQZznzeS2ugwCv9t5fSqLWIrd5qW4dps9hiMxFQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrvdejhedgheeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpeffhffvvefukfhfgggtuggjsehttd dttddttddvnecuhfhrohhmpedfmfhirhhilhhlucetrdcuufhhuhhtvghmohhvfdcuoehk ihhrihhllhesshhhuhhtvghmohhvrdhnrghmvgeqnecuggftrfgrthhtvghrnhephfeige fhtdefhedtfedthefghedutddvueehtedttdehjeeukeejgeeuiedvkedtnecuvehluhhs thgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepkhhirhhilhhlsehshh huthgvmhhovhdrnhgrmhgv X-ME-Proxy: Feedback-ID: ie3994620:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 7 Apr 2023 08:40:58 -0400 (EDT) Received: by box.shutemov.name (Postfix, from userid 1000) id 2118A109B00; Fri, 7 Apr 2023 15:40:54 +0300 (+03) Date: Fri, 7 Apr 2023 15:40:54 +0300 From: "Kirill A. Shutemov" To: Andrew Morton Cc: Mike Rapoport , Guenter Roeck , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] mm-treewide-redefine-max_order-sanely-fix.txt Message-ID: <20230407124054.27iiers6o36pdfei@box.shutemov.name> References: <9460377a-38aa-4f39-ad57-fb73725f92db@roeck-us.net> <20230406072529.vupqyrzqnhyozeyh@box.shutemov.name> <83e6bc46-dfc0-0e95-e69c-5b996af1e50b@roeck-us.net> <20230406151015.yndcm24fyxitvqyc@box.shutemov.name> <20230406154423.20a991bbdd47630fc38d94e8@linux-foundation.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230406154423.20a991bbdd47630fc38d94e8@linux-foundation.org> X-Rspamd-Queue-Id: 2E61916000A X-Stat-Signature: wab3j8r7gmbj7fybrgj8sk96m1sse3k3 X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1680871259-94587 X-HE-Meta: U2FsdGVkX1/RMYa3cD9LGLGUZGFZz7eh1sBSkcqA54hsIg4VR8/nYayMMW6UCRbJwVpO/uROWtP5ta/nHTecHDW9RSAQ4AFxoXztAEaKsDu+8o1wiFZlTCgKNmC8gMNiQEZNb8ZjbTjx7DhGk33Qu0EheoxmtQMIfvZ4fJqVRfuxr9Iyl6V+ojLq/UfGyneC0CKSrzs/KpjMMkPbuofDQgnIr7zuMBjPyTjFyz0ZLhbII8+pPJ7zCZ3oKZuF5CvlhEkVvWSfndV4taKH1f1Fxzy+6rWkt6FbG69fNEfe7hHqtLuAkIM3xjiurC5ribojAd36nihsAPjsJOQDdyt2kZJk1vr7hftB+y3KCdAi79zzZfMQcBMQ95BkMapd+6QFY9i6l/cn1VLv9oLiRvWZPwANVmJHz1lml8dV/M5+JJrlfgBaoQM+r+KoIyG6ZH9dBMXsmfzihwzwRjxrAJX0D32ZiAWJOvAHdBqp22DYZm5WH1lt00D9k9h2Ky69g9arQq/YbVt3nDQDR+jUtrsHH+GgF+iUZE/siN1g+6WPoCqefti37iWYD0wsnXRqaiEYu6xXZxcV8vbem8xWEgTftbX+k/A9d3EPgVAiVXRRuHx665fUm5r8bCpeGVNHM/rRoRVgyxTsxkCVCT3PxcGr4EvPuewpqu9IYpxsOoVmCLFdytmrK5gyOQrTdVsJEmDAKs4nuAW/olFhI3Upzt1MMqGlFDxZdD2BK8mVf8sofukPbutwOhAYtQGA5muNG6aN2HptKnQQ/n51HiGvUSmBMORt46Ca+XU/hJkXHDldDiddmFiAWNnaS88R04+L/ncqsLCEpgkx4VxkIsaNXDY8ZrKO9cHxhki3MmCl9T1N3ktmIB4aZgqrHy1W3YNUprPs+4McafEPNBCXpYgUCQ3Qsx269deL5aoPMIJDdam7jbUhW2GSKkZtS6lMjZhkE0otR/VEhfhI0DKrxfRlX56 Khm0DThT mg3G700Ba6bPeR3WRDDiPw5/bIVg0MbJjvTBqQpvGJJnmt6DkyjlnmPOrJF+h6Iy/XLhwoYZFj5lnQ9BJRvrvbvpr99STJGMU39vRimJEuL815ULChNNRBsBqTpMzT1CF+WECANSKhaCPhOQTfaROPiztkqWrJEjEdBC3jOZCaj8LpuBEw2Tw19VO3UXwthQxDBKancvRTn03svWbm3Nrmn/DBw4h2Zwjb0RHdeFKA4wpOApIyD/khaKX+FyPD9s/u5ZcqvVghgbdc3UJrEkZfEFxOmdN91k7I/RAtNhpaaz1R85XU9hgsn/3/R1OBtJeTw7HdQOfgFt104PIknJIc7jaQquET/pMBVAHgAKP7maaQ46mNalmSoD6GrCz6+BLWKCGx7F586Kr2BOaisvHMWb4E6UQkIYXDNtg 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 Thu, Apr 06, 2023 at 03:44:23PM -0700, Andrew Morton wrote: > On Fri, 7 Apr 2023 00:14:31 +0300 Mike Rapoport wrote: > > > > > Shouldn't that be > > > > else > > > > order = 0; > > > > ? > > > > > > +Mike. > > > > > > No. start == 0 is MAX_ORDER-aligned. We want to free the pages in the > > > largest chunks alignment allows. > > > > Right. Before the changes to MAX_ORDER it was > > > > order = min(MAX_ORDER - 1UL, __ffs(start)); > > > > which would evaluate to 10. > > > > I'd just prefer the comment to include the explanation about why we choose > > MAX_ORDER for start == 0. Say > > > > /* > > * __ffs() behaviour is undefined for 0 and we want to free the > > * pages in the largest chunks alignment allows, so set order to > > * MAX_ORDER when start == 0 > > */ > > Meanwhile I'd like to fix "various boot failures (hang) on arm targets" > in -next, so I queued up Kirill's informal fix for now. Here's my variant of the fix up with more vervose comments. diff --git a/mm/memblock.c b/mm/memblock.c index 7911224b1ed3..381e36ac9e4d 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -2043,7 +2043,16 @@ static void __init __free_pages_memory(unsigned long start, unsigned long end) int order; while (start < end) { - order = min_t(int, MAX_ORDER, __ffs(start)); + /* + * Free the pages in the largest chunks alignment allows. + * + * __ffs() behaviour is undefined for 0. start == 0 is + * MAX_ORDER-aligned, Set order to MAX_ORDER for the case. + */ + if (start) + order = min_t(int, MAX_ORDER, __ffs(start)); + else + order = MAX_ORDER; while (start + (1UL << order) > end) order--; diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c index c8f0a8c2d049..8e0fa209d533 100644 --- a/mm/memory_hotplug.c +++ b/mm/memory_hotplug.c @@ -605,7 +605,18 @@ static void online_pages_range(unsigned long start_pfn, unsigned long nr_pages) * this and the first chunk to online will be pageblock_nr_pages. */ for (pfn = start_pfn; pfn < end_pfn;) { - int order = min_t(int, MAX_ORDER, __ffs(pfn)); + int order; + + /* + * Free to online pages in the largest chunks alignment allows. + * + * __ffs() behaviour is undefined for 0. start == 0 is + * MAX_ORDER-aligned, Set order to MAX_ORDER for the case. + */ + if (pfn) + order = min_t(int, MAX_ORDER, __ffs(pfn)); + else + order = MAX_ORDER; (*online_page_callback)(pfn_to_page(pfn), order); pfn += (1UL << order); -- Kiryl Shutsemau / Kirill A. Shutemov