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 E5460D0E6EE for ; Mon, 21 Oct 2024 11:12:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4900F6B007B; Mon, 21 Oct 2024 07:12:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 43EF16B0082; Mon, 21 Oct 2024 07:12:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 306C16B0083; Mon, 21 Oct 2024 07:12:37 -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 138176B007B for ; Mon, 21 Oct 2024 07:12:37 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id C077512181C for ; Mon, 21 Oct 2024 11:12:22 +0000 (UTC) X-FDA: 82697346018.18.00BC1E7 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf12.hostedemail.com (Postfix) with ESMTP id 6A18640016 for ; Mon, 21 Oct 2024 11:12:27 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=PcH3jfFK; spf=pass (imf12.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1729509004; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=fbws/WxUwNejDptwzJqGW+4L+Nq8J7RK8+TX0K4g9ys=; b=wWzsu8trVUt8oKoxcEQ4k+ZgfOYS6qPQOoIXGORQ2nVWYUhxOcPHg0qEmhFV0PxNTmdA7v iDR6KkTy7YQp/GGzpxqzjhUs03aqeG8kumiQVmAVwQnh8qn6DYoiEUa1SsVltYxIllTVn4 /xj4rsPFveMf+fUO2KICTpEe0ymXYuw= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1729509004; a=rsa-sha256; cv=none; b=HmeOXYCdC1pJ9xN+/jANlt5bfAVA17ba6kXudkRlbNRoGe8MURL8omDeC9HSXqy1i4KOTu 1WlOZ/6i67AKiMCK8sUxNhLFoE3iZlwuPqmvVITaznfcWts6iMI9/3fVmLnsRlgCplLf/I ctfWj4TN0V84VmPCpPx48bOg0zgevbg= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=PcH3jfFK; spf=pass (imf12.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (policy=none) header.from=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1729509153; h=from:from: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:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fbws/WxUwNejDptwzJqGW+4L+Nq8J7RK8+TX0K4g9ys=; b=PcH3jfFKDL3S2xjMEx3Ho3VyU8/Zw9J5MQ/Pu9eh9XHFG5d3LA37Lsnb8NlbqBQxQZLvim YxqbGbor7sVLw/xRKIUqqOB7Z12KGzZc64Id380vfMX0doZsUYYlmd8jMuLqSpzcLoQDpL Q/pMPmvqcG0mooByQWFGOAJxb10hUXg= Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-283-kGsejSJsMGWo7N530UFG6A-1; Mon, 21 Oct 2024 07:12:32 -0400 X-MC-Unique: kGsejSJsMGWo7N530UFG6A-1 Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-7b155e23851so599821985a.2 for ; Mon, 21 Oct 2024 04:12:32 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729509151; x=1730113951; h=content-transfer-encoding:in-reply-to:content-language:from :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=fbws/WxUwNejDptwzJqGW+4L+Nq8J7RK8+TX0K4g9ys=; b=NkxOLc7cmwANU9U/yrvTzA4jU23vLc/U3hNEqtUUIuQy1hsav9PuhSq3ObOIqxKYGI GVbaIv3efBOzmgU/WcY4m5vQK2QV0Kn7dFq1tbiTA4Cgv13AV1vla1kPdipc1t35czNu 6ImWtER8tGRqMsEWnESNjb6ZNJwdZwsX1IONS6yvaOcR2nnqjEIUBDOywdahw4wHAZke 07SgYYooj6ucFyRB6if6UOLan/hNddbQjw/pbSSEfEJC/tQUb5dzQrDvn2G0Ibm8IdZr GMexpGQr/6yLeSWcETNwjxSAJr4cV3VC/HeRXY6uOkdhdpTbPkXiAHhUhWkVyf+0Slaw Y7tg== X-Forwarded-Encrypted: i=1; AJvYcCUBI4yGLsPwZMSA9fPvd9QNi5GAi7bP1p5+xu1l1/OkDjrfku6NfEZceQYNpgdfl9SzhV88s9zDpg==@kvack.org X-Gm-Message-State: AOJu0YzRAtQP643VsLEDRWKCjlNT6i2mddoXgp57d0N7mb1ddF7HiiUg 510DYO4ufcbCvjpehaX1U+XP3DyJ9laCvHd/Dv6aBaoXQTQRzbRoxrVyjA6Dx2Jx+cJFoiEOCMB ZIkiX+K6ajCKymCQIXVVuygdWucm77E37ReshVNr2+XSXUyBw X-Received: by 2002:ad4:410a:0:b0:6cc:2bff:59ef with SMTP id 6a1803df08f44-6cde159f200mr128252966d6.32.1729509151707; Mon, 21 Oct 2024 04:12:31 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE/Myrk7JQKGKcX2DwyI+RFEzwP7PtOkGIb/F7m2G4o82Hac+RLHvXfLdMtzCiV+zSpAtATcw== X-Received: by 2002:ad4:410a:0:b0:6cc:2bff:59ef with SMTP id 6a1803df08f44-6cde159f200mr128252616d6.32.1729509151376; Mon, 21 Oct 2024 04:12:31 -0700 (PDT) Received: from ?IPV6:2a09:80c0:192:0:36d3:2b96:a142:a05b? ([2a09:80c0:192:0:36d3:2b96:a142:a05b]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6ce009dd27fsm16042386d6.109.2024.10.21.04.12.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 21 Oct 2024 04:12:30 -0700 (PDT) Message-ID: <7b877356-f5c5-4996-904b-6c3b71389255@redhat.com> Date: Mon, 21 Oct 2024 13:12:26 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 2/3] x86: probe memblock size advisement value during mm init To: Gregory Price , x86@kernel.org, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, linux-mm@kvack.org Cc: dan.j.williams@intel.com, ira.weiny@intel.com, dave.hansen@linux.intel.com, luto@kernel.org, peterz@infradead.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, hpa@zytor.com, rafael@kernel.org, lenb@kernel.org, rppt@kernel.org, akpm@linux-foundation.org, alison.schofield@intel.com, Jonathan.Cameron@huawei.com, rrichter@amd.com, ytcoode@gmail.com, haibo1.xu@intel.com, dave.jiang@intel.com References: <20241016192445.3118-1-gourry@gourry.net> <20241016192445.3118-3-gourry@gourry.net> From: David Hildenbrand In-Reply-To: <20241016192445.3118-3-gourry@gourry.net> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 6A18640016 X-Stat-Signature: m9qnr19iqhh84en1pdwt3dcsrwgg8rmy X-HE-Tag: 1729509147-62966 X-HE-Meta: U2FsdGVkX1/xZofnrU/AhGs6s4EGMEwx6ooFOJaD4yat+HMY0Or7V5EVnGJfEN7ErFcJYNhgtinsFizwAiA6g/RGDyDZ9PJe+PmhL641GobyEM47qRQB5JGJGTImrm6Gka4EyihJFiKNP1MELw36sL2xRCG4Ms5ckGlZpm+qBFYUU8SsSURxELNGwn/RAuEiO0QEuvhcpzkCTCg2JDGrfCBXI2p0I1sF6NXoNcerC02M0DcEdR13vt8hGaFs0qA6MJ/FJ272BFYkOnoIHKmQ3sf0oyuARuURULsb31xfLWo1fCzrAtJZBTbLDdHZQn8fLlxaUu7M6JSEuYZT1pTT8eEhTCBc2PuebD1HSBOyerWluHh01xI05RG+lLKZAxz3OYAWMFGOXT0IM4kMduv1IWIxYvadYjyWdmf7vZrD4wHLPQ5UtP0KRAwHtPYPZtQ3eY7pjgcD39mXQ5col/FdsvdzBD6MAks8UHKuX1QZ7ms7eOkEfxAtB2fGqZB7JZVGjF9EqTht5KuIgIvi4WjCALwhkRiY2lQhQZyKY/YiJU4fdsZnJQiOFciPeUOEEL1INOXDyhv70Vlt+eBQnbW/0xvbkfpdo+tIk0UtO+CzXAgrUQHChpyi9EhxoQlh++3dNFt6aXEE/RxFRm+Dio+e5QJESFg2d4qNftj3KVQerAfilZfrOT2G1/IBDFBp6+HnTH92o2QrMnMcWPeQkVXFyZAypOVLfkDpqdqdCYykTqY06O0VoYKWXRjTdJ8lK1zo8gnwJokmSqUFLsembJIxQ7MgrXWMyGIGzAVfE9/QjCMo/HBJo+z/j/64jYQU7nvUe4+miBzIYRSCgBp73i+o/T3rGJlX4RcudnA4x7kFuI1e/DY3Gs3r8RddPF0/mh1TkSvC4RzW2B2ZXz3yY+jvxCRPXj78NvW8kG1AAcSA1mGKYx/d64LWEXAdhy/E3cRwoVQHcLfMVZ5fwacltUm 3/d8pV2x 4FHiC/5JkWyKKajyItnR5nb+wLCcCXIbxF2IiaNkj0gNnDNB0HrvWHRN9v9YefkFYhZ9Ddhefc/lDAko9I3J9jiVikx3qx7tOK07gpRppS15grcofXRl+mJ0+aEF0dY7kTvGFsWv1UHYnu/MSjUSQgNqhRqMXSyeC4MPLcT96et98hWR+ES+Qzicn67ANy/x/2kOE2sxeSkYQGBXcufENAkl6p58YU2Fu4IItQm4AiBjWPx0eTbT2X+YP4DDWEjp11zaWzl6AWoN+7rllqaw+Fub9PSrqlAEQrN8/uqYVnb28Xcf+/6WtPq132j/fETrkfqIzaChvWYtS5Aipnf7jXYBrg/j145sLMT5yFgzLfnt2u2GzEL2BtLCAk0IzGKfulS9RN580wECbAcNeOaNz7UsJlwTPdebw48FQXMx8Z2ZOULihyw3E1IazscutmbC6ftcxq3rtmXwVDFEg/G1BJ4YoLpVJ48Oqpdfzi/vDIQuy4oJA/K3BtgoLCe7L8asRN37mLao9q1epsS3t56f1Yv2cp6KcKyQugd6zLSrJ+OIOhRhDb3qkHatA2A== 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: List-Subscribe: List-Unsubscribe: Am 16.10.24 um 21:24 schrieb Gregory Price: > Systems with hotplug may provide an advisement value on what the > memblock size should be. Probe this value when the rest of the > configuration values are considered. > > The new heuristic is as follows > > 1) set_memory_block_size_order value if already set (cmdline param) > 2) minimum block size if memory is less than large block limit > 3) [new] hotplug advise: lesser of advise value or memory alignment > 4) Max block size if system is bare-metal > 5) Largest size that aligns to end of memory. > > Suggested-by: David Hildenbrand > Signed-off-by: Gregory Price > --- > arch/x86/mm/init_64.c | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c > index ff253648706f..b72923b12d99 100644 > --- a/arch/x86/mm/init_64.c > +++ b/arch/x86/mm/init_64.c > @@ -1439,6 +1439,7 @@ static unsigned long probe_memory_block_size(void) > { > unsigned long boot_mem_end = max_pfn << PAGE_SHIFT; > unsigned long bz; > + int order; > > /* If memory block size has been set, then use it */ > bz = set_memory_block_size; > @@ -1451,6 +1452,21 @@ static unsigned long probe_memory_block_size(void) > goto done; > } > > + /* Consider hotplug advisement value (if set) */ > + order = memblock_probe_size_order(); "size_order" is a very weird name. Just return a size? memory_block_advised_max_size() or sth like that? > + bz = order > 0 ? (1UL << order) : 0; > + if (bz) { > + /* Align down to max and up to min supported */ > + bz = > + /* Use lesser of advisement and end of memory alignment */ > + for (; bz > MIN_MEMORY_BLOCK_SIZE; bz >>= 1) { > + if (IS_ALIGNED(boot_mem_end, bz)) > + goto done; This looks like duplicate code wit the loop below. Could we refactored it into something like: advised_max_size = memory_block_advised_max_size(); if (!advised_max_size) { bz = MAX_BLOCK_SIZE; if (!boot_cpu_has(X86_FEATURE_HYPERVISOR) goto done, } else { bz = max(min(advised_max_size, MAX_BLOCK_SIZE), MIN_MEMORY_BLOCK_SIZE); } for (; bz > MIN_MEMORY_BLOCK_SIZE; bz >>= 1) { if (IS_ALIGNED(boot_mem_end, bz)) break; -- Cheers, David / dhildenb