[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 02/12] x86: Add more granularity to the vendors in Kconfig


  • To: <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Alejandro Vallejo <alejandro.garciavallejo@xxxxxxx>
  • Date: Fri, 6 Feb 2026 17:15:24 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0)
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=bOhbQwb+qNaHaDSvXmZVl68QN/9CpRrOxtwZQK4VBCk=; b=QwRcO5WlU/zsKn7ShgRXdN0dTzRn3kQjVE1hLKo7rOXfmbyQLtERNSGa1vMibk6mvFxINZyP6t80zpNCxy7D9iFXLmhk+VYsN6JIzWtqpwj8LS9slGZKt/mXa4VuAsMNzE37PqrTyLIttfu/PQgZeNc3bI2oJgYpNX5HTO+KLyC/tGeY4s6aZISTGEycQlr+RUPGuhiwScbXtHUOUO0LfTLuq6GKHTTPeBpqjix/qTEWh015QSFaIstrHgeLSsF9JIPUavbXN+s3yOTabcoMq/uzrJAf3JJZMNsmBWgPyH1veDGjhJyhnd181/RO6CE0xiRmD9nZqOLAeJ34M1h11A==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=c9BY5tQwZsNpcXfl6ExoSMbCGHiP6/s6cUSwDJmeltiOQvEMjcr2JlFAejwkt8K+mqw2qBmi5pwxKm2GBJHHwStqiuhjEJKjNFgbrMBB3JPp31I5Jfa7O5AweyHHaPm7HdfKruwQWCM6opd31bO7amdJ8064fQwIe+ACVLcmTmNJS/nfBOGsAPMCoJr/UAozaoAXLV8S7hvtuaDACrsz6iJsVuAQRXJqralQnlsk/IC5ddTZSkWWsP2YgkbPHhimsW7gJ3HOT5H5hfn8zsxn/az8YXFxRwN7s8LMgZbwQYmschka63Y/PUgsgM7batIw6Q2YMj9rsqmh6IUVX0N+3g==
  • Cc: Alejandro Vallejo <alejandro.garciavallejo@xxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Jason Andryuk <jason.andryuk@xxxxxxx>
  • Delivery-date: Fri, 06 Feb 2026 16:16:14 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

This enables very aggressive DCE passes on single-vendor builds in later
patches, as it will allow most vendor checks to become statically chosen
branches. A lot of statics go away and a lot more inlining will be allowed.

A prerequisite for such optimisation is to expand Kconfig to have the
full set of vendors. Adds Hygon, Centaur, Shanghai and the unknown-vendor
path. Have Hygon select AMD, and Centaur|Shanghai select Intel.

Not a functional change.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@xxxxxxx>
---
rfc -> v1:
  * s/depends on/select/
  * s/UNKNOWN_CPU/UNKNOWN_CPU_VENDOR/
  * Removed "if unsure, say Y"
---
 xen/arch/x86/Kconfig.cpu  | 43 +++++++++++++++++++++++++++++++++++++++
 xen/arch/x86/cpu/Makefile |  6 +++---
 2 files changed, 46 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/Kconfig.cpu b/xen/arch/x86/Kconfig.cpu
index 5fb18db1aa..f895cfe97a 100644
--- a/xen/arch/x86/Kconfig.cpu
+++ b/xen/arch/x86/Kconfig.cpu
@@ -19,4 +19,47 @@ config INTEL
          May be turned off in builds targetting other vendors.  Otherwise,
          must be enabled for Xen to work suitably on Intel platforms.
 
+config HYGON
+       bool "Support Hygon CPUs"
+       select AMD
+       default y
+       help
+         Detection, tunings and quirks for Hygon platforms.
+
+         May be turned off in builds targetting other vendors.  Otherwise,
+         must be enabled for Xen to work suitably on Hygon platforms.
+
+
+config CENTAUR
+       bool "Support Centaur CPUs"
+       select INTEL
+       default y
+       help
+         Detection, tunings and quirks for Centaur platforms.
+
+         May be turned off in builds targetting other vendors.  Otherwise,
+         must be enabled for Xen to work suitably on Centaur platforms.
+
+config SHANGHAI
+       bool "Support Shanghai CPUs"
+       select INTEL
+       default y
+       help
+         Detection, tunings and quirks for Shanghai platforms.
+
+         May be turned off in builds targetting other vendors.  Otherwise,
+         must be enabled for Xen to work suitably on Shanghai platforms.
+
+config UNKNOWN_CPU_VENDOR
+       bool "Support unknown CPU vendors"
+       default y
+       help
+         This option prevents a panic on boot when the host CPU vendor isn't
+         supported by going into a legacy compatibility mode and not applying
+         any relevant tunings or quirks.
+
+         Not selecting this options while selecting multiple vendors doesn't 
have
+         any major effect on code size, but selecting a single vendor with this
+         option cleared produces a much smaller build.
+
 endmenu
diff --git a/xen/arch/x86/cpu/Makefile b/xen/arch/x86/cpu/Makefile
index 7cfe28b7ec..84b060aa41 100644
--- a/xen/arch/x86/cpu/Makefile
+++ b/xen/arch/x86/cpu/Makefile
@@ -3,13 +3,13 @@ obj-y += microcode/
 obj-y += mtrr/
 
 obj-y += amd.o
-obj-y += centaur.o
+obj-$(CONFIG_CENTAUR) += centaur.o
 obj-y += common.o
-obj-y += hygon.o
 obj-y += intel.o
+obj-$(CONFIG_HYGON) += hygon.o
 obj-y += intel_cacheinfo.o
 obj-$(CONFIG_INTEL) += mwait-idle.o
-obj-y += shanghai.o
+obj-$(CONFIG_SHANGHAI) += shanghai.o
 obj-y += vpmu.o
 obj-$(CONFIG_AMD) += vpmu_amd.o
 obj-$(CONFIG_INTEL) += vpmu_intel.o
-- 
2.43.0




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.