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 DFF7238A289 for ; Tue, 17 Mar 2026 20:44:05 +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=1773780247; cv=fail; b=WBu52NxSFpGo+6Tq6F/wVepRzh15ewqS/6+JHfBRFk0dGIJkde7c30MfpA33R5XXuOxVm3ECd7Uyl7x8jSQD727DsKb2pXn/6A8h4xkP+51ooPGLtaqVpuLo8+8Tew9DFC3yFHSlRiZzfMLJOOsV2x8n6pB/lG6nPH+KYugqqDs= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773780247; c=relaxed/simple; bh=6cEn2D2D+3LdI/d4J1qSUIZjCq0Mk6B61NyaKGbjepI=; h=Message-ID:Date:Subject:To:CC:References:From:In-Reply-To: Content-Type:MIME-Version; b=aIlNUxjHPDGaAiyHi0bJQBki304rz9a4q2JVxuMpJGDKDD4rkr4TIL1K1z6fGLSXqzoBPlQm8tcweZSKcVl9msXlQhNU7HRuFvYr+DJWAr+YYG799TNKJIvMnKMNDmey6/GKnZaigBD1qoQawjRb1GLPcXP8p8LFFweRnpVzzLQ= 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=DmbHHKJj; 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="DmbHHKJj" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1773780246; x=1805316246; h=message-id:date:subject:to:cc:references:from: in-reply-to:content-transfer-encoding:mime-version; bh=6cEn2D2D+3LdI/d4J1qSUIZjCq0Mk6B61NyaKGbjepI=; b=DmbHHKJjungrNh6YFpj6wmeO+23LSqlNLhxFgU87OnVY7lFVxnaaWyXO C+CLq6ZTmqmfj2ujZnVEmcWD6BqZOad+R/IqZ5MD07xF90dnN5r1zMsxP IK0cIOjeF2hUxR41VUZ2OwUChTFUXdfVSzo0T9F+gGRApsWHhap9aQt+8 IPag2DUFbcb7s1tc5pFLl1xnu6fR8sT6E5Itz6T3O5ubQCrtYseOjV+6l UmvSsk0Gxg5ta06kKgm4zVNzzcclnct5ArM26CRWmT1qUYSBwy4O9myvL acy9ZxnnJyN5/C4Tr3qtKUwsKf+2pQWtIVVt2HPkzew1il0G8gGPGrBKG w==; X-CSE-ConnectionGUID: +xbi7xd4RGOffgtGx4qskg== X-CSE-MsgGUID: PuvljCPqQkmGvoLMBg5c1w== X-IronPort-AV: E=McAfee;i="6800,10657,11732"; a="74905364" X-IronPort-AV: E=Sophos;i="6.23,126,1770624000"; d="scan'208";a="74905364" Received: from orviesa009.jf.intel.com ([10.64.159.149]) by fmvoesa108.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Mar 2026 13:44:05 -0700 X-CSE-ConnectionGUID: cKDIgc6jRAurIiFBh2eOPQ== X-CSE-MsgGUID: HCAKw1enRwS1mC2Gu5YXmg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.23,126,1770624000"; d="scan'208";a="222360043" Received: from fmsmsx903.amr.corp.intel.com ([10.18.126.92]) by orviesa009.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Mar 2026 13:44:04 -0700 Received: from FMSMSX903.amr.corp.intel.com (10.18.126.92) by fmsmsx903.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Tue, 17 Mar 2026 13:44:03 -0700 Received: from fmsedg902.ED.cps.intel.com (10.1.192.144) by FMSMSX903.amr.corp.intel.com (10.18.126.92) 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, 17 Mar 2026 13:44:03 -0700 Received: from CY3PR05CU001.outbound.protection.outlook.com (40.93.201.56) by edgegateway.intel.com (192.55.55.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Tue, 17 Mar 2026 13:44:03 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=eD8c+tUzDCZ0D3EI/zQcOoqiNFCnNWjoyGrSDLGCp/2ZvKRMcMYZswYA9r/SDcEeHNlYF1H311rkOfwhbLh0b/95MbMenfSTd6xwsh8Um1ok7z1faRM2Cmzgt176mOBAhP7ZQ07i9OO7XZt92ImbZiqCaiZKvJ37emBol033brNbsh0XKAwNZvaf5s8/VrjnSUziQYdrvTpf7YrigsKjPG9p5ozzbLFgui0zfdHqTu6cs9FbR+p/H2Mkqeatg3k/kVTlz3PG68BzO/tc+xNIvzyPWWVJSbKkM5/bynq0DV1yLuo10jzoPkpaK0bsWljL2i6pXvLHyYx8ORPRAplM1A== 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=HOJg20Ts9sLPTcw+wnXZENnz3+Kl+RkCg7WwLPHjyp8=; b=YSfQz5X7sNnkug39oMIq6/n4+hkgGGfXrtOVoOeY//6hjaSD5dlX7hXqfSuC8P5ijIsGZlz69NoaDi01AnZMNJVkeKdI4HBum5wxh1tF1TUpIj9UIPTnK6dZds0RI70uTOnrHh+PC7DAzpvcZF1tMDVd5EAo9Cqodh9AcsxZdZXY1BECXSjqNu20CqWtEHbcR7jrKdywfDn0g8JKCGBQWTKoJpjIvihDJ9QOn7O1RT+t22yIiQGOeHTLhYwL9VdVRp/AY3G5rxAcAgH9mIuozdQNHJv8HVCkzmM3Rmr3uWY/1eAPhWc1qw0DMRc/PZ5cW2aPV2QvQcx9UlH2927iMg== 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 SA1PR11MB5802.namprd11.prod.outlook.com (2603:10b6:806:235::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.14; Tue, 17 Mar 2026 20:43:57 +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.9723.014; Tue, 17 Mar 2026 20:43:56 +0000 Message-ID: Date: Tue, 17 Mar 2026 13:43:54 -0700 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v10 3/3] x86/cpu: Do a sanity check on required feature bits Content-Language: en-US To: Maciej Wieczor-Retman , , , , , , , , , , , , , , , , CC: , References: <8180d2f5c3da2737167418d3a28b008a933c6408.1773771353.git.m.wieczorretman@pm.me> From: Sohil Mehta In-Reply-To: <8180d2f5c3da2737167418d3a28b008a933c6408.1773771353.git.m.wieczorretman@pm.me> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-ClientProxiedBy: SJ0PR05CA0086.namprd05.prod.outlook.com (2603:10b6:a03:332::31) 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_|SA1PR11MB5802:EE_ X-MS-Office365-Filtering-Correlation-Id: 7b3d2ddb-4c49-4e2b-811e-08de8465e8f0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|366016|56012099003|18002099003|22082099003|921020; X-Microsoft-Antispam-Message-Info: xqcC1sm29v6D6UdRmvrMzUEtNrGxpk0404pQSUvr4S8/JXq+PqowqnSKY5ZOr7uEnc0xFs76OcoudJAFcaNKrz5TyBCbpmKm9qrjbtjEWfznHRZBWYfzy/08+fxDPv2wWqz7NNfiELx6As0qVonsBNncCLlFV9uDA1+pkEGIZm25sPMapBDv5nxDUEn2oFT+ixyTp3wf4ThymZIt8DwSER6PTlpXBCvmL35u9rgFj0SRJy33SfyzauNQUWijZ9wpHCRsOld8KHX1ZJzZR6wOVg10ake3AE2/7Vp24bgAjEnmhB/8qP5xv3yeqCsPXQxvaCbCp2979iXlkS4Vmq+jEmBobjZqWdtUC0f8Z9ltu9mak1FyFMPSduvbjNH4FsVJKkbzUdAqJPtkVORQCf82LKGKZR7NL7AkGjZwgeyqYAemmiOgNzjNVuzdTCaBxyJHuyJv5Tuh4FWvG128jl9Ij5mLKXKesTnnlKJjB0oo6cfUAXnTs0jK3Zu2QsVaK4jRgUMVLID8dr8Ba+dQCkI4rd0eNO0fShocGMl0xyf8si2Hl3y3qddXJhVoAvAEg5o4KNDk0V0qML+4DSlo/mfqQnqVNh282PCMrc9e/b7Xpf4iNr/JYEUkc8yLqRSgOFACJ6Qolrrtko3X3eHycEqMxZ8KQTHrTITYf/7O/hgihYk3GJokE2F4AWy1ZbE90yy3EiuNWiDAh8Ktv0wUwZM3OhbtK5n/+Yy00AZ76/wLPVOqXB2w9KHkOktBGXDfB7RUrnZBJ2ywrc1bDhkIpYXuTg== 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)(7416014)(366016)(56012099003)(18002099003)(22082099003)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?aEJ1cUo4SkN2VTAyZFNlM2Q2Q09WUHVFTHdocnpXdmdSelhBamhtZUo1TkF0?= =?utf-8?B?VzZtTG1qRjlGWi9FOWZZZWpyb213T01QdnB2YkUyTFgrRkRENUtwMERWdGg5?= =?utf-8?B?bEh5RE5zdnVVa2FpQkw5UFlmWklQVDRhZHVXT3I5L0RNdTk3QjJOc1lHZE5C?= =?utf-8?B?R21QNGZJOXNZTUlRS1JHNzliWXFFWVdQRDBpdU1BUDBTcnlUSWdjSWszUVd5?= =?utf-8?B?am81MDVRMm9ITEdhV2xRdjRCRHM2TmdkQjJUQkdFL2JHNGhFTzh6bXJCZTdC?= =?utf-8?B?R0NhUmJ4OGFqVG9RQWF6VDFmVExVL29CWVlDUHlYalF1bW1XR255aHdsc0NL?= =?utf-8?B?MFB5WSsrSkNUUlhZYXl5RFBUVHBWMEZFR05uelUyUTcvTWhMREl0YWNiaW5z?= =?utf-8?B?aDgrRXJzckZncW93VGFIckxzY3laMGtiTzdpMnFmUi9GUjVBbVY1eUNsNGlC?= =?utf-8?B?Q01zMmZNZWNBbVgwelBFUzFVb2NmdWlpR0JHbGNrdWNoMFdNS2xRTW9vYnlp?= =?utf-8?B?MktUeURFZkVra2FsWlo0TTNBcENQR1E5VEFJSlVGbkxHLy8zNFRqakxDRUpX?= =?utf-8?B?dHNwOUpkN1Fjdzlvb0FsTGtCZUI5WUFiTHpGYXNSMHpDUEFvT1NtOFlVcElK?= =?utf-8?B?S1lyaXp0RmpMNTRNaFBCVC9USlQxNkVsS2RwZ3I5ZnBMT0Zpa1BOaXpIZHBZ?= =?utf-8?B?eGZMQmxiRjlEaEVtUWNiM3R0KzhDV1ZwVFVJNFIzYm02Tytld1dhN0NETXZl?= =?utf-8?B?WVE0VHNHeUc0V2hlUnEvREF5RE1NUWdYb2JwV1dHR2ZwcDVqNnpTcVpDN2lV?= =?utf-8?B?ZFE2RklkTXVaRzhqVGx3TzQ2RTlEY0RFK2pXN3hBb3ZvYmdVeHlrSzZzaUJU?= =?utf-8?B?SEZMVE0xdEQrNGN0ai9ySUs5YkIzckRmWTZ2KzE2NFhzeFBHMG9UTmo2NFVp?= =?utf-8?B?Y3BZQXEwSWlvUnUySTk2czkvZkZndTFwNURRZC9vSGhwWk1YVXFzZWUrOVI4?= =?utf-8?B?OTV0NDlQWjN4Y1B6cGkwQkk3b0FoZGZSRlpRMHpidHpGSkUwYkMvM0d4QVNm?= =?utf-8?B?SnNNMWYyai9VZlBnZnloU3NoZmlYVUFqcjJRaEFVd2VqSDBQK0x0anVNY3dq?= =?utf-8?B?aTNPOWlhRlBlRExweElVcjBBMjVlTWRYMmd4Slhhb0R3NnVaY2daNW55eE9Q?= =?utf-8?B?MTFEaC9mS1poZTM0a0lPampXdUp6RkJ0ZDRzZTlkMGpQTkNtMUdvZ3ZHSkE5?= =?utf-8?B?M3BUc0tLZFVoZUZ6c0FCQzBTR3dscjROYU1sSTZSdjlqNit4Mlc5Ums0R2Ur?= =?utf-8?B?Z3ZUYmhCd0JtOUkzTmVlRjJjRU9KUERpRjFiZXpyUGs2STZxUWlzU01QQVQw?= =?utf-8?B?bkVlaytqOUFiQzNDcTQ3V2Rmc3JaaHk3TnhrWGprSEdBQkR4ZXN1YVVxbUdB?= =?utf-8?B?WFV6RDI5Z3J4Miszai8reFRFWVMyRzNoQmVqb01aeVdnZitpa3hrOEtBcWF6?= =?utf-8?B?QVdlV3FGczl1aGx3ZkROeW5oaDl3NXhGMlJ3NC83eGx0MUhsVTk3Q2VyUmJp?= =?utf-8?B?MWdVcHAxK2RkNlFBaHNkeWNkZCtVMjRIUFJOQlY3R2Z2eE5ZN2JDYVo3eDNK?= =?utf-8?B?dnZDRS9nR2NjUFlqaDNocnJwZStDbEFNaVJWcVN3eXdtZk9XM29jbVVRcjQw?= =?utf-8?B?ZHdlY3JrUUJFTzRta25LcWxIMW9McVJMMmJDa3hlR2ZTSHdvSzZFbzIyeGtZ?= =?utf-8?B?VUN6bkEvamltNm9ENm0yeXZvRjdocTJlVDVSNkpSY2JPVXE2RFY5b1RtZkJq?= =?utf-8?B?RFhzREI5NjdKcGlCcGxWR2MrT1FHVUx2NEQ3bll2dmg1V1VoKytrSVZ2WHJZ?= =?utf-8?B?dWZkbml5ZDVWRTliKzdQSW9sTUJJTXpCRnBhUkkwWHhWaWtya2pqKzNuS0Jh?= =?utf-8?B?amlIc2kvTFVkUFhzUHMzUThMSnNzaFpid1ZTZ1RJQVc1cURXZWpEcVp6b3lV?= =?utf-8?B?OWhrc0hlRW5YR0c0OXdQMDJlTXhDSy9mQkZ3di9qZy81bXpla3NrT1luWk0x?= =?utf-8?B?QjZ5bGZOVWpjanJtZ2lXZ1crckZYVTladThpT0Q0Mzc2WXhPcXZ1Q2JPMHdu?= =?utf-8?B?UEo1Um54dytwTVYyRkhIZGlaejNVUGN5TmR2ZVkvNnpVMHlOWHV2OWZpUnBR?= =?utf-8?B?REFCQU0zVC81U3ZYU1o2bEJ3ZlAxR1B6OFdkVXBLY0tINTFYWTc4SEVlWGNp?= =?utf-8?B?MTUvdld4OFM2VnFOazc5RXlpeEZPbkZUTTl2ZFM2TjRIZ0hQU284d0xsN0Fy?= =?utf-8?B?ZWs1bjJjMTVYMVpqRVcwMFRJdVZYRWJELzhzVlhxeWlZWGFaczBvZz09?= X-Exchange-RoutingPolicyChecked: Q4XFXAmR0tnsFWOxhIK2Es4bsXYbs0rj+7eAr0tKYJ6qbz5+larjhFOCTQ6rBd7cXn2yp6UnxW6hrUyfWLPfJxrDot8FIiYtyQB3TSbPqZ6GTLqd0KhYLJp0pdKKXUUeqxcKwdfA+76IszMOtSsTEynlysAJXnMdD7DEWF6CVwXoionibhQFlng7BFMS/agml6QAUg3WTNYs9PTk9EAO5cacwmlcuC545HQDB1usbQJRk6WG5Lw6eeBwxO1hjxZXb05cM8oq4Dy8pOOZto7GrdA8D3I5WTz6aQ12475jj7GQr6bsXcCXxXOS0y3tBkvEXN9VStPTyq1rPnlJme00uQ== X-MS-Exchange-CrossTenant-Network-Message-Id: 7b3d2ddb-4c49-4e2b-811e-08de8465e8f0 X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB7997.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Mar 2026 20:43:56.8999 (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: 2cPA2zz1P+Eb5hUh9VHMx3b1+eA3nzgzdtRtXBenB8zVnyVEKdnrgkSse++dwdVJn45cB4NHgKtpVE6Y2omw5A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR11MB5802 X-OriginatorOrg: intel.com On 3/17/2026 1:00 PM, Maciej Wieczor-Retman wrote: > From: Maciej Wieczor-Retman > > After CPU identification concludes, do a sanity check by comparing the > final x86_capability bitmask with the pre-defined required feature bits. > > Signed-off-by: Maciej Wieczor-Retman > Acked-by: H. Peter Anvin (Intel) > --- A minor concern below. Other than that, Reviewed-by: Sohil Mehta > > +/* > + * As a sanity check compare the final x86_capability bitmask with the initial > + * predefined required feature bits. > + */ > +static void verify_required_features(const struct cpuinfo_x86 *c) > +{ > + u32 missing[NCAPINTS] = REQUIRED_MASK_INIT; > + char cap_buf[X86_CAP_BUF_SIZE]; > + unsigned int i; > + u32 error = 0; > + > + for (i = 0; i < NCAPINTS; i++) { > + missing[i] &= ~c->x86_capability[i]; > + error |= missing[i]; > + } > + > + if (!error) > + return; > + > + /* At least one required feature is missing */ > + pr_warn("CPU %d: missing required feature(s):", c->cpu_index); > + for_each_set_bit(i, (unsigned long *)missing, NCAPINTS * 32) > + pr_cont(" %s", x86_cap_name(i, cap_buf)); > + pr_cont("\n"); Could multiple APs run into this concurrently? I am wondering if there is some risk of garbled output because of the pr_warn()/pr_cont() combination. Though, I don't have an easy fix if it is an issue. > + add_taint(TAINT_CPU_OUT_OF_SPEC, LOCKDEP_STILL_OK); > +} > + > /* > * This does the hard work of actually picking apart the CPU stuff... > */ > @@ -2134,6 +2161,8 @@ static void identify_cpu(struct cpuinfo_x86 *c) > mcheck_cpu_init(c); > > numa_add_cpu(smp_processor_id()); > + > + verify_required_features(c); > } > > /*