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 341C2C36010 for ; Tue, 1 Apr 2025 18:34:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 34145280004; Tue, 1 Apr 2025 14:34:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2F074280001; Tue, 1 Apr 2025 14:34:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1B7AF280004; Tue, 1 Apr 2025 14:34:02 -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 EFB7D280001 for ; Tue, 1 Apr 2025 14:34:01 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 7C89A80793 for ; Tue, 1 Apr 2025 18:34:03 +0000 (UTC) X-FDA: 83286324366.26.6B9074C Received: from mail-qt1-f179.google.com (mail-qt1-f179.google.com [209.85.160.179]) by imf30.hostedemail.com (Postfix) with ESMTP id 918178000B for ; Tue, 1 Apr 2025 18:34:01 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=gourry.net header.s=google header.b=oNBMeJC+; dmarc=none; spf=pass (imf30.hostedemail.com: domain of gourry@gourry.net designates 209.85.160.179 as permitted sender) smtp.mailfrom=gourry@gourry.net ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1743532441; a=rsa-sha256; cv=none; b=LraJpP3Iu8kd4UU3sTgunQOIlHTpX33dlwOQK1Z0rKRuKuXaHG4TmSdInTTF5Z1vnyMtcl NCTNU/IZMTQ4iyXJdFwk3ZoeRZosV29Vnd45hY/bDPqDsJEF135ybyLEtcqa8ohXqKttYk dHNUzAJm71agpNW0hHJ8XxCedEwF6MU= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=gourry.net header.s=google header.b=oNBMeJC+; dmarc=none; spf=pass (imf30.hostedemail.com: domain of gourry@gourry.net designates 209.85.160.179 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=1743532441; 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=SvFO86uOfXys++aHN99bumZHLvFpFBrUvW1hjDZlBME=; b=Ff1/2r13J2t6JFibcBhWedd1IURfXZUrM0nFOUkceXsD67DMGJwFAws6iJpQ36z9hhzsKT +s6vWhypvjQls7O9chSxX7SnyW1MGEkV2rQiX7WVzVSAE/upYqr0j2BDtBCEH2By5iFgIz 11KVorZu5ZIo6Krstd1t4dCW5LT/8DI= Received: by mail-qt1-f179.google.com with SMTP id d75a77b69052e-47663aeff1bso55821381cf.0 for ; Tue, 01 Apr 2025 11:34:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gourry.net; s=google; t=1743532440; x=1744137240; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=SvFO86uOfXys++aHN99bumZHLvFpFBrUvW1hjDZlBME=; b=oNBMeJC+AKfvINSwydbRRy1C/KRpY/YXJNu81R2VS1saLOQiszHCFanMQN0aEGiFuc fiwAF88H152JwyyJoEdoVe5h2hCzPlAKeQMyo7N0Fe4YmUvdP55sTS1VwF992E+uenTa GQ+T9ldVdD2ok6pwDGr8Nd6kLqyNC7wBBEKmBad0KROgTRjfVDEoIy988JQ/+lDKv8rS I0lCzeWHCt4x1+ySJAY7Q8c9sZWvc5Tgb6Ok9TLP9GJfj2Gtdwf8/NdQaenFMryGWxMJ nvP1YXykcBKdMDX5/MxQfFIKAv1uUXqeErnW16BVhwB/yzpix/ykR2SESnE8s7Vy7trX xtJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743532440; x=1744137240; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=SvFO86uOfXys++aHN99bumZHLvFpFBrUvW1hjDZlBME=; b=Z5ZUtv64tXscTz4wALS5kqwQsWTUHgd1F81xSYlHYetWQ+kZiHmkbp7DxNfgU+RYAp M1goMaXi6FcVBDKhjMAraQKDE8Fg3WEr0RnxDQLRjqcQbSFI3RNnXdwiI5L1m+XrJXYj ZwQYzTbK60yM26sw8PB0Vmect/qviV8wWuoCA25RdCGQXlMhFDtHFjYsFIXOLWqJOSph k0GZziaYwAOb6HJM5306+ZwxJFZyrvrEp8jP2+SAaW5L79BZqHnb1XqPRiTeknsRr0cq kzNODkOAdbz88g99bzH//JdgGitMjklTyvIYO17Q5JMfk+jL0d0J5OEbi5jxHI4qjNrX 0WfA== X-Gm-Message-State: AOJu0YyzO4wpd4ZvT+lNX+MaIkXsumeechwXwJ6XFIV8zMWdjb5hvKKk m8eJscZrpiv5gjT+tOOvjyWnGQ6ObhCtT+UcupHyOhnZ6NbKYHLkPnTBcaHvoiZ0x4aYfUiHR2J D X-Gm-Gg: ASbGncvk+CCf7mD+DvUI3jiVCybVNutYCwJ6N5qY/ptkr6lTj+ScrEzgtPVlPH3dgYN UBdngQx/PLBeHTLIp33bgEN/sMRg9M1ieCK7IUZw/HR8h5ArzAjjfzLQjCoZM2oUfndUTXSavFJ oey+o+yKO/qZYOESvCoa+efsUTdLdrp+BkyCUMS25ifLZzL9HrX5qZVBd8O4heelE8nrh/1gN7r puPqDoCX+gS2Fuad8JoOeyVljCwhVJnuGQU/F6ux6QzI+gFJ9+XS/nyIiopcm+EC5/jAZT0Zzrv bgv84l+Y8vODRNkbbPQ6gTLFyoj2tCk0Ko8UHE/u0HK2Li6eoPzxWopfcA64BOTIXhywJ9I8+xJ ETLjuckbxdtfLSxE3grbQsIFpHKA= X-Google-Smtp-Source: AGHT+IEIYtaOaF9anjPimhqDpAgFdltbw1UzV5b/pfKJo08pDKfU/jOer4wWpo31Zghqh/X5Dhy8Cw== X-Received: by 2002:a05:622a:1a01:b0:476:7b0b:3110 with SMTP id d75a77b69052e-477ed72a711mr245214581cf.20.1743532440314; Tue, 01 Apr 2025 11:34:00 -0700 (PDT) Received: from gourry-fedora-PF4VCD3F (pool-173-79-56-208.washdc.fios.verizon.net. [173.79.56.208]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-477831a6579sm68620191cf.73.2025.04.01.11.33.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Apr 2025 11:33:59 -0700 (PDT) Date: Tue, 1 Apr 2025 14:33:57 -0400 From: Gregory Price To: linux-mm@kvack.org, linux-acpi@vger.kernel.org Cc: kernel-team@meta.com, x86@kernel.org, linux-kernel@vger.kernel.org, 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, dan.j.williams@intel.com, Jonathan.Cameron@huawei.com, alison.schofield@intel.com, rrichter@amd.com, rppt@kernel.org, bfaccini@nvidia.com, haibo1.xu@intel.com, dave.jiang@intel.com, Ira Weiny , Fan Ni Subject: Re: [PATCH v8 0/3] memory,x86,acpi: hotplug memory alignment advisement Message-ID: References: <20250127153405.3379117-1-gourry@gourry.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250127153405.3379117-1-gourry@gourry.net> X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 918178000B X-Stat-Signature: seac48jgb9q5yjb33ojo9gjgnp99y3rf X-Rspam-User: X-HE-Tag: 1743532441-986428 X-HE-Meta: U2FsdGVkX1/fXFs7gIK0QDT8TC/e7SR+rRa2FnTumKgbCbITToi0ghNVfKu7XYdDGvQJvAO6o3/Fqj2V/MPv3U2OiFqY1rLTAfje3E5ecHzIEcDVqqirI69NcjEHU6Vaix37MFZAYcZn0vqJ/ft1Lpafzz46Hu4Yp9uWvmyfDlSHcuVbeg614hZJO0Im0WfZbjDcgEWiTY3PZNGMVf3D2odu59Vh4uXw7TG6gEH4n3lAWENoZ9dGSprT0Sd0/2fVRnwf8mLuWUIyKqqyXp4JVY8BdYCVUrnu6vkXVQGY3KHBKJbnSsH575wN7uXfdZWip7d0Jxg9qBj7KDYX7+63s8TPUmcUDjT2rIkWQVF69Eo/WUj9eDJYUYCP3EVuqos7bXSJ7tyxpSCn05s4uShI/t5lbgE3f6SrFmd0DYvqWfooED1WU3mFO6IplOYbyjU1dBYpBxjTmqstAKxL6djaZMjjfM4kslcvk21cFaeKrKXecy7hwAY8Leg91YZOU9EkUs2OLX4cj0hG7H0Wso5K6PuOgHI2Tc44qoPAMjbxcYwNm/GEYBO3TUPUtEFjGcgffTKer91DkFcrLkYyeeXOo93PSmkstOIGQFZsgbLcyEijpodWVPrJrko2PUFMI86MTdfgZBj5cL5YmO2l7h2gkwaUaiyMCH8IB7D8zmNqKm8vuTwR5+QTFWG6yf+2XxjI2+vgvxvZB0UNpCIlftzfWdIeod3N8sBLXlVLLG/S1lDaZDEglvGI1lMO5hM4Pdv1JisLOarBjpFUY2BRuNBOwX21XRFe3v82joiw/bc+BsFrM5f9E8DkaHBiOyYBAfmzqQZqMZPze+6GyVwYvhJ/Y2XYthlvh+LHflJnUwmcXJI4aHBY/RtBXgHz/7x4KH5oE6LbyOFoqV6nosG0KHZE2Bi3X2IBHVlKD/Wi6sCC6GQ1SA7N2qp3WWo0ibtyixZXAM9i/skV0fswZDpKLC9 VnyuzzHZ dfpIRKJS1BuMoVz2F1MyY03ADO3MptwhQDnhqTrdVYUuf2b6fDXqbynVwl7rmATzXTfRyE83+p/3reGEpCvyOIAxIqC97Ww3y1eEcLHaRPwGAbYX0Q5k7kJM2xDqSKwEEDKkMnV4dbXeQgKS80YQ1gMXcZGbQRRwUC5Yt+E27YBAreus8xkm4CkbbEyHgwUqVutKJibI1wVCdmCMqOD6SGxn66raY06ZDCiRQM8wuymRPTPaMAtZ0kz8rv/29GBX8xNF+EwnWJYne0KCKO8I+mxHip6zf5/M9KHUIXUV9wUDaqqv6cyGK0uU8QiALqJjrZJ5jvCu+y18OcbA7DewTKwTCaFbhLPDtkxpujTs5dpV96hyGz8IED5RVncgWPFNnPdLS9AJCj7IrIN2grhx2Mc2SJQrf0D/nTLxcXXIiM7D/YNS2KG3AruzPkawwJw+9ka47rv7TBIccTt0dsyHqkyKU8kEHpxsvaeSI 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: On Mon, Jan 27, 2025 at 10:34:02AM -0500, Gregory Price wrote: > v8: nits and tag pickups > I apparently already cleaned up the remaining nits. So this has been stable. Just did a rebase on mm-unstable and it was clean, so this should pluck cleanly. Andrew, do you think this should go through mm or another subsystem? ~Gregory > When physical address regions are not aligned to memory block size, > the misaligned portion is lost (stranded capacity). > > Block size (min/max/selected) is architecture defined. Most architectures > tend to use the minimum block size or some simplistic heurist. On x86, > memory block size increases up to 2GB, and is otherwise fitted to the > alignment of non-hotplug (i.e. not special purpose memory). > > CXL exposes its memory for management through the ACPI CEDT (CXL Early > Detection Table) in a field called the CXL Fixed Memory Window. Per > the CXL specification, this memory must be aligned to at least 256MB. > > When a CFMW aligns on a size less than the block size, this causes a > loss of up to 2GB per CFMW on x86. It is not uncommon for CFMW to be > allocated per-device - though this behavior is BIOS defined. > > This patch set provides 3 things: > 1) implement advise/query functions in driverse/base/memory.c to > report/query architecture agnostic hotplug block alignment advice. > 2) update x86 memblock size logic to consider the hotplug advice > 3) add code in acpi/numa/srat.c to report CFMW alignment advice > > The advisement interfaces are design to be called during arch_init > code prior to allocator and smp_init. start_kernel will call these > through setup_arch() (via acpi and mm/init_64.c on x86), which occurs > prior to mm_core_init and smp_init - so no need for atomics. > > There's an attempt to signal callers to advise() that query has already > occurred, but this is predicated on the notion that query actually > occurs (which presently only happens on the x86 arch). This is to > assist debugging future users. Otherwise, the advise() call has > been marked __init to help static discovery of bad call times. > > Once query is called the first time, it will always return the same value. > > Interfaces return -EBUSY and 0 respectively on systems without hotplug. > > Suggested-by: Ira Weiny > Suggested-by: David Hildenbrand > Suggested-by: Dan Williams > Acked-by: Mike Rapoport (Microsoft) > Acked-by: David Hildenbrand > Acked-by: Dan Williams > Acked-by: Dave Hansen > Signed-off-by: Gregory Price > Tested-by: Fan Ni > > Gregory Price (3): > memory: implement memory_block_advise/probe_max_size > x86: probe memory block size advisement value during mm init > acpi,srat: give memory block size advice based on CFMWS alignment > > arch/x86/mm/init_64.c | 15 ++++++++---- > drivers/acpi/numa/srat.c | 12 ++++++++- > drivers/base/memory.c | 53 ++++++++++++++++++++++++++++++++++++++++ > include/linux/memory.h | 10 ++++++++ > 4 files changed, 84 insertions(+), 6 deletions(-) > > -- > 2.48.1 >