From nobody Wed Apr 15 16:16:00 2026 Received: from mail-pg1-f178.google.com (mail-pg1-f178.google.com [209.85.215.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1804534D3A1 for ; Wed, 4 Mar 2026 06:46:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772606778; cv=none; b=XiPUyIx2vUO5GwSHsZqdBkT3M/phArmGnJiWv27hczGQMM0ZZsXZz4gmRjo24m5vO5ueZknGG9BT2b+qcur80AGo1ZhIVUis+KbqbaWkK7pf9u/SK+q+Mk61+V63fbCdPE37htpu+wFRNNp9AJlsQ4OFJlae4tsr6yEfm3PFKLc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772606778; c=relaxed/simple; bh=90PkZYD19lIg3ECOOq8+KKd7Im1dAaENxC3zu6J0m2k=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=fiTW4DbF9fpDkwBoZ1emQpGS4lgpH7PEaoytVpoLupDnPGr5gq2Lj1xg7hD4h5fFZ78GTn9EYqpvedn5ihhHZNWvpzQio8ZL2PZY1iwv3Lj3nKE2eE4X+ijmvsgDhYnIPGimLm6AJORFt7wOlaKa35TqfVhwbp7y5qOXEVhXlSA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=shopee.com; spf=pass smtp.mailfrom=shopee.com; dkim=pass (2048-bit key) header.d=shopee.com header.i=@shopee.com header.b=dK6t79vm; arc=none smtp.client-ip=209.85.215.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=shopee.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=shopee.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=shopee.com header.i=@shopee.com header.b="dK6t79vm" Received: by mail-pg1-f178.google.com with SMTP id 41be03b00d2f7-c70bfef17a4so3871633a12.2 for ; Tue, 03 Mar 2026 22:46:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=shopee.com; s=shopee.com; t=1772606775; x=1773211575; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=cjM1BsJwmjPeoyTCC5ziuKUW/44MzOrvs53qVh9C1CQ=; b=dK6t79vmf90CZiXRVc228XoY4wt1DwXSySBOfVuSFo9xpVvW4UIEwuUi81RouSkGI5 lPvf01oQlAWLWV5qwbeJCHq+NIInyKgEnpxPa3l66al2X1FUMLhAxTqeeoIJRomwU3Kf CS3Z/RAJmk4LsUDjO68lIRUK3zYhPNgsDs7uDyGMfjCU6GeROnFtU1rkuIikzXyLMPLK yZWCWJD6JZv7zL9bnkd4VfKgbWC30c0aXNCTuqpW4zgtyw8JVP6eZ9d8JcdDXuAFhx8Z HsIkd0NRJSkfEMN2gTYX3iGoUU0xA/TH3ifqOzs2R4XMfRqUhUyNHwXy9h/k3g2JnQOg Vh/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772606775; x=1773211575; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=cjM1BsJwmjPeoyTCC5ziuKUW/44MzOrvs53qVh9C1CQ=; b=msgsidMP4zbVYKMo1v9JfaBIKRdO/u+8yOxQ2JrpAZHPAA/M2WSXfnrwc+AH8PGuJk 81k2/OrtVf96QFOduV+gfN2qEjJBxnq0SQNnPcfAIAX735qjKRqGw7XtblXTsqtXl9pu VHAsXRRB4GbOApv+VccOYRQ4kb93u5bANFg0hpno1bQ4VSIWyJ+KYVrTVLl9vRl7oBSg vBzqBuxcemDIFnRisvXU8p9hMOWmZI7JplgjNgU4cBKvYR4Nw/9BdI16gRS0rSb4dD32 K7Pgy5voLPkZhxRq4cuD2tud2pZFKhKM0UPrh/H3PLTHnnTjyAgAzI0GMz/TmNlelpOP OA0w== X-Forwarded-Encrypted: i=1; AJvYcCVhtiPpBtAyfTjRiyfVPF7aMOf8ZR1trs9yt3sOHlc0UwWNXYxOIQhZRRP9pL+NMg3t9c4pME/2fmFYC7E=@vger.kernel.org X-Gm-Message-State: AOJu0Yxpo7GRmiQz1AO5SPQb98XF1hCIE+BvaIzrnCbTk5urbPe+oh/a TNV1UOlj4uSxN0b6WRkxDOA+33V6UMdWBV9PMA0x0ZbA99eIpFCn16FJ7+8+sATP+dk= X-Gm-Gg: ATEYQzye4JdnaWh8XE+SmKUts8Y4xASXmpGQXL4zKcuOfEl0Wg1SkwzutK+vXT6XrPl uvYEtlc1C52AH4ZVnQw8BNOSdK+1AjvdjLNmz1aSsuIZVTih4EODpoFqZXNlTSgM3GQT6CBFl+s tHrgkSoeN6k3XWtYXnsuGq1tLvY9INOLhFSBzdFuoStBgqrB0u+o+IGAdzm7sfPRwJ6Bp4x6Tz4 L0Qlw6UuAbmCA583jiHFv6rpmFpaPNi6idAKJCjuvPX6rvxdLOQloPMCn7zZlT69kdl2HQwikE4 u/RnVOh/xgXCGnJRbpgKE7nf0Q5LahCqzsX/pIgml4DdDc7wK7xPMsShUUPLlH2OMnAc15OETWP XbFtNDgFFMRC83evsqVRsw2IIYF77AbTvaa6gNpVmlVgKC4I857FrP7IcvV9fe6KstZiP+9VR4d A/vHxgy6jIs6CqZK5jjG0Bx6DMZbGBQI8P6Y9g X-Received: by 2002:a17:902:cccf:b0:2ad:4265:bfab with SMTP id d9443c01a7336-2ae6a9ece4amr10630755ad.5.1772606775452; Tue, 03 Mar 2026 22:46:15 -0800 (PST) Received: from localhost.localdomain ([147.136.157.2]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ae4b9ac021sm87248085ad.86.2026.03.03.22.46.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Mar 2026 22:46:15 -0800 (PST) From: Haifeng Xu To: rafael@kernel.org, lenb@kernel.org, dan.j.williams@intel.com, jonathan.cameron@huawei.com Cc: dave@stgolabs.net, dave.jiang@intel.com, alison.schofield@intel.com, vishal.l.verma@intel.com, ira.weiny@intel.com, linux-cxl@vger.kernel.org, linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org, Haifeng Xu Subject: [PATCH] ACPI: add a boot parameter to disable parsing CFMWS during NUMA init Date: Wed, 4 Mar 2026 14:46:09 +0800 Message-ID: <20260304064609.75585-1-haifeng.xu@shopee.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" For the machine Intel(R) Xeon(R) 6746E that supports CXL memory, the possible node is 20 (0-19). However, only two numa nodes (0-1) have memory and the rest (2-19) nodes detected by CEDT is memoryless. The problems is that when creating many pods, the shrinker map size need to be expanded for all memory cgroups in expand_shrinker_info(). If the number of possibles nodes is too large, the holding time of shrinker lock grows significantly. In this case, there is no CXL memory inserted in the machine, those memoryless nodes are useless for us, so there is no need set them to 'numa_nodes_parsed'. After disabling parsing CFMWS, the pod creation time is reduced from over 10 minutes to approximately 150 seconds in our intertel test. Signed-off-by: Haifeng Xu --- drivers/acpi/numa/srat.c | 29 ++++++++++++++++++++++------- include/acpi/acpi_numa.h | 6 ++++++ 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/drivers/acpi/numa/srat.c b/drivers/acpi/numa/srat.c index aa87ee1583a4..8716d70043fe 100644 --- a/drivers/acpi/numa/srat.c +++ b/drivers/acpi/numa/srat.c @@ -31,6 +31,7 @@ static int node_to_pxm_map[MAX_NUMNODES] =20 unsigned char acpi_srat_revision __initdata; static int acpi_numa __initdata; +static int cfmws_numa __initdata; =20 static int last_real_pxm; =20 @@ -39,6 +40,12 @@ void __init disable_srat(void) acpi_numa =3D -1; } =20 +void __init disable_cfmws(void) +{ + cfmws_numa =3D -1; +} + + int pxm_to_node(int pxm) { if (pxm < 0 || pxm >=3D MAX_PXM_DOMAINS || numa_off) @@ -313,6 +320,12 @@ int __init srat_disabled(void) return acpi_numa < 0; } =20 +int __init cfmws_disabled(void) +{ + return cfmws_numa < 0; +} + + __weak int __init numa_fill_memblks(u64 start, u64 end) { return NUMA_NO_MEMBLK; @@ -648,14 +661,16 @@ int __init acpi_numa_init(void) */ =20 /* fake_pxm is the next unused PXM value after SRAT parsing */ - for (i =3D 0, fake_pxm =3D -1; i < MAX_NUMNODES; i++) { - if (node_to_pxm_map[i] > fake_pxm) - fake_pxm =3D node_to_pxm_map[i]; + if (!cfmws_disabled()) { + for (i =3D 0, fake_pxm =3D -1; i < MAX_NUMNODES; i++) { + if (node_to_pxm_map[i] > fake_pxm) + fake_pxm =3D node_to_pxm_map[i]; + } + last_real_pxm =3D fake_pxm; + fake_pxm++; + acpi_table_parse_cedt(ACPI_CEDT_TYPE_CFMWS, acpi_parse_cfmws, + &fake_pxm); } - last_real_pxm =3D fake_pxm; - fake_pxm++; - acpi_table_parse_cedt(ACPI_CEDT_TYPE_CFMWS, acpi_parse_cfmws, - &fake_pxm); =20 if (cnt < 0) return cnt; diff --git a/include/acpi/acpi_numa.h b/include/acpi/acpi_numa.h index 99b960bd473c..2435f60e56ce 100644 --- a/include/acpi/acpi_numa.h +++ b/include/acpi/acpi_numa.h @@ -21,6 +21,7 @@ extern int fix_pxm_node_maps(int max_nid); =20 extern void bad_srat(void); extern int srat_disabled(void); +extern void disable_cfmws(void); =20 #else /* CONFIG_ACPI_NUMA */ static inline int fix_pxm_node_maps(int max_nid) @@ -30,6 +31,11 @@ static inline int fix_pxm_node_maps(int max_nid) static inline void disable_srat(void) { } + +static inline void disable_cfmws(void) +{ +} + static inline int pxm_to_node(int pxm) { return 0; --=20 2.43.0