From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.14]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 22C2B3563EA for ; Tue, 10 Mar 2026 07:05:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=192.198.163.14 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773126334; cv=fail; b=q6LW8qTQXLzGC58vsDCoCyowv93Z3FzpZowxGznLUKb3cpALvDGC31XrT50vEM3UXWEfj0+Kr3eX19c67cuA5+sAbOuo8JFNqPbjsf39/x0MZpA0Qv9Yzt43g6Ebp/sxMsv/w/K2TPT7tTFm5JqmzfZ2UzGQrEubYgDrYfz6DWA= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773126334; c=relaxed/simple; bh=fZcM477z6kD4YAyKYNXUb5uvNIf/RKLazVRoEHMVf5Y=; h=Message-ID:Date:Subject:To:CC:References:From:In-Reply-To: Content-Type:MIME-Version; b=l8RcTW4lwLMCJuFw6zJjKE2NmIaq/DNie6UuL2rfSjGNg1vvh1NpoS9o2M8xpd8KvWCu5poHLZ2GnsqgzT6MWrFUss0L23TJaglUOeSYys1iyRTlsp8VlHwy//35jXnCPAKFXiC1m/RRPtEJPOn/ukTM7CgFfjvVB6DVusM9r4I= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=ZTcUNZpn; arc=fail smtp.client-ip=192.198.163.14 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="ZTcUNZpn" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1773126332; x=1804662332; h=message-id:date:subject:to:cc:references:from: in-reply-to:content-transfer-encoding:mime-version; bh=fZcM477z6kD4YAyKYNXUb5uvNIf/RKLazVRoEHMVf5Y=; b=ZTcUNZpnpRnBMw2ByVwHLg65JE9gNFZzoV/jy8nh/x44ZArf8PjFxHsv 1B9l2xPT+BVH3OberqxxMhyq3HNgHGJmCwNRJYz7/vXRp8U3sBESAKwG0 Qq3WvGG1lPeOQMA0DpeLYH4GuYIzZKq8nL592UIZO7H76LFIOOSqF0fLL Pd9W1eAf71kbuD5Fy1ng3EkJb/Ed3Q6tlYDp919nMQNUPs0bd1LzDTISa SbsL9+VN6jCdLk0rFrl0oUYBQPcd6+J18By3pQ9+ywAenRMXAZIEHXla4 x10iJ5wcKiGnC5IF3UWQnPr6YFj0puQP9+xxfPXWm9vxt0XVcbEGj2mpg g==; X-CSE-ConnectionGUID: z9/FtaUXTCmoKOiZZpP8FQ== X-CSE-MsgGUID: lYRBpK4SR2m2qzx8YlniMA== X-IronPort-AV: E=McAfee;i="6800,10657,11724"; a="74242658" X-IronPort-AV: E=Sophos;i="6.23,111,1770624000"; d="scan'208";a="74242658" Received: from orviesa003.jf.intel.com ([10.64.159.143]) by fmvoesa108.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Mar 2026 00:05:31 -0700 X-CSE-ConnectionGUID: ybK2bA99QJaDW4rTqFqsZg== X-CSE-MsgGUID: wE1uY2CcSNKXZjdfi6lXkQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.23,111,1770624000"; d="scan'208";a="224160904" Received: from orsmsx901.amr.corp.intel.com ([10.22.229.23]) by orviesa003.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Mar 2026 00:05:31 -0700 Received: from ORSMSX901.amr.corp.intel.com (10.22.229.23) by ORSMSX901.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Tue, 10 Mar 2026 00:05:29 -0700 Received: from ORSEDG903.ED.cps.intel.com (10.7.248.13) by ORSMSX901.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37 via Frontend Transport; Tue, 10 Mar 2026 00:05:29 -0700 Received: from PH0PR06CU001.outbound.protection.outlook.com (40.107.208.20) by edgegateway.intel.com (134.134.137.113) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Tue, 10 Mar 2026 00:05:29 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=o0j+bwlUOSA90vgjNw5rbiSxSfXqZQFzjPtXCzk8b/Xwzp+TGfqO+SDGGPtbub5VdVCvEzE4MOTg1Tq14NMFGjN9jWV1+fSme/2+SRAGSZRAJZNNW6KmYfifxd5N6kSzKsepe25VGC086PgdZK8AUM2wQ42aa96Y1j5g9BekTtGJjMXh7cbN2J55Qmig0gcmuFAPjQ1F14lSPH0+hBgd9APnO3fcmhBoyAma368YrIV7fjKR56hfmEmHkI4WSi8HXLqz5YnjtA0egFe6v4BEb+MIQ5ddddOvnGFvlE8p8fhRYrChhUmaxNkE9hOYNdvGmnl45FmyqNCrLF4w5cMwSQ== 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=U9tlP9qypDf2vpLYOcOYaLCvPRgrVQ66caDzvGcsWZY=; b=u+IPiwW3zv+wIbQhk41cwPWHC7aLGoAliOrgMU7zFFBvvgSOiSnAHa+OYjMHQJAhQV8YDP/fZU6llv+vXs+GA3z6CT+x/1pewrG81y8x6CEI+VTnFuXB+nJIYxTYnar23/B8//j/x+DfoYxvorANQOBatpxh64zrqLv5ByopzwoHTuwd6aJWsxnAwQFMnLZtmt69YgsZrTp5u4xN4td5pHNL+HPTBRJdBbbn+DdE2sgMbAl9U5QyU+8On+FHFoH4j3uLWaTT9kmsjG2j0vIhi+XWkQvrFKUVCe+U5ixOT/c4okUwJllz9ndkd8zwiwy2p5m1pnAdUiPNggJS9Xx9bA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from DS0PR11MB7997.namprd11.prod.outlook.com (2603:10b6:8:125::14) by LV8PR11MB8557.namprd11.prod.outlook.com (2603:10b6:408:1e8::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.11; Tue, 10 Mar 2026 07:05:27 +0000 Received: from DS0PR11MB7997.namprd11.prod.outlook.com ([fe80::24fa:827f:6c5b:6246]) by DS0PR11MB7997.namprd11.prod.outlook.com ([fe80::24fa:827f:6c5b:6246%4]) with mapi id 15.20.9700.010; Tue, 10 Mar 2026 07:05:27 +0000 Message-ID: Date: Tue, 10 Mar 2026 00:05:24 -0700 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v8 3/3] x86/cpu: Do a sanity check on required feature bits Content-Language: en-US To: Maciej Wieczor-Retman CC: Maciej Wieczor-Retman , , Thomas Gleixner , "Ingo Molnar" , Borislav Petkov , Dave Hansen , , "H. Peter Anvin" References: <39306e7e736f76530db62302f1dfa3b94a479861.1772453012.git.m.wieczorretman@pm.me> From: Sohil Mehta In-Reply-To: <39306e7e736f76530db62302f1dfa3b94a479861.1772453012.git.m.wieczorretman@pm.me> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-ClientProxiedBy: SJ0PR03CA0052.namprd03.prod.outlook.com (2603:10b6:a03:33e::27) To DS0PR11MB7997.namprd11.prod.outlook.com (2603:10b6:8:125::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR11MB7997:EE_|LV8PR11MB8557:EE_ X-MS-Office365-Filtering-Correlation-Id: f663ecea-81de-4427-73ce-08de7e736843 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016; X-Microsoft-Antispam-Message-Info: Hj3urCxUR1QEe9Wp5wk4WU1FeK/6xp/8yBK6B1cSfTplmVUPC47bTnyHHYIgDK5CXGkmyvc6ekV04UsHtGngc6R4UMfumBRwdg2IzRDQAmUsyCXer1l8LK84EsbPuS/SCh+VtOzclMebPVf8a/uQogS5xC5Tqq9OPLBRzMsE86huq6BgoTmksnHNso7E4oYjsCjJj2WNhPlfaGDS/OPdvB5N1kFZoLUEcUwsheDRKHMwBoKt07eALL64flQXL5diHpV7IwOOfmf7VkTYqNdn79+UUXMQIsjA45rCsOfozatc86WYL7ohDZ/TImFjq0rdSWEcxV5KUSKGuFSvAa8VT9H0HZl5IaH+czv+YUa5Vs8SwSI2s4MNmOcKlkagRcLgla+6xr4JngWFJLlvWrgHIKna0k6ILgYFVAv7UubCrIKVBTjJxhngVk8Mwgk9UcsZxRSLQFxIzXiTiQd8YvMQx9raYzF9X06DF+mQX2lCzKcfZOoxJ1oHyVmu/emfNgFYpA1cVNUy4avT4WE5onvTqZf/Gk9tdGHwGH1EoM86+6ouckJioDD/kx6/QmXq3IbuIE1841QpdzOwB6lF+nQ85s4T6WAF5tRqcHKBw3FDaZpy/b7E7GUpHoDthB8J/hp64l/I0dvTGk40i1HznnvxirPVRG4ayef1m6XS4vyUtQ10mSDXOdLdFhmDX/zF0CDJb+MVl3DoTjLwEDiMCmLJef7W7keZihZEWeFyFW6ktr4= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR11MB7997.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RGpEb2lvalFJZEVxT2tnb01VSjZ2R29rTlZkZnEwNFRFVE5PQUVveWx6N0I4?= =?utf-8?B?WWhwZWtTalR1SjJ0Vm9ISVVsb2lNVGltbGhnY3hYNHRKOW1DVVdUblBSRlI5?= =?utf-8?B?U29mdlExeUlHQlFBM1JjMFJHY01BTFF3SlIxWk1qbnROMk9vcDB0bHQ2ZENz?= =?utf-8?B?UFJ0WGJGSldIS1M1UDFzcm44eWxmbHg4Nml6RlU4cjg4UGVWeWIxenB3ejZz?= =?utf-8?B?K1BLL0R6NTkvNGtkZm1yY3kreFFSUmJtY1RLcVVJR0s4SUFRUGxOdXJYK21o?= =?utf-8?B?YTNLQ2xZNWJsNW5MM2czOHUrRGlwbTZ4OEdzeDF2OFlZTy9ZRHo5Q09iUEtR?= =?utf-8?B?RXlxelo2bDZUYXpLNXpValZCekhyb2FvTkZSNU9IK0VnWGNpMFNJMnlhc1Y5?= =?utf-8?B?NG13VE8vVDc1bVBtSDBsZk5hQkNoMDdZaHJMT0VVRG1aRC80OGVPbTk0VHdS?= =?utf-8?B?ZVpXYThvTEFsZmZqRmJLaEFtemFteWNmN0hGR3p5NnpxMWZIT2hWaUloeXAw?= =?utf-8?B?VzBNcW40R0ZJZVlEaDlVSE9kYTdjSC9iRUtiSmg4dktaczdIZUtJQ2VBVEIz?= =?utf-8?B?NEVuNGhxeFVqVHEwa3JoU2pmWWtQWjNySGptaHdUaVNtU3g3UTdGelpUbHNN?= =?utf-8?B?SE5rdnhMZWpNWGZkaW9LRldqV0FWYk5nbWtPT1VTMmZNSitKd3hqcVY3R0dZ?= =?utf-8?B?TXJvVjZYNFY0QU0yRjlGenpVSkdBZzRWT1JHYnVCdFBOOEU2cGlzWURaR01N?= =?utf-8?B?alhWY2Z3YmhvSTZUOEFIN3ZPY0ozb09KdWx1UzJJaktSajB0bGNyV1lKc0Fz?= =?utf-8?B?ZklLbGNESFlXSk1sTmJmY3R6Nk1TQjlqQ3RQSXFnakdZWTMzSy9CZnFxY2Fa?= =?utf-8?B?Z1gzNlJidy8vSzJnb0VNVUFDdFFPdm5TS3laSytUZ3dsalZNWTFCZFk5aXNV?= =?utf-8?B?Mmc5SzEyS1NDbVV1T3NyMVBMYlV2c3BXTkd1Z0VtMzE4TEJPYXRVYnlqYk9h?= =?utf-8?B?NXdXekEwNXFEbnZHZWQ0WDcxZVVLNjJ3ci9UaTVmUmV5ZEJrd2crbVNxTndO?= =?utf-8?B?K1UrNWJ5WUdCazZzbnJMRTlaaWxRNTl2aUVWUWRqT0t6Wk1RcUIwQ2dHWEdr?= =?utf-8?B?U1RodnplK082Ymoya1M1SDRXbDZTTEZRclhqWVVNYmE4NnFtZ0hFTk9PQzN1?= =?utf-8?B?VVpXN3lwa3p2RkZhaGx4K0lodnpKZFBtbkZvWC9idUN6QXRGWmZuemduZGEw?= =?utf-8?B?dWVCM2lJRnB4M3MzcitxdnY4WWJEbnJmR1QwTzNQYTZkMkFGK2x3VFQ3cHg2?= =?utf-8?B?UGV3SmNJQ2wxalpLSnZhVXJ1OFFoTXJCREpqbnZvaXI3eWMyY2dFZ1NnVFg4?= =?utf-8?B?amxmYTZEajFWQ0RvQklyQ0gycUdRSGVJMW83NFRqdnRMZC9WdG1qMUNORmR5?= =?utf-8?B?U2N5OTlqa2UzbFZkWWt1akgyZDA5U3lNemFoNEdhZnlrcFhGTHRrR1QzaGdv?= =?utf-8?B?VkViNlFsOElrOXEvVFVVaXIvUVpXZGgrZFF3d052dFI0K0Jyb2VuLzJBTkE1?= =?utf-8?B?aVhxMGczZXdVc2VNSno5Y05rREQ2OWdQaGI0bkJBU2xOVUVDNzdZd3VuRDVV?= =?utf-8?B?TE5Hb0tSQyt2RmowOFpoemhma2RURUsvVStZa1RuekJKcXc3YURkUkhFcVFv?= =?utf-8?B?SDVDelRkQm8rMG8xeCsyd0JXbzhDLytiZTVvK3RJb2NFdFdpTTc0Zlp3MUdJ?= =?utf-8?B?clRCRDRER0tCRlNOUS9RZjZaaEFhVmVHek0xamw5RDM3ekNrOHVjR3k2OGtF?= =?utf-8?B?SVdxSUIvd2paTGgrZmttU3g3YnRTQmlhUFpMTjlKdWsrR2Fibm82OVdEYmFF?= =?utf-8?B?VWIzc25UZmNpalFMT002aEU3TTM5Z2pRNGQ2VFp5QzR5MHV3R3daYmYzOFJZ?= =?utf-8?B?RWpDVEcwR09leXNMczg5MHJtN0J5VWRUNFBwN00zVzNDV1psL1VBMjg0TktX?= =?utf-8?B?aWd5Y09pRzBhRWUwcGhWb001VUgwTUhQekEwMEFaVWhTcHVHaGZkT2FBVGxn?= =?utf-8?B?cWczSE4rdGZma25qZHlVc2oyNVRYbjhRc25JUVIwYm5mSks1aWFZbzlyaUgw?= =?utf-8?B?T25oQ2ZSYWxzWXdhTHRtSHpDSHJKUEZhQUxQTFRmV2ova3A4UHd4YllBYmdO?= =?utf-8?B?bG03Tit4cEhoYXlVNUxCZkxSRzB2ZUpSWFFNSmZ6NEROSzJIb01GZXNrT0xl?= =?utf-8?B?dmcwRTNVdm52WlhMMkphdk5WWmdSUWNjNWgxOGF3cTY0TFBhN2d6T1VnOGVr?= =?utf-8?B?Z1lsQ2hWR1pVekRLR2U4VXZ6MTl5SlhiTk5vRzdocXNYdWJhbzNGUT09?= X-Exchange-RoutingPolicyChecked: UrEPgdnHvHOmeernWDzteDKOjS9LYB/boz7PUR9MCF8njjnC/4mqmqS1/xFdLfiZ/mqGh+f3qInNOUJ955AagPpVp+HEYrIJ95QWRc/jZ7EmbhYP0848iZDXvxDaWNKLRMU6gVfNVTeFZ60BHQtDI3PVNxzkmmyJA7I49wcd8wuxXf4WN5JR4Au/j2GRft3KC5o4GzZhOvotFyBMt89ymZ/4FE8zjFynxZ7oJOdsGaHXtrPpRqQ+JiofT+SXBnzzzhbfWmMNww8Bdo54hGT1D7rX0Xe+MFRF4LwnwBTD8YmUsPBVJpQR4iB5yd+XRKq7byuFQ/0GOCAt7wwDvbNaBw== X-MS-Exchange-CrossTenant-Network-Message-Id: f663ecea-81de-4427-73ce-08de7e736843 X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB7997.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2026 07:05:27.0581 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ztXKauPccbvAc73IPN2AFreKgdQAlXstZ7DgOVgGJC7DQrHz78cpOnwcyM/YeQquRo16krtDBJFCvLFZ2E2asg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR11MB8557 X-OriginatorOrg: intel.com On 3/2/2026 7:25 AM, Maciej Wieczor-Retman wrote: > +/* > + * As a sanity check compare the final x86_capability bitmask with the initial > + * predefined required feature bits. In case of a mismatch emit a warning with > + * the faulty bitmask value. Aren't we printing the faulty feature name instead of the bitmask value? > + */ > +static void verify_required_features(const struct cpuinfo_x86 *c) > +{ > + u32 missing[NCAPINTS] = REQUIRED_MASK_INITIALIZER; > + char cap_buf[16]; > + u32 error = 0; > + unsigned int i; > + X86 prefers reverse Xmas order for variable declarations. > + for (i = 0; i < NCAPINTS; i++) { > + missing[i] &= ~c->x86_capability[i]; > + error |= missing[i]; > + } > + > + if (!error) > + return; /* All good */ > + The tail comments should be avoided. This one is completely unnecessary here. > + /* > + * At least one required feature is missing. Print a warning, > + * and taint the kernel. > + */ The "print a warning, and taint the kernel" part seems redundant. Probably there is no need for a comment here as well. > + pr_warn("cpu %d: missing required feature(s):", c->cpu_index); > + for_each_set_bit(i, (void *)missing, NCAPINTS << 5) for_each_set_bit() typically expects unsigned long *. Do you run into any issue if you use that? > + pr_cont(" %s", x86_cap_name(i, cap_buf)); > + pr_cont("\n"); > + add_taint(TAINT_CPU_OUT_OF_SPEC, LOCKDEP_STILL_OK); > +} > + > /* > * This does the hard work of actually picking apart the CPU stuff... > */ > @@ -2125,6 +2156,8 @@ static void identify_cpu(struct cpuinfo_x86 *c) > mcheck_cpu_init(c); > > numa_add_cpu(smp_processor_id()); > + > + verify_required_features(c); > } > > /*