From patchwork Fri Nov 1 13:47:04 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gregory Price X-Patchwork-Id: 13859390 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 4FDC7E6B278 for ; Fri, 1 Nov 2024 13:47:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CAA4B6B0095; Fri, 1 Nov 2024 09:47:19 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C0B386B0096; Fri, 1 Nov 2024 09:47:19 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9994F6B0098; Fri, 1 Nov 2024 09:47:19 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 78B716B0095 for ; Fri, 1 Nov 2024 09:47:19 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 3666980484 for ; Fri, 1 Nov 2024 13:47:19 +0000 (UTC) X-FDA: 82737651066.20.935CA7F Received: from mail-yb1-f175.google.com (mail-yb1-f175.google.com [209.85.219.175]) by imf04.hostedemail.com (Postfix) with ESMTP id 6DB8040008 for ; Fri, 1 Nov 2024 13:46:41 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=gourry.net header.s=google header.b=mSDpSc72; dmarc=none; spf=pass (imf04.hostedemail.com: domain of gourry@gourry.net designates 209.85.219.175 as permitted sender) smtp.mailfrom=gourry@gourry.net ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1730468781; a=rsa-sha256; cv=none; b=JgGqfcgGr/hiIk8g/cRcIPx1eTNJLukkVY3/KQFgReXnxFkko+aQlNZ1Qd0KqQi0BJ9e33 nQnNovYajGdAsvEBlMeB6rwbzDS+VDN4+KI/6YoFlES2xUFneiBWpUq6hLxkuo0cA3Q6Ln gsX6vZgq5XAtCiQXfmXnpyzMgMx9iNQ= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=gourry.net header.s=google header.b=mSDpSc72; dmarc=none; spf=pass (imf04.hostedemail.com: domain of gourry@gourry.net designates 209.85.219.175 as permitted sender) smtp.mailfrom=gourry@gourry.net ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1730468781; 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=fqBWIQFF5FQxg66rq7hDVwvrkSgx0UrsiyD8ZLE5CIc=; b=gY+l3FrSZav5x4zPBGXjm6+I/R1KC7OyfYNEs0/7wBeVSufA4cLFscn7TQ37pqO1zLH4xi 0ZFoWpB7ovil06QVw0lcIgAWHw4VlKr+YIoYuEzSY/tgzVK4a6RMFtAayhmNCh45iXUeE9 kTa99cGUjBlBXOXtE9SZ5bM44tiPmuw= Received: by mail-yb1-f175.google.com with SMTP id 3f1490d57ef6-e2915f00c12so1806355276.0 for ; Fri, 01 Nov 2024 06:47:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gourry.net; s=google; t=1730468836; x=1731073636; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=fqBWIQFF5FQxg66rq7hDVwvrkSgx0UrsiyD8ZLE5CIc=; b=mSDpSc72jzb29szW1caMxMNpaY3HlDP5wnC5B8T1CaKk3RSItWvaz80YQap319aTMD iU0dxG4DjnM8tKFfk1En+vlgjixiXST16hpqVuxzScZHuWogY3NrJSPATmDvLwZGpQSu zDdlCm+UPkzDaP5XoMrpCw/w/lV4IRPyiY4Cu8aygerAzI5Y4AdljeO20BQtF0mKYNUL buSoGCwCFl4HACPO0EjzbXAgTYr2tS1VYsVXF2v3ZyUNBfHieX1g6/O3ENCAq2heszYb Lz1npczblsUdtqxxjBhnwZ/KffJR84x47PRBYqVSapSqg6/qqQNju2/P61Ngm6EHL6d2 3Z1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1730468836; x=1731073636; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fqBWIQFF5FQxg66rq7hDVwvrkSgx0UrsiyD8ZLE5CIc=; b=pLEfmbAoD9hhOUxNvS/FFakEH0gLzMWB1fyg6gFp6Q1xp2EADV9vFwkzK0XcvbAExu Dfv9kgzwp4BuS0CgWcXnAS/j4ozisRMwiX6rXHP16AFL7iSfZRuAgnponmCXKafak+Re X7XvvKsjRbVmjdiGiJ9WNkMlHJ2Pv6RNQJ0dpr3OSoG7P1Hmt4AmOo2JhBLl+F1mr1L/ KZ2C1CbWwhnBMxYILmyefTUUtSNyYJxehl+OhuzE+FBOM5hjMz9XF6NRzjAOW7gHhR1+ akR+1JbFQKijYBKsvW5rBl1zFKJh7kmyclvaBd2AVNveAQhUGoErUuNyEclqHmWBKKLZ tZnA== X-Forwarded-Encrypted: i=1; AJvYcCXAy8xew/Lg/tvnnF5QHDEo9MNPYlx4MMnFyRFawn4hzgIEFfcVHatQjYR+HUL6kZ66w1SRosEfuA==@kvack.org X-Gm-Message-State: AOJu0YzyGTt5iAHeL07hMQQdNnkcMR7wQWrXH+Qpj7RyB3T2ataVbJKo UaluAMf3bJFkG9olMNL79ShXWoHYStzEtb065DwxyW0ZPOT/5+Aj/UZqabQflb0= X-Google-Smtp-Source: AGHT+IHc7ueHoeZ78qtsNy3gd8c/oEoo2nOnDyxntt3wb0tJLgWmBDNYSZb05h7Av17dwgQfREUg1g== X-Received: by 2002:a05:6902:b01:b0:e33:14fa:2273 with SMTP id 3f1490d57ef6-e3314fa232amr169232276.5.1730468836506; Fri, 01 Nov 2024 06:47:16 -0700 (PDT) Received: from PC2K9PVX.TheFacebook.com ([50.193.156.113]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-462ad0cac07sm18840631cf.48.2024.11.01.06.47.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 Nov 2024 06:47:16 -0700 (PDT) From: Gregory Price To: x86@kernel.org, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, linux-mm@kvack.org Cc: linux-cxl@vger.kernel.org, Jonathan.Cameron@huawei.com, dan.j.williams@intel.com, rrichter@amd.com, Terry.Bowman@amd.com, dave.jiang@intel.com, ira.weiny@intel.com, alison.schofield@intel.com, gourry@gourry.net, 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, david@redhat.com, osalvador@suse.de, gregkh@linuxfoundation.org, akpm@linux-foundation.org, rppt@kernel.org Subject: [PATCH v5 2/3] x86: probe memory block size advisement value during mm init Date: Fri, 1 Nov 2024 09:47:04 -0400 Message-ID: <20241101134706.1185-3-gourry@gourry.net> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20241101134706.1185-1-gourry@gourry.net> References: <20241101134706.1185-1-gourry@gourry.net> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Queue-Id: 6DB8040008 X-Rspamd-Server: rspam11 X-Stat-Signature: bjkmhss6a49ta5wme83u5boz6ty8y84d X-HE-Tag: 1730468801-132885 X-HE-Meta: U2FsdGVkX1/CiY1g3oGY0xjdXnSv+ob4iW1T99OdSbCKNQBRFc7MKWo8PwCVYS0tpXAkxJpuQEl9QtBzh/WCHnQcvtmTqu8jQHh1Da/1ehsb/IK7W6Of4Z9tJPWGdxZhOmBiqvOvc7bOyspBPaf+/KOwcmvLfOGqan02zegua4O9hLdIuWEFzCUaCcxKoP63ysCpQZzDMzS445Ew4GKRmCg68EPRvjTikmXGVb41Y08VmG+G5mna9dbrih0EWm8/Be80HSmFRmRHYYJFidBJQh1vuP5JYo0UPdaHu9uF+8JWIAN9AfYrG3i8nXaO8c/BNNIPXgUGC03u+EDOvPaWLlG1Z8uD9XA7lP1zlaxpPUlwEcFJ8JxTAEVRk1NGhCLRLbqJppAdNhENOOrZXHcaE3JxLTrB4eD5U7fAhFjyIU11J41QbccYc+LA1Ccu1BFW49iYqxiuisTyep3wJwTnlnJKgBpvZDV492mfoRARGbGEosaNxudWpL8mCkUTH5VctRm1sh7UTnNU6UXshvMoAF3H1OugScOUOezdKni75qHlCRiXSLoaWks/P3qjHpXta+P9lbRzsqERmdRDewPBmM0Q1jz192CuUnzs4YBh4oY3UsHxAwf7wOIqrofegY4aEYvXSoa+231ki+fnFlz+PTC3eptjHlH3bvM/Yalg4HSGDU8e+HEuZq3eNnr7rwi9cdkn9npVgHjOPu0Q4bZfVjx+JY+uhHvRL3ga/HRKFJUco3Ual7N52jOj0dHu7V/7PnLSUdg0T19gghvv39XUENPo8T97xdnyrdffEiS+nQPMKr8hMqjH7JBXk+soq1V4EWnnSv/oEEcibeV6KTj+DiVKRqWVlLChX0rGTVxdXb19knTFL3SGfhI61d8tjgwnT0ZQnAtDA+EFI3/8C5BcC4btb4h7j6ewtoDyj7a8o/uIO9aTK8JyKNUv86BXd9QWvlAnUUqBVOjGaD4nK3h Lx0bdAZh ZrpxPpouM/ioveAYrpmeKi2HPMDpjjEQ1jnpLLBiINJIAq+gVsykMyjwDng8kHc8DPrr7J4KUX77zHNP1g/IXxW9Nx4Y/I9JxOJJHKEWbNbqSHXj83dXaLLA+HQ631jntptWbSFNaSWSuzZCfg8lLHMgG8DMuF8ZZ6fH8HuagUOk4P3Knblyx4Eilmee5kjz60JwQd9fRjoFncWR6P7w0XXb6J5wjGvKkAP27srnvVw5SRWXqz5tkAobUlHgTl0zS8uQ6+YZrH6q1+w5XaBqaLMbx1Aexi8z8xnWUdbzuOMW9tEgOTOTVcr0P8/Pdb2TCiUJafIHqqQE6nn4= 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: 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) if no hotplug advice: Max block size if system is bare-metal, otherwise use end of memory alignment. 4) if hotplug advice: lesser of advice and end of memory alignment. Suggested-by: David Hildenbrand Signed-off-by: Gregory Price Acked-by: David Hildenbrand Acked-by: Dave Hansen Acked-by: Mike Rapoport (Microsoft) --- arch/x86/mm/init_64.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c index ff253648706f..f1a495e998ce 100644 --- a/arch/x86/mm/init_64.c +++ b/arch/x86/mm/init_64.c @@ -1452,16 +1452,21 @@ static unsigned long probe_memory_block_size(void) } /* - * Use max block size to minimize overhead on bare metal, where - * alignment for memory hotplug isn't a concern. + * When hotplug alignment is not a concern, maximize blocksize + * to minimize overhead. Otherwise, align to the lesser of advice + * alignment and end of memory alignment. */ - if (!boot_cpu_has(X86_FEATURE_HYPERVISOR)) { + bz = memory_block_advised_max_size(); + if (!bz) { bz = MAX_BLOCK_SIZE; - goto done; + if (!boot_cpu_has(X86_FEATURE_HYPERVISOR)) + goto done; + } else { + bz = max(min(bz, MAX_BLOCK_SIZE), MIN_MEMORY_BLOCK_SIZE); } /* Find the largest allowed block size that aligns to memory end */ - for (bz = MAX_BLOCK_SIZE; bz > MIN_MEMORY_BLOCK_SIZE; bz >>= 1) { + for (; bz > MIN_MEMORY_BLOCK_SIZE; bz >>= 1) { if (IS_ALIGNED(boot_mem_end, bz)) break; }