From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (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 B66033019BE for ; Tue, 25 Nov 2025 14:43:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764081823; cv=fail; b=sw35/jgsQsBFxlnJH9ltzVaQK8usYsNXQsZxJ8qgmJXsdx/1KzVVnFJxEX7nQhthd1KCiG3nNkziURRm8YmXMaGbBOp1/UHOn9ne7BVcDplaw3dqUlEPBY6y4vl+w13Zu0vEYYSGN+Sui5Lj9UIiSt2Qz+NGK/s0LPN3NM2FG0c= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764081823; c=relaxed/simple; bh=UUaKlksYVKxVzw5zRaW7x17EIelWMKSFYpD+hv4mSXw=; h=Message-ID:Date:Cc:Subject:To:References:From:In-Reply-To: Content-Type:MIME-Version; b=Bi+M09oydc3hV3AvuCpKQl5zZdcrVZiZeiYz0ld1RSVruO5kIb4L6krZQv1P/pg6tCsEVejez/0iOf5TWZ8wNJyVHMmtk5s1FB6x1l7eSgx1OAApyQJJC+Gvh99vPEHY5OxjelPVgC4QXGzhsKeROEMW0ecHWldoY/Fi2SMLznY= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=UKvkfayu; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=Qxi+YAjR; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="UKvkfayu"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="Qxi+YAjR" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5APENJ0L3864490; Tue, 25 Nov 2025 14:43:29 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=b5YgnD0vRqR0OauTcrvNqwYKBrWQbY1Yxn6+j4hiWIo=; b= UKvkfayuHrDG6D78JIF84h0tBZBKyhYMmmq3/p4lmnVlDlR876g/GuDA1/6gA9ja cXU/I0E9Xc1DQbEyCHKQe3wjrvLBItnnSNNV2N02c26f/LsyRGkh8ruVMCa5ofPm fXauldc19KhdmLq8dg3FyXzx1eJD9NojYwYpfvBOOsWBofocz1sIPLpQV+zQ8lkP 0/oc4ddjEEJW1LSKeYY6dvk9A0pUOB6oDYBYOyF0ed8SRRssXy4mJFiuWfkuof5a 3JJv85S+MRdwnzjNgxOdlnq5kezaKgXIQsynic3T339aXDxYP5AQzCrASQaDJh7C 77A/Hf5F+/yfMGzPoG6EPQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4ak7ycdrqk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Nov 2025 14:43:29 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 5APDbcJe018887; Tue, 25 Nov 2025 14:43:28 GMT Received: from bn1pr04cu002.outbound.protection.outlook.com (mail-eastus2azon11010018.outbound.protection.outlook.com [52.101.56.18]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4ak3m9jjn2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Nov 2025 14:43:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QRP9fOqeoScLTcBr7+PDlGnpV2UQZUjSFdCxwmBfBuccVaIEIq/Uco3KFIdeIEwQIirCdu22etFHbiuKATcHfUNIJd3WAqLpgyumWsMwDlp+VrlFCWWLCfJTaNYTWN1kO53Xv1/4PUKNvarRkO+O7ldK9ML6sXoQhegMXD0FYUwSWqQouUFawQpgtE33btKc+HDQ1wZVZhSy5Gtg2oDY1aREJbqIVjVk5RvoKlhxi5Nx9X90Df9nZbwJIxjHRwSenpxhCyna6q9+456BAVCwHGhqIQMSyVRGQ1m3r8fMThjfNM/PQVWhAZV8z+yDppKxDf2Mw9Z06VSpqoWoSVTWtg== 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=b5YgnD0vRqR0OauTcrvNqwYKBrWQbY1Yxn6+j4hiWIo=; b=semlhLtdSmWhREwAFMHA/3j4ZGIDPUvWwwrjHHDFgHkKOz0fnHyY6tmn97pYbTxurhNOqx3UCWQRbvDGd2PwZENQVyU2QOi21zVqfGMTXosuxod9M31G3dwxk73ES8WCmQUoOQVmLbSCV07kvDSBqO4t4yvhoWlT2LeCKttc5MOTTphkOUFJhBVL0f7ki11YUYwZldRcmMdD06ibF61dXWLZGUJcpIj9gBvneJsnHYKJHw20Sfso3QJ3Vm5NIu8ee1UFZRDMWNA+nzGQ8tro1FY8anWwVkE3KEc/Mzc6HH8NZomb07iNoQFy4+ykWcZyaY31zjYV5AETwNaHUhcT+g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=b5YgnD0vRqR0OauTcrvNqwYKBrWQbY1Yxn6+j4hiWIo=; b=Qxi+YAjRAuw+X59pYb4ItsCtZMhAysHseYa8/6/tCBzTcO5FV1kAAFe4OJcmpUskgjejSh5ceppt8tpStMY+vTtvrQAAj5a9EwhtKhdGLr0lPaRkxduv/dbzOhb3mjAWZ8Y6FYDMxer6+nFMDDdtKo54i0N5ZFZX0PWO2iHx2Jw= Received: from SN4PR10MB5622.namprd10.prod.outlook.com (2603:10b6:806:209::18) by IA4PR10MB8256.namprd10.prod.outlook.com (2603:10b6:208:56c::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.17; Tue, 25 Nov 2025 14:43:13 +0000 Received: from SN4PR10MB5622.namprd10.prod.outlook.com ([fe80::6bce:37ef:d1de:d084]) by SN4PR10MB5622.namprd10.prod.outlook.com ([fe80::6bce:37ef:d1de:d084%4]) with mapi id 15.20.9366.009; Tue, 25 Nov 2025 14:43:13 +0000 Message-ID: <71d3a15e-6998-42d6-a56a-5664ce50a5cd@oracle.com> Date: Tue, 25 Nov 2025 15:43:10 +0100 User-Agent: Mozilla Thunderbird Cc: alexandre.chartre@oracle.com, linux-kernel@vger.kernel.org, mingo@kernel.org, jpoimboe@kernel.org, peterz@infradead.org Subject: Re: [PATCH v6 26/30 (mawk fix)] objtool: Add function to get the name of a CPU feature To: David Laight References: <20251124164855.1036513-1-alexandre.chartre@oracle.com> <20251125132902.0cace2c8@pumpkin> Content-Language: en-US From: Alexandre Chartre Autocrypt: addr=alexandre.chartre@oracle.com; keydata= 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 swLliy6PdpST In-Reply-To: <20251125132902.0cace2c8@pumpkin> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR2P281CA0099.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:9c::9) To SN4PR10MB5622.namprd10.prod.outlook.com (2603:10b6:806:209::18) 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: SN4PR10MB5622:EE_|IA4PR10MB8256:EE_ X-MS-Office365-Filtering-Correlation-Id: 80aae24e-bf71-4b20-89c9-08de2c30f609 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|10070799003; X-Microsoft-Antispam-Message-Info: =?utf-8?B?UGd5SDk2MHhUcUVLc3BEMFBucE1VRUM2Mm5lWUk2R2l5UFJ0cUpUa0ZtMnQy?= =?utf-8?B?cXBMU2twOGh0cjNPTktkUEtvZVV1RU4rYXRDcWp0UXRsOFlsS0RaaGcwSEho?= =?utf-8?B?T2Z0TDA3Y3RTZlIrbTAzY1hIVG1LdnduN3JKMkI1cUtST290ZHNETkxsbUxm?= =?utf-8?B?SHp5b1ZPS2dtdjlFdkZNeDJjTFdtVzhrRDJMZWNndGV2MkVFekt6TzVoMGdS?= =?utf-8?B?UXkwYXBpa09CT1pYUjFLMnVOZHRzemRVc2kxTHYzektXcjUzanJXejZVQVkv?= =?utf-8?B?NW00Um9Kd2NlTTFCVTBnd0lSQVB2cS9aQ3dTUFJKTFU4ZzhXRHVuclYzaTFU?= =?utf-8?B?M0ZRc0I4Zksxb3dGb0hNdGw0MnBZanpBcEN3NDNCUS9NYmw3WUJLeXptazJw?= =?utf-8?B?QVNYMzkvalgyZ0FGbXVoWnZsdmVoeUlwakNObWNqb2c1Mkt1eVhNU1Y3SkUx?= =?utf-8?B?QTFOaTkxcnVTQzJmUmUwSlBKcVBaamoyWUNQK1JXbFhlT3JtOCsrMmVKWFl3?= =?utf-8?B?eldiZmQrUVYxL2pQOVBESjdTcjU4V2oranVwUlhVWVpVSk1UR0VJRTFxTHZN?= =?utf-8?B?QStDMWVnWTAvNHVYYzNLbFp6ZThMdHFWbDB0OW0wa1ZkakRDZHlxVHo3aEhZ?= =?utf-8?B?dnNVaWtRQWxuR1dBYmdaMmVoQWptMDdPbUZWcWl4R09VaU1qMkN3SG5KOFhi?= =?utf-8?B?UEdBNWhubUsxU0QrVHJ0REVnRlBQeEZkUWFmMHNBY3F5dUl2MUc2bjN6bUJt?= =?utf-8?B?M2lSUGY3anJWVzFxMXYzcWo0YVlEVTJHckh0UkpoSXNZSVVvbFUrMFhYMlpI?= =?utf-8?B?dGNPZXZJbVgwK0ZkSmxKbEJTazYxY2pERFdvejdrM3hrcU1VUXB0YWg5RjR2?= =?utf-8?B?WTVwOVhtQXR1UldyNU5NQjk4ZG02c3Q4TGRiTjMySzBiMGF3WHlaN1EzK2R6?= =?utf-8?B?alVaSEdRWDRtdlRncWlsTzdIMEV4T1ppUHlpWG1aUVI5ZEZWbFVYWkFvc0NB?= =?utf-8?B?a1JWY0lwbExmZCt0R25EcTdod2FuTFhJOEllRnhPL2RqQWUrcjNFZk9MUjl1?= =?utf-8?B?Q0xkTkdCZ3Bjdnkxc1kxYmk1bHlQc1BGWGpHK3VnZzRWQTd0WEZ6TjlrMU1Q?= =?utf-8?B?aFhPbktRcmJZeXpJMXp4K2p5dDE4aTNybmJ4ZzV0TGVFWEsycnBISVFCWWhm?= =?utf-8?B?VkwrSVNnMFRlY3ViUVBaQjVkeWdJblFaTmVPS0xmbmlBS1dZL0Y0dHcvVFNT?= =?utf-8?B?SStGVFBvekFuZ1J3NnhvbnNSRDUrbGxheUhZL1NWSjR0ZkpJRzh1TXk5ZTds?= =?utf-8?B?QUs2RzV6Yk5KRm45VHcvTU8yb2dxZDI0V3NvUEZnako2RkxwQ1QwdEREL3gv?= =?utf-8?B?Q3Y0OXUwdW9nVCtHSFJSa1UzMzVxK1ZxZ0JyTnBNUDhPbE50VUs4WFk2L2xC?= =?utf-8?B?QVpnM0hrcDJYRnpFN0RnVGRPVUsyZmtVRnBnZDVUakp6ZHltZ2Z2SThTb3ph?= =?utf-8?B?WVBvTjkrY0FqUkxsT2xJcEw0WUFoRitGYUZRdGNtR3VvcG02ZVlzRmNGOUZS?= =?utf-8?B?OWwzaC9TeW42YmFEdk9yYi81TW1NNHFJTjdiS1JlbG85ZnBFOUJ6dE42Mzg1?= =?utf-8?B?SXBJcjVMSnpkdDZ1Q0xoNER5OUxVNTlwUTFQVzZ3UXZva2Z5bVFzcnR3ckYz?= =?utf-8?B?QUZBeWNtb0VVaUkrU2tGUGpsQ04rUWV3b2xVRzkrR2NJeiszR3BpNUZsY3BQ?= =?utf-8?B?SzRBNUpGWjFhVDV0RVVXVWJDZk1oMTkzZUlLKzdIdnNGbDFPMmx3TkxuZmtX?= =?utf-8?B?Z3BMNUkwL1ZTYXMwbGEwUURRV2RoOHA0MHFySmZZTXZ2RnNBM3NlendiNU5P?= =?utf-8?B?MHhOVU1abFFTRWZYNm9tNkZWRnUwalBTSkdoQWQvYTEyckE9PQ==?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN4PR10MB5622.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(10070799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?REMrNmJmRWRiMk1ndW91dW9Sb1M2dXoraVhDK2pVR3E5N0p5U2ozRmhweVl3?= =?utf-8?B?aHZCem1MYXk4N2RXMExyL2RTVkkycUYvUTRkTUp5VSs2YWdTY2g1N0l0OCtI?= =?utf-8?B?RkpXREloSXUxeXZ0azlJcnl2cDZheWp3MUlESmpkQmIvUWVXbjdjdGRTT3Vn?= =?utf-8?B?NmJJdnR0Lzc5Qk1CY3hvL3hOYWphNnIrbFE4SDZrU2lobWR0aHljeTN0Z3JN?= =?utf-8?B?SzNTcUttS0d5UkhQNWhyK2xyMnJndURzR0pDTmQwNk1BU0VRbFIrZnRPN3dX?= =?utf-8?B?Q1pDSDJyRGhoeFBvQmhXamtQRnNnWEcxZzdZTTlCMnk4RHZCSG5NRUZCNFpm?= =?utf-8?B?a29KcVcyQUk4ZUFWVnZEMzhPbytPQktWS093Y2FjZzRBcGo1UG1KZUZiV1Vx?= =?utf-8?B?TTM3MHRkYnE0bXZ1YkgwWnhyL1UxalZ3b1FWaEw1Vnp4cEVDcnJsRjB0RmRM?= =?utf-8?B?dFRXL0JmQVVzQ2pPbGR6dk4xUys4dThuMzhGRzVOaGRvalRScWttckZuaEhX?= =?utf-8?B?RXBqdDFTejQxNjBXWkJtUk1oVklHbks4Y05qV3NFOGdaQkhBQTRRd1hEUm5Q?= =?utf-8?B?cE5XZ0QvVjZ1dnVJTGl2YmF6Yysvb1VlT3c1bk1YeVVydndLOW82allWUWto?= =?utf-8?B?TjJuU2xhWXVWcjlzUFhuV2pObEV2N0lOWGc0bHFWbnJrcksyd1ArUFRCZllF?= =?utf-8?B?azJhNnVJVE1LRlJpRDR4bUdCMWg4QzcrTWsvQ2dhelB5KzhObHVFeHM4THQz?= =?utf-8?B?dnRhZ0ZlUmVTbkU1RHAycGNRN1ZzZURGZFFBZ2JoUExNc2p3eTVYZURGUWtQ?= =?utf-8?B?a0ZsdEFpZ1QzamZ1cmN1aStLRWg3WjQrVlNicE1nT3JuRnc1U3RSbDh1ZEtv?= =?utf-8?B?b3lKYnJRZENQVDhWVURGZEhsWmNWUEo0enZ0aXdlbFRBZ1VrZmpWOTA4aDdp?= =?utf-8?B?aDBRMGtYZWRZVll6dks1VVhuZU5LYjNpY1QrNnNESzMzQjB1L3hGQytWeGJk?= =?utf-8?B?Rk0xR3loeFdQc093aFp3SjhVUmZRNC9QNVJ3MHhmQzFkY0hVdlNxTmhyZzh0?= =?utf-8?B?V1FTWUZydWxHQzJXM2JkWE4yajIzb3RuR055a2VISWpiSnN0ck83eTNlVDVW?= =?utf-8?B?ZTZ3NW1na1dOQUQxQVpxa3dQc0ZBa3IzWDZLV2l3VFNORzBxR0NSYkQxYmJH?= =?utf-8?B?bnBFM2doUUg5RG1Da3pCM3psWDF2eTJSZXQrc1ZCU1EyeUVNdWtWWEpYbklv?= =?utf-8?B?cGlHc3RYdjdFS1p6QWFSOVRrTXcxNXRiYm9icEo0U2sxL2VrYVpmR1Q0bXlU?= =?utf-8?B?ckJKM3lHb1NldnIrWU1lajFHaDh0ZFA5U0VaUkpaZG9VaExsN1g5TTRsVzlO?= =?utf-8?B?TTdKQkQxSWc4cFQvTnZUL3VacnZuSTN1MmR6ZzBYQm81RHZGRkJtKytLcExN?= =?utf-8?B?RGh0T09TdHJmLzBlUGFQZit4YVU2ZlY2dW5LcWh5L1ZET1BvSHBLQlYrQm9a?= =?utf-8?B?TDk5WFdJZjhlTGtxMzVDZXlyQlhuU1lrTGthSERaTkVRbk5PQ0ZwZVkxa29P?= =?utf-8?B?RXB5UmRDbmF3RE1MSkZCR3hMK1ErSmFlUWEvTW5BYm5nV2o3NG9QZ2dUNlFp?= =?utf-8?B?c0RDM0ZXZkVDQ1diQVlnZ2J2aFVEWU5PenpvMDhoRm9rME1ibzgveVA5TXBP?= =?utf-8?B?Zkc5dGZnY1l2TDVSVzF6SG5jR1h0anJ4UzV3bzVPbEdQZmhMcGNaSGlBZk52?= =?utf-8?B?amx6NmRySThaRi91UFlKc1FzbTRjTitweGpLYVRESThHOUsxQkxZeDVtU3hP?= =?utf-8?B?MjQ1dElZdlBtMWpuaWNzdE1UZGlKR0czTFdRTi9JLy8rRnZoVCtqVVlLckdJ?= =?utf-8?B?UXYwY0J0OXB1aGo5aWh3QjhPZktneFVLN054NVIzT2JlNUkrYlpmU05Db0Nm?= =?utf-8?B?RnBaQTVXSXgwTVdoeVhLaGtZNS80eUFtUThuUUNBRUJsanRCMTdRdFlwOS93?= =?utf-8?B?UVlKRkxjblgyRFh0VFdhUnF0ait3dk9jWnhiK21HNG9mVDlhVWRLR2htbHo0?= =?utf-8?B?Ni80b1lEM2JBYXllWkMyS1c0bU1yQllXUTV5aDc5Q2xLdHdGMDlrOUVYbk16?= =?utf-8?B?QWV4SEZlMnI1cm94WGhBZWZxQjFJNkMzMTRMMmxRcHA2UzAyYThXM0pwcEha?= =?utf-8?B?VHB2YU9YMk9OSjMvc1Y1ZFRJUGZIREs3TFY0MzM5eW4zSFFKRjRyRW1hVjNI?= =?utf-8?B?OFBocERTVFY1Rm45U1QvQkQwVFZRPT0=?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: GJYrbe/lKRg2TXvAGVTfwGrB6qDA0KYevbnOWQ1KczyUpjiAOFDqJIX7CcepkzuROlBq6uptt7JfQZ/G4N9TdyiHCBFUoGdyrBuemN0vHnma9vSmgiKX0r+CUfDcngsFnfOFmpxtOkCakCWKcdl5U0OzQvt5Fy7G6uJtanj330akBsvrWFbcGbXs8VfZY+barVZNwG7gQMZeVENpHXFBZAruULvLHKXAPnQXyU8CgjMywY3HZj6vn1Ym55bY7Vp5eXSE4Wmmo9OLK8o31BdFID2D8XGxyiAxTvGKQw/Igw5JmBRQCDDEd7HwNL0MwTVBS3t+buZ326fT8Kl4B0rdyvGrAVNMExhcuZQl0y/G2PCoHv5KDJ4+FSoUPJ1XsGCLeN85ft8dWZJPp0tZMJDyiDgDyJ55zveRrzLa13DkfrqaZl+nP4QBaKLVQrOZYbXdYpAaMUdH56wjal7Yhw3SClcjZg82FCls23P7CH8+/FihoSnKtbztESOspGZBO6qEeA1ZJQEBxOrKcqgAdKCH4FBdWIS4DyFbAFNxIgxdoGBVC+xJ01sbbKspyTctny+0lC5KMRNQy6Ye+svmRyqtimAbBlFXCJYrGsXnDu0obOI= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 80aae24e-bf71-4b20-89c9-08de2c30f609 X-MS-Exchange-CrossTenant-AuthSource: SN4PR10MB5622.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2025 14:43:13.3771 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: n905ls5MNeN4qxgSw6vNHayEznA9ZbPAsAN0w53oU0uI8BrRY/ZJvOpYp/Qrcm7GmP0Zr5Giu6XB323MwxgVk+NqHfgUS5R1smv9K92/60c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA4PR10MB8256 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-25_02,2025-11-25_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 adultscore=0 spamscore=0 bulkscore=0 mlxscore=0 suspectscore=0 mlxlogscore=999 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2510240000 definitions=main-2511250122 X-Proofpoint-GUID: 5R4ej0UgMmQDW4Wo2_qSZUl1iWOQl4W9 X-Proofpoint-ORIG-GUID: 5R4ej0UgMmQDW4Wo2_qSZUl1iWOQl4W9 X-Authority-Analysis: v=2.4 cv=RofI7SmK c=1 sm=1 tr=0 ts=6925c091 cx=c_pps a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=BmP2q_L__UogPSo-:21 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=bC-a23v3AAAA:8 a=yPCof4ZbAAAA:8 a=JfrnYn6hAAAA:8 a=VwQbUJbxAAAA:8 a=BZ9GAe59QFEdV_oyHoAA:9 a=QEXdDO2ut3YA:10 a=FO4_E8m0qiDe52t0p3_H:22 a=1CNFftbPRP8L7MoqJWF3:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTI1MDEyMiBTYWx0ZWRfX539pnXH4b8d5 QfojF8Oe/x3kWVHAXxtDvVzZiqLozUNIcmhl8aOWzm/Dj0uob5Mg/5vN0VDo/sylQHIiQX65Eox s1xGMN3J2F3C5pQp4Dj/ifrmNQ+0LMl82RKIRoQu4Ly4T/QXhSoJUtxEdLg4s4a4Z4SKi7STN1Q 6zVVWijvAEelYxRejd3qCJqfB/RSn0OWhvCmDEgtvbqQi1OF6cMA25ZXf9gl0OnVPQ24i3Yq+Sf nSSnm294Ckid8UkVlynMm05g+8WZAD2CmCRvPFLcIfxxF9KavcFxlavLPhzS3sz8vqSBCdCYCMG D9xg9TZIUrQmfg7HTpQYCiCcjKxf8EyzGzkSmSCmlaceD8XdciQZ2MrchZDhRspB1hkU6ZwM+l+ FtuYg5HEpqxyrWaI5svEwSBrCz8n0Q== On 11/25/25 14:29, David Laight wrote: > On Mon, 24 Nov 2025 17:48:55 +0100 > Alexandre Chartre wrote: > >> Add a function to get the name of a CPU feature. The function is >> architecture dependent and currently only implemented for x86. The >> feature names are automatically generated from the cpufeatures.h >> include file. >> >> Signed-off-by: Alexandre Chartre >> Signed-off-by: Peter Zijlstra (Intel) >> Acked-by: Josh Poimboeuf >> Link: https://patch.msgid.link/20251121095340.464045-27-alexandre.chartre@oracle.com >> --- >> .../x86/tools/gen-cpu-feature-names-x86.awk | 34 +++++++++++++++++++ >> tools/objtool/.gitignore | 1 + >> tools/objtool/Makefile | 1 + >> tools/objtool/arch/loongarch/special.c | 5 +++ >> tools/objtool/arch/powerpc/special.c | 5 +++ >> tools/objtool/arch/x86/Build | 10 ++++++ >> tools/objtool/arch/x86/special.c | 10 ++++++ >> tools/objtool/include/objtool/special.h | 2 ++ >> 8 files changed, 68 insertions(+) >> create mode 100644 tools/arch/x86/tools/gen-cpu-feature-names-x86.awk >> >> diff --git a/tools/arch/x86/tools/gen-cpu-feature-names-x86.awk b/tools/arch/x86/tools/gen-cpu-feature-names-x86.awk >> new file mode 100644 >> index 0000000000000..cc4c7a3e6c2e2 >> --- /dev/null >> +++ b/tools/arch/x86/tools/gen-cpu-feature-names-x86.awk >> @@ -0,0 +1,34 @@ >> +#!/bin/awk -f >> +# SPDX-License-Identifier: GPL-2.0 >> +# >> +# Copyright (c) 2025, Oracle and/or its affiliates. >> +# >> +# Usage: awk -f gen-cpu-feature-names-x86.awk cpufeatures.h > cpu-feature-names.c >> +# >> + >> +BEGIN { >> + print "/* cpu feature name array generated from cpufeatures.h */" >> + print "/* Do not change this code. */" >> + print >> + print "static const char *cpu_feature_names[(NCAPINTS+NBUGINTS)*32] = {" > > Since this code is #include'd into a .c file the line above (and the final }) > can be in that source file. > You only need to generate the initialisers here. Sure, I can do that. > >> + >> + value_expr = "\\([0-9*+ ]+\\)" >> +} >> + >> +/^#define X86_FEATURE_/ { >> + if (match($0, value_expr)) { >> + value = substr($0, RSTART + 1, RLENGTH - 2) >> + print "\t[" value "] = \"" $2 "\"," >> + } > > Can't you just do: > print "\t[" $2 "] = \"" $2 "\"," I presume you mean: print "\t[" $3 "] = \"" $2 "\"," But this doesn't always work because the value we need can contain spaces and then it will be split into several fields. For example, this works with: #define X86_FEATURE_RRSBA_CTRL (11*32+11) /* RET prediction control */ But not with: #define X86_FEATURE_APIC ( 0*32+ 9) /* "apic" Onboard APIC */ alex. > >> +} >> + >> +/^#define X86_BUG_/ { >> + if (match($0, value_expr)) { >> + value = substr($0, RSTART + 1, RLENGTH - 2) >> + print "\t[NCAPINTS*32+(" value ")] = \"" $2 "\"," >> + } >> +} >> + >> +END { >> + print "};" >> +} >> diff --git a/tools/objtool/.gitignore b/tools/objtool/.gitignore >> index 759303657bd7c..73d883128511f 100644 >> --- a/tools/objtool/.gitignore >> +++ b/tools/objtool/.gitignore >> @@ -1,4 +1,5 @@ >> # SPDX-License-Identifier: GPL-2.0-only >> +arch/x86/lib/cpu-feature-names.c >> arch/x86/lib/inat-tables.c >> /objtool >> feature >> diff --git a/tools/objtool/Makefile b/tools/objtool/Makefile >> index df793ca6fc1a1..66397d755fe4b 100644 >> --- a/tools/objtool/Makefile >> +++ b/tools/objtool/Makefile >> @@ -125,6 +125,7 @@ $(LIBSUBCMD)-clean: >> clean: $(LIBSUBCMD)-clean >> $(call QUIET_CLEAN, objtool) $(RM) $(OBJTOOL) >> $(Q)find $(OUTPUT) -name '*.o' -delete -o -name '\.*.cmd' -delete -o -name '\.*.d' -delete >> + $(Q)$(RM) $(OUTPUT)arch/x86/lib/cpu-feature-names.c $(OUTPUT)fixdep >> $(Q)$(RM) $(OUTPUT)arch/x86/lib/inat-tables.c $(OUTPUT)fixdep >> $(Q)$(RM) -- $(OUTPUT)FEATURE-DUMP.objtool >> $(Q)$(RM) -r -- $(OUTPUT)feature >> diff --git a/tools/objtool/arch/loongarch/special.c b/tools/objtool/arch/loongarch/special.c >> index a80b75f7b061f..aba774109437f 100644 >> --- a/tools/objtool/arch/loongarch/special.c >> +++ b/tools/objtool/arch/loongarch/special.c >> @@ -194,3 +194,8 @@ struct reloc *arch_find_switch_table(struct objtool_file *file, >> >> return rodata_reloc; >> } >> + >> +const char *arch_cpu_feature_name(int feature_number) >> +{ >> + return NULL; >> +} >> diff --git a/tools/objtool/arch/powerpc/special.c b/tools/objtool/arch/powerpc/special.c >> index 51610689abf72..8f9bf61ca0899 100644 >> --- a/tools/objtool/arch/powerpc/special.c >> +++ b/tools/objtool/arch/powerpc/special.c >> @@ -18,3 +18,8 @@ struct reloc *arch_find_switch_table(struct objtool_file *file, >> { >> exit(-1); >> } >> + >> +const char *arch_cpu_feature_name(int feature_number) >> +{ >> + return NULL; >> +} >> diff --git a/tools/objtool/arch/x86/Build b/tools/objtool/arch/x86/Build >> index 3dedb2fd8f3a0..b95448ee01ee4 100644 >> --- a/tools/objtool/arch/x86/Build >> +++ b/tools/objtool/arch/x86/Build >> @@ -12,3 +12,13 @@ $(OUTPUT)arch/x86/lib/inat-tables.c: $(inat_tables_script) $(inat_tables_maps) >> $(OUTPUT)arch/x86/decode.o: $(OUTPUT)arch/x86/lib/inat-tables.c >> >> CFLAGS_decode.o += -I$(OUTPUT)arch/x86/lib >> + >> +cpu_features = ../arch/x86/include/asm/cpufeatures.h >> +cpu_features_script = ../arch/x86/tools/gen-cpu-feature-names-x86.awk >> + >> +$(OUTPUT)arch/x86/lib/cpu-feature-names.c: $(cpu_features_script) $(cpu_features) >> + $(Q)$(call echo-cmd,gen)$(AWK) -f $(cpu_features_script) $(cpu_features) > $@ >> + >> +$(OUTPUT)arch/x86/special.o: $(OUTPUT)arch/x86/lib/cpu-feature-names.c >> + >> +CFLAGS_special.o := -I$(OUTPUT)arch/x86/lib >> diff --git a/tools/objtool/arch/x86/special.c b/tools/objtool/arch/x86/special.c >> index 09300761f1085..e817a3fff4491 100644 >> --- a/tools/objtool/arch/x86/special.c >> +++ b/tools/objtool/arch/x86/special.c >> @@ -4,6 +4,10 @@ >> #include >> #include >> #include >> +#include >> + >> +/* cpu feature name array generated from cpufeatures.h */ >> +#include "cpu-feature-names.c" >> >> void arch_handle_alternative(struct special_alt *alt) >> { >> @@ -134,3 +138,9 @@ struct reloc *arch_find_switch_table(struct objtool_file *file, >> *table_size = 0; >> return rodata_reloc; >> } >> + >> +const char *arch_cpu_feature_name(int feature_number) >> +{ >> + return (feature_number < ARRAY_SIZE(cpu_feature_names)) ? >> + cpu_feature_names[feature_number] : NULL; >> +} >> diff --git a/tools/objtool/include/objtool/special.h b/tools/objtool/include/objtool/special.h >> index b22410745e4a1..121c3761899c1 100644 >> --- a/tools/objtool/include/objtool/special.h >> +++ b/tools/objtool/include/objtool/special.h >> @@ -38,4 +38,6 @@ bool arch_support_alt_relocation(struct special_alt *special_alt, >> struct reloc *arch_find_switch_table(struct objtool_file *file, >> struct instruction *insn, >> unsigned long *table_size); >> +const char *arch_cpu_feature_name(int feature_number); >> + >> #endif /* _SPECIAL_H */ >