From patchwork Mon Apr 7 16:46:19 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Volodymyr Babchuk X-Patchwork-Id: 14041306 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id DA002C36018 for ; Mon, 7 Apr 2025 16:46:52 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.940615.1340331 (Exim 4.92) (envelope-from ) id 1u1pcK-0001CT-AZ; Mon, 07 Apr 2025 16:46:36 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 940615.1340331; Mon, 07 Apr 2025 16:46:36 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1u1pcK-0001CG-3X; Mon, 07 Apr 2025 16:46:36 +0000 Received: by outflank-mailman (input) for mailman id 940615; Mon, 07 Apr 2025 16:46:35 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1u1pcJ-000129-25 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 16:46:35 +0000 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazlp170110003.outbound.protection.outlook.com [2a01:111:f403:c207::3]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id dd19affe-13cf-11f0-9eaa-5ba50f476ded; Mon, 07 Apr 2025 18:46:33 +0200 (CEST) Received: from GV1PR03MB10456.eurprd03.prod.outlook.com (2603:10a6:150:16a::21) by DU0PR03MB9590.eurprd03.prod.outlook.com (2603:10a6:10:421::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.31; Mon, 7 Apr 2025 16:46:20 +0000 Received: from GV1PR03MB10456.eurprd03.prod.outlook.com ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com ([fe80::a41e:5aa8:e298:757e%4]) with mapi id 15.20.8583.045; Mon, 7 Apr 2025 16:46:20 +0000 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: dd19affe-13cf-11f0-9eaa-5ba50f476ded ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qbFIyi7aUOaMI5N9x9g8ef+aduIsnvjteoG2zUutoCv0KnP6cOghkml878iBs0Xfd3E2sR6Z+RYsJhOgYmkUxbrr8kvmDAgqSwWqfmITwu8BqzbrJ8ClPayD7RNFYgUIosVpPUuAesvcsg0JogyNCNXSaFo7RI009sDDcvxCOvqYaGQSN/VbgmIY8wrLivo+rQgzuJlNkelG6n39/LeQXFUd6x30lFtFp3Zqg5XvvqFfhG1gBi+qRJIeZtzHEn9L/y5mB4gu58JtbxqBrcAMRc7IfVaDeWsEJbVx9kPx3ZF3HOht/BkO7EPNrxPB+Ms2MbZSFdhKVD7tQ2PkdCknOw== 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=KivJ2k6BfE001jDKKqlP7G1zDyRivt2r7x3oxgOSz1w=; b=ctwHtFKbkWnZ56xLZGfEaVDGkOHf2ZwB0DpAASFMk8Hz4EZY52jWjl09ESg9J5Te01lezIwNrq41DXiAIPV2PRalI0iOD9YSZmU8jH09mnpkhLyigGr/Sf5KJRtYJYioD/QdqumgP3muAK58/e63uzMkNHDJfg/Z/heJ8Ygkhzc+1ntTdf1oiTtSZx7Ui5smlAMEQIz+TGXHgCcgOzS0hGYP94PIrU2lZq9YVRP39qPbIDLjxCOpwyIQCD8v430oeODE6lYaTd3zSdLbOW+AnK5ZXjYgogFcdFQBQu4dmAdmBz2H26vvZPCiUAxF1J+zG32SQ7OGUsUUUQjbsi3gXA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com; dkim=pass header.d=epam.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KivJ2k6BfE001jDKKqlP7G1zDyRivt2r7x3oxgOSz1w=; b=MAfkanGFTqXd72ZqMa9k6LWUegkY7V5g5M/8KyLZjG7uCrtxjuRBCwe2yKNrxds1Gcqd2o6z2uTlAjr4+lC89/lL1rAShFCxXt+1w/SxJbkm1Q8AVMYVe2VJnM1jHhCEdtGZvnAOzfUL1d/M1/K9aci3oW5RjiMVAUPZuqXId3P7beQ5XJRD2Y5FlOQZGV97jtwJbe9U3gO9cbG0pYmiPYSIwGFPY6rorszxlYB4SDfCaJ8TFoWezEInw4M4kNK9GKv2dB8PAY3zoim0U9yPqT6ELvdpFzXq2t0DfNPPCmk/xdpqZt2DQthlQURV3xHO0CwD0RkEOU7FbeFWLMT5rA== From: Volodymyr Babchuk To: "xen-devel@lists.xenproject.org" CC: Volodymyr Babchuk , Jan Beulich , Andrew Cooper , =?utf-8?q?Roger_Pau_Monn=C3=A9?= Subject: [PATCH v4 1/2] xen: x86: irq: initialize irq desc in create_irq() Thread-Topic: [PATCH v4 1/2] xen: x86: irq: initialize irq desc in create_irq() Thread-Index: AQHbp9yWkav/sMjfLku8fUslcpXJUw== Date: Mon, 7 Apr 2025 16:46:19 +0000 Message-ID: <20250407164608.2558071-2-volodymyr_babchuk@epam.com> References: <20250407164608.2558071-1-volodymyr_babchuk@epam.com> In-Reply-To: <20250407164608.2558071-1-volodymyr_babchuk@epam.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.48.1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=epam.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: GV1PR03MB10456:EE_|DU0PR03MB9590:EE_ x-ms-office365-filtering-correlation-id: 033114d3-0b84-463f-1882-08dd75f3b944 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?q?HcY0fYW3h47YoiW98bM+tZQu+jKtSdY?= =?utf-8?q?DReFHJgnzmHkfOaRyQC2vUBISakCuMT3jveh+Z2OqnYlU84O39GjDHVfRc1ObSccF?= =?utf-8?q?deikAwaNJ2ZXg7rCHjnhz+ipfezLBelDjuzvQw4yyIyed6RmbsLImia34S7pT1g4D?= =?utf-8?q?2KF20vAc5/HYbgggkdTfV9Liqh6pp7RgpaREEE53gjm0MmW8/wRRL7dj57wb4/1gm?= =?utf-8?q?w2rVdksSGESGRy4Z8nDTp0l8T/IZDQapv48OHZSVcN7Vix0T0xPFLzJgjwRYDBxNO?= =?utf-8?q?phirVBCV5n+X3XUNKSPf9KaGDL+xaUg508JdhtruTKQgdrW45MkvAZ19SsWVoRuyd?= =?utf-8?q?PPcAT8AAN8o32H1imXS9PZ7oFhCm75DTYo3a432ZhZHbrC5ma5q3xTEQDd8CkICjZ?= =?utf-8?q?1gDkPBd+bLppl+x6bBz+9K50wJJZi5Aguf7fqe1BkXFYbN6TmEC23RhWnl5phW7uY?= =?utf-8?q?kb5rKoZeZJyyrwzka1s0BMqeADQIEWqKU35S2hvOnzOiCHhlH0XrSvdAH9LMf2w9S?= =?utf-8?q?keckvopgEy+7gNqFyVktbSVPlr4CdlKhhVkaU9ti+WEo7GPo4njAU3/+lFUD1+wkn?= =?utf-8?q?j3xCVjHhisF2pemyjpI0+hD9VzTSueMAmoC3ChH7YwRbrkWHlPV/Uh5eMAFWxp6Am?= =?utf-8?q?LmR7g9f1UDoM8iu1uKyiJh4FM1flsAhi8oAISDxqaHIszzmJUBRhhtu62ceXsKVlW?= =?utf-8?q?S+9cNm+T62YUc3nFHvIAgPoxHqhveOMu94JOtYa1cQkPMKbloq0veKGR2HfwzCq7q?= =?utf-8?q?JEg9OAhQOggXrRpjNxqBPBttJ2i8TvDXA0e+nfuCeda3MfGBCNtWlHVyxu+mhSZeH?= =?utf-8?q?qWeEMeRIoXQ+VKWEwtqDndY5R+zRqigynillt+GAyDNzKkfYJ/8v95kXfHOs+3ajP?= =?utf-8?q?8WqcDxD+JBFXQslKnp/TGRc+ILiktysg/Zl80kqJ1NOGqn5970tClck72PaGaOmev?= =?utf-8?q?uzLlFLxfogvErLQuuE2j1a1ojoUEMXkn7AvU3yBEkA9/cXtZgAtIDsvLfY5iEbSlk?= =?utf-8?q?w5AECfj7HsVCsZBvAdG/7qdPAozi3sOc3U2zMTKfidzHeYFghFBuQwsEDGOFRa2Yf?= =?utf-8?q?4vHVkJC4mWnKgSb2xENsteBaQkE8A+VqTJCV54hyJGUkJZ/iVpU+hEO+oq28AmlIX?= =?utf-8?q?Z0A6xZnsRHWRmaREh4gdhNeOBKcSIf6+Q2VDaZEz3rYSTPT6X/isivv6NEGSBBxCM?= =?utf-8?q?oYzJgBo9XNOsRPPgpC71+8SjmcFyxlLYPX6zBwMgg9PsZe3tyGcliK0KE8Wt7wZj4?= =?utf-8?q?0izgI3WXAakqi5yLNZma94+SuiWFGaCbax9wB65S2XuCaGysN0L7cMAEb3ksUSZ0q?= =?utf-8?q?HOLaap0xr32W?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?BHXCU6QGvT21UlCJ8pY8WWJI0yyc?= =?utf-8?q?onA3jFKPWRVl+NRv1z51AWYpxMCUSBKIQMujrs9eRkNXTq4vpFebSa+FI0CrAvCO8?= =?utf-8?q?CoIRQrEA28MBAAHmpVqFt/UX8ZhVmBsO6sJionDH3ED2dat6SDK0xSeG7jvZQt3T1?= =?utf-8?q?9gHjBAR6B3mSCKaSsTcPO8c51jvSd7AOOPeD7KoI+b+BI2alLtMdxBrUXDt+WLYQZ?= =?utf-8?q?SjY4zIBY6lKITA4/YXDtq16pmgHSnZxn5u56W0tHsj4800vQ0eUnK1zV55tuDDl8G?= =?utf-8?q?C9YVdFSUNzl6mOGJJvc6ZLQFdQJW01Z8Ytw22HNqC/FzWMcXn6iWcJTrHpbknNnra?= =?utf-8?q?e37wK36vINDfByIv5LqynR4pxTUok5H98WU/5nMBZHL2bNAZ1zUNEWFzV2FJXply6?= =?utf-8?q?76k5+cx7iO8LrbDFlSvbQd+JBtzY0JJxRRJMofanAbTj8ZokDRGJOqTg/Ed0oB6pl?= =?utf-8?q?IBSp+/YQnmmZOcoKtM1WtzYDpx9b6NWxiPrnZk6vE5so6GW5ABQ21IeC2QGAK5qb1?= =?utf-8?q?C2gCcfl1BobqqcHcVao2vRxdyk3z8CQRMILVVJp7QUu1i/zmE4kpIn+nZufkZuQM3?= =?utf-8?q?HE2t45UzKg+tGmi1cGWHxewCdD1/kuhBdInBjp/9Joh7qmI2664bPsb9+GrTQj9cE?= =?utf-8?q?NOa2kUURiHSV3ihff4pmqP6OdRTR5sORbCT6IzMXrmZwwhqV+JdjvcAw6ZG5LxY7p?= =?utf-8?q?PhW/H/FeFVAgF9VZ33jJPmI5C2j1GldMdNs2N2m3+ZpBQ9HxcMgAqxInYpTLB37ir?= =?utf-8?q?F8jkS5SaQbqvN4PN8lM+dHuFdhH0A3AFWY2CBGnSYmwLE3FEeaaIayawlBJOVOivX?= =?utf-8?q?TE7w29ubzOxAekHRtIoh+7xi7BBVi2e1nCLSJZNsL+pxi4CbsBJo8ZzMFvqubpjCW?= =?utf-8?q?2tJkaFfkkKdgUaaWvl+cOB0wK2RLHfpXF4n/g4DhzsjreXCyoucrWirnhHxHGUGAR?= =?utf-8?q?qpBZ4kWiecIH2hkVNdQ54zYBHIC9x1c4hU3OzmwJJRtp+zwvegc9KWGhCljsoNcXk?= =?utf-8?q?HdRDP0G7LfwI/DXtTtDlWloISsqkKeUA+FwJU6AEsxXONd8FKNvpF6/OLtAfFQXud?= =?utf-8?q?KfhUkyVamnjgILtMuUQWDz0BcjFjlaneAC8BDGTgaCP6mdBV9IqU/ZPd5qer/ffsU?= =?utf-8?q?z67Crh0RexHpxlriY02Ynjk1sX4o2BId7YqlmFWod1AvcdnX8UPMUZe6RhhnrXe62?= =?utf-8?q?xt2AnkMHdf+Vg5hzgRK5Ivi9d/yuRa2VdP6yEZN5GoJwi9EDBcXwXZMN2hMd1fPD5?= =?utf-8?q?frvKDAxy3MJK8MHh1XJpGIEfXZPWMMqJMF8OKSqge2jgySY2yt5kY25fVYBPGTm66?= =?utf-8?q?IBfB/alai+3eOflyyGN1c9TspDj57F4MjVPPX7zHwkWot/Fj0WSaw4S+zHcIAQVm0?= =?utf-8?q?zUNT4YIi+NlxFqNutesP2FNO1/d8V92zYdS4HuxzH9AUE1r+QlYEON100mzELc0ve?= =?utf-8?q?E5JDeP8RH8sOp3MOeudJYCj5AIrkY0V4yN6IhHC8GWJUZu2FY3acLvcwP0ndDIvk4?= =?utf-8?q?hC3jWd9uGPGn6CO5oJO2dOAYGyb+IJoUag=3D=3D?= Content-ID: MIME-Version: 1.0 X-OriginatorOrg: epam.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: GV1PR03MB10456.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 033114d3-0b84-463f-1882-08dd75f3b944 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Apr 2025 16:46:19.6505 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: tp7w8/CLhJzhTxR2fWQi1L7CHThhhrH4EkchXxQgi7PXL2h+BWrXIPRA+t3rZochBqa7hWPFsIz6RHnyXqaa5oXSt3LZCaLpXa0vhl89l4M= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB9590 While building xen with GCC 14.2.1 with "-fcondition-coverage" option or with "-Og", the compiler produces a false positive warning: arch/x86/irq.c: In function ‘create_irq’: arch/x86/irq.c:281:11: error: ‘desc’ may be used uninitialized [-Werror=maybe-uninitialized] 281 | ret = init_one_irq_desc(desc); | ^~~~~~~~~~~~~~~~~~~~~~~ arch/x86/irq.c:269:22: note: ‘desc’ was declared here 269 | struct irq_desc *desc; | ^~~~ cc1: all warnings being treated as errors make[2]: *** [Rules.mk:252: arch/x86/irq.o] Error 1 While we have signed/unsigned comparison both in "for" loop and in "if" statement, this still can't lead to use of uninitialized "desc", as either loop will be executed at least once, or the function will return early. So this is a clearly false positive warning due to a bug [1] in GCC. Initialize "desc" with NULL to make GCC happy. [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119665 Signed-off-by: Volodymyr Babchuk Reviewed-by: Jan Beulich --- Changes in v4: - Reverted back to initialing desc, per Jan's request - Added link to the corresponding GCC bug Changes in v3: - Correct code style ("do {") - Add comment describing why we need do { } while loop. I prefer to leave do {} while because Nicola Vetrini said that this approach might help with MISRA Rule 9.1 without needing an explicit initializer. Changes in v2: - Use do { } while loop instead of initializing desc with NULL --- xen/arch/x86/irq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c index dd8d921f18..38ac0823d7 100644 --- a/xen/arch/x86/irq.c +++ b/xen/arch/x86/irq.c @@ -265,7 +265,7 @@ void __init clear_irq_vector(int irq) int create_irq(nodeid_t node, bool grant_access) { int irq, ret; - struct irq_desc *desc; + struct irq_desc *desc = NULL ; /* gcc14 -Og or -fcondition-coverage */ for (irq = nr_irqs_gsi; irq < nr_irqs; irq++) { From patchwork Mon Apr 7 16:46:19 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Volodymyr Babchuk X-Patchwork-Id: 14041307 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 5266AC369A1 for ; Mon, 7 Apr 2025 16:46:53 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.940614.1340324 (Exim 4.92) (envelope-from ) id 1u1pcJ-000198-Uz; Mon, 07 Apr 2025 16:46:35 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 940614.1340324; Mon, 07 Apr 2025 16:46:35 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1u1pcJ-000191-Rs; Mon, 07 Apr 2025 16:46:35 +0000 Received: by outflank-mailman (input) for mailman id 940614; Mon, 07 Apr 2025 16:46:34 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1u1pcI-000129-R7 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 16:46:34 +0000 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazlp170110003.outbound.protection.outlook.com [2a01:111:f403:c207::3]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id dc85e0a8-13cf-11f0-9eaa-5ba50f476ded; Mon, 07 Apr 2025 18:46:33 +0200 (CEST) Received: from GV1PR03MB10456.eurprd03.prod.outlook.com (2603:10a6:150:16a::21) by DU0PR03MB9590.eurprd03.prod.outlook.com (2603:10a6:10:421::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.31; Mon, 7 Apr 2025 16:46:20 +0000 Received: from GV1PR03MB10456.eurprd03.prod.outlook.com ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com ([fe80::a41e:5aa8:e298:757e%4]) with mapi id 15.20.8583.045; Mon, 7 Apr 2025 16:46:20 +0000 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: dc85e0a8-13cf-11f0-9eaa-5ba50f476ded ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Od9W51kk5joAIGQh0E7bJeWzbfCcllFm2s3ndjiWQoAJNPwJDhfXD36WPKKLLjIkqOj5jtUj/HUcZ6sXzJAoeI/A0Y5j+8eOd7xAQaNey4F9kvro+LlOzhnbGZaqSv4iJUTbFweC4lv5QGEalLuZg6Gc1nFakWpsrtrSZ+6m21jzXtIvMnLwWphKo5QlPDYqAQQgK2+eUhJKDJugmMKImeAia1B+t7uFYaMCfUJrmWmWehKw5/QtXNX5FGdmMvAP0vlKaCzHaPcUa/7Dx1Y5GZpiJR049byTmkC375+WblYgWSNwiwggQ1kTD9bAkPw1bxy1977793wdHQupD0jogg== 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=FZ4uLEX5JnhvBk61CPh0YO1Wh8KhNw7TarTuxdN50Gw=; b=bYUIITxBlJPqjSojgTH+rSFG62rmPeSEWAfcmJMlAaHwjCoDHVQcgIFAJWJ+9atCViD0KKu95ihzoRbq47Jy2AIDkSspjPrTXvsCVEVbN0U2yqD4eHsA3H5GVTZ6NjYRibhRdh16vn+uoILDqFjZ3F4jiACMhlbaixb6ddYwkDv9HMaVglofitFY1KXJbvhJUILU7PvzcKv+ZAMecEl9jjetB0uwoEyoNkQQuru6OR70OekfPRyUTLht1BpD7KGO9FVRnImcfI2BAp8B+Ixf+HCPPY2iQtAuQ/3dD4LHmqKLAiulEmpOlLOW35+Jh+At0GDIfDeb1hsTi8pI8bBO4w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com; dkim=pass header.d=epam.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FZ4uLEX5JnhvBk61CPh0YO1Wh8KhNw7TarTuxdN50Gw=; b=BiPznjsViRgdQ519DLUE/9f6DmnAw94kpqGMgqFeGzYgd2gDCqaLZRDbg5K/OQTdIognuO6jO/d3/TxMyCfSEAWcZLh6AluPz5NdCOF8Z9JlNPIy8RyANR2LyKu9gemTKW6jJ7GUnxerzMimRW7RiSguO+hBZvKhRBY6bShdHpXrYF57hMChlaRm8ChpcyMah5ktAQx2QJbz3xoDMyMZStr4xsnyVnBU6KhJlnmFc+cqvSXLGW4fIZ+XrAeb1/KS5arh3hthKQzhM3AbQxZCKud+bOipjNRxawh9vrE2Jwki75Gd3DjRwE6ikPt03EG5EzRWxl+HY1EWPWcUzAuatw== From: Volodymyr Babchuk To: "xen-devel@lists.xenproject.org" CC: Volodymyr Babchuk , Andrew Cooper , Anthony PERARD , Michal Orzel , Jan Beulich , Julien Grall , =?iso-8859-1?q?Roger_Pau_Monn=E9?= , Stefano Stabellini Subject: [PATCH v4 2/2] xen: debug: gcov: add condition coverage support Thread-Topic: [PATCH v4 2/2] xen: debug: gcov: add condition coverage support Thread-Index: AQHbp9yW2b5GBLlgDka417bnQFIpfQ== Date: Mon, 7 Apr 2025 16:46:19 +0000 Message-ID: <20250407164608.2558071-3-volodymyr_babchuk@epam.com> References: <20250407164608.2558071-1-volodymyr_babchuk@epam.com> In-Reply-To: <20250407164608.2558071-1-volodymyr_babchuk@epam.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.48.1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=epam.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: GV1PR03MB10456:EE_|DU0PR03MB9590:EE_ x-ms-office365-filtering-correlation-id: 44908335-511b-4171-8522-08dd75f3b971 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?q?kFjOdsQwwquyIARtH6rCH31FBL?= =?iso-8859-1?q?UMC8CYiaS+lZ7rJf6YThgiNmVDGJHGN4ILh/HsGlqXLjX/9nUDz6ojFcFYvg?= =?iso-8859-1?q?tQVTSqW9ylP5b+2w3Vbqsms3euA5PlRWi/Os/5zAK3KueFn3ZgXj+mAr8dJ4?= =?iso-8859-1?q?iX8GZ7sKbt3gspUj+ui47i8QRDjk/2brSncJiW6RJFXULsKf03tAkdzTjwo9?= =?iso-8859-1?q?paY9u1JQkwkD2nrGvdBq5SsXVRmMzTF5W3wmknCZoYnVTdi+YlYH+kqu1pAB?= =?iso-8859-1?q?VmY2jU2BPd5Z30I194+f8bsjtqbTazVYVhFCAs83jX6CN3x0K87XvWzU6JBn?= =?iso-8859-1?q?2fWuN/UEsaHljctRY0Y6S+a1s/vbhfIkqOAHBMFAy9/KWN7s/oiLGm0YHJk8?= =?iso-8859-1?q?dxc6n7Kh3TOWlUyF2d8uZrl84R411NGre1tkIosmwNkPdp6oPBAjlhosJWCd?= =?iso-8859-1?q?nzderiCFG6u+SjIDNh6SshYiyxYc7EPvzZ51vAzG7wnFKmUuyxPAOTa27lqv?= =?iso-8859-1?q?QvsbzQqVjknWjUPzAfaTmC4GpvpGh1FwSzFyiik8FKpRhhSuY3l7FUpe2WSy?= =?iso-8859-1?q?vR0ftKy12nDCOrw4WsJV5yx274JinL0BkFUsffFBp8VIWlxO/81xh4QlK3JJ?= =?iso-8859-1?q?Cj0wb1Tl6BNeY3eo3k4UNPyGorTlGi+WdlqtJe2m//aaZMsiR8Sl/1RtvXk0?= =?iso-8859-1?q?R11QJtDXMhSDXxwuERu+3Ip0huBJRSL9RONeREYf/Ip5rutp7c61ayIUCRQu?= =?iso-8859-1?q?DMxiJP1lWRR8tFnPMrW6AlAksBkO5Mh06wHr1YXAMVOXFdEBqhiDEhM1YaPw?= =?iso-8859-1?q?mafNRTO99zI0i43+fsOAunm89azaZiuK7wALvLnkMYI32zulO6/xoyCiKVPH?= =?iso-8859-1?q?ScCh1I992g6/NdgKz3yjkvmcgCj1d0PaYFUNkuYmr4w604Z/lp1VEfLwaOBK?= =?iso-8859-1?q?a2Yuy0CjswywkrOi6/HGr2AsaJZ32MLtVyNfF+dkcRWf6kQukPwZlqt2ejHY?= =?iso-8859-1?q?3jEP1foVC/jqY0CTo9n+rTPpLBViXc3lH1fCj9aq5xOhT4t3J7DTR70+2Lsy?= =?iso-8859-1?q?2T+lwXQO+qdXA48tOXzkKYMqfo+LiCtWNlyEHYHtzBPtmgTZIL8gq12nvD37?= =?iso-8859-1?q?Yi3uW5s0B7uyq0Uk/XtEE1PXK32kuEn5YpDnxpooFBlWn+ha9yPDtv+qakHk?= =?iso-8859-1?q?dhWWVTVdzsYDuhm72s1g7UpwOzvEhnExp/GIuNO+jG8P/5NvM0edAtsrqb+o?= =?iso-8859-1?q?KCb1fEjb5cPCj8p2dtMnilfbmX8yaJDbcmun1wjOP2T1PVa4bJJ1cUs+LDoX?= =?iso-8859-1?q?afKXYJ8L6UgI+D1z1RSuQ8Ycgc955QgTwqYK2jmcNl2oD8j9VH3PgrTMhxTb?= =?iso-8859-1?q?8SkYWdQi4hhYcDFaqOVuzDWhXuMyWSanxoCWGtGlHP/gTycA48SCSYo7u3XN?= =?iso-8859-1?q?EbIZVT/GPq7yel+7U0PnaWlm1z1Ako2ItXPDihOE0uqiBfH89kKOfox4fnb2?= =?iso-8859-1?q?WZgJlf?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?FGvxpfUITQjAIQsPotJlQJD?= =?iso-8859-1?q?e7ixwuryJX/1PQkoBsWFuyvL3uZdRRvHYh7ldhf4xamd0DhjnirBDqV0Wzz5?= =?iso-8859-1?q?JuyA9pVSnficzQUhH4ULrZZby6MnheI7AIwdzIUfM4VNmpyTyND0spgC+S8b?= =?iso-8859-1?q?j0yFb6Gtrfs+LRl3uGKjyq7NG8Xek8G4KUGG6BxTXK+xw+Jtp/9YPUQQOs7C?= =?iso-8859-1?q?RGI27Ik+bgCYV+B4K2UcWpcqdrTwF/iAWfJbUSKbpWfC3mDHOtpRv8VsuJg7?= =?iso-8859-1?q?2FnzTHRqiSqIrpNUW8Hd6i7phqrAx2it+LJdmmlejfPXu4bb9VWb5v1GG3f4?= =?iso-8859-1?q?fpIaudvRFsy519LuNjB+nZU+XMIbd29b1TSTqUS1rAjIrcW60S302G900r2t?= =?iso-8859-1?q?UtlRryRVX+3DnSN2I6uG3tj0R7+KIRar0voz1FmphtayovcIM2BUZaKHWlS4?= =?iso-8859-1?q?nQNFXEm8tys+zJNWlP3I41aY1YVf4Bg7LPtlUKneWuCL0ErTwnNaRbRA0bVR?= =?iso-8859-1?q?R0jmS0+mPRwyNOKDllTPktw/Vq7G+LJgJszRHraErt3/HgDoZzRy6O4H57y9?= =?iso-8859-1?q?Wc9zE5thlgE1vYg+ikYKg68lGpRExHNt7N1C4ZLs0b0iXhOhi6cMN7Hlds6A?= =?iso-8859-1?q?CLNNBkoL68wERvalTr7zrnoqiIQHFQRylwhbJJXN5b/bdNQ9pVEZBNkcpw1r?= =?iso-8859-1?q?lqkNgeR9UNwyKF2NQm/rF5WMDPL0FJblnXMXC30EtQn2UiguVBm8TNzHWSbY?= =?iso-8859-1?q?W3yhdcHQvJcuQk1pFQYrXjcshQrecDQcxIBA1S52AW5kRRtq13VNbAp6nFNl?= =?iso-8859-1?q?y/p8LbQw5SPoYIcYGdabxgDk38r6Vl80gYrxo74k3J17zbLT1htTOWFMd3GR?= =?iso-8859-1?q?RRDblptJVxVQPQUn4MypHqt8Mt1XKkgdk5Ni3vySkJ8f+GwaVp0vs4EEgHc9?= =?iso-8859-1?q?m55n+AsBbv/OQ7ElH504OAQuOlM+UFYmNRMI3BBcxj2oWjseS3kWRNh30NqE?= =?iso-8859-1?q?c6E4lfqfNMeR5hiQH6W1512lZCHn5kABlipZ2H2eb900C2jQOHc/7N/XcmOb?= =?iso-8859-1?q?a5+XqiLlbyQz6jE9fIrF7PAU3xJvPT0K8OScZG2iEvecB7kwbAHdwtwagTb5?= =?iso-8859-1?q?t4PSikcQSWesOwbYLgNf8AWufFel1RNTmccOwQIr1o7N9xBEyZ8XowD+dCnM?= =?iso-8859-1?q?153gEgnEtvMR7GyDGOL1G6jCyeSud9mR3BWw7vT48slEclZTSwK75zCM4j31?= =?iso-8859-1?q?WB9ZeBjYMzfDyuy5mQiHq4LExAtCAKMUrpuSXlQBjx1Jivn6XqLNduP/hVvM?= =?iso-8859-1?q?IhYlGANqm/oEZC9NhWlzl82uZ8wcYs8UMP/mOEo3/zamoNABxiFWUFUODpy2?= =?iso-8859-1?q?ebK8uT0vFWDOKN+P2bPnOpPEf34GaXGscFyT+BrpevBqkYTP8hxXSVdps2kq?= =?iso-8859-1?q?nNjxt5oml4QIo7NVsupnpCAl6lnrl3/w9TZzyZwU6g+taLBW8SOeV3YBKEXJ?= =?iso-8859-1?q?ubQPtF6FFYj5bDLKjLWXa/ZFh70LDQk2eVe9i2VGQGAvToTsfBEpSC4LT8iE?= =?iso-8859-1?q?hwNcg7L26KAu0pviLvNvpdtYrZZA6kUEkWDXdIiEaUFbP72YX92PqzOZAgoc?= =?iso-8859-1?q?BSB9caCa/alDr1JsU14BUDUb2AHI635qeMCE/Uw=3D=3D?= MIME-Version: 1.0 X-OriginatorOrg: epam.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: GV1PR03MB10456.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 44908335-511b-4171-8522-08dd75f3b971 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Apr 2025 16:46:19.9741 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: YLYjZPGS3isIz6umvGz6jBwXObgKjRJTDboND/9YJJBsWK1DJcp/74/Mcb07MLhsN0SmUVBvONEhV5Pl66FkisGi2+OhQzYPuFWIsXpBRWE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB9590 Condition coverage, also known as MC/DC (modified condition/decision coverage) is a coverage metric that tracks separate outcomes in boolean expressions. This patch adds CONFIG_CONDITION_COVERAGE option to enable MC/DC for GCC. Clang is not supported right now. Also, use the opportunity to convert COV_FLAGS to cov_flags-y, which reduces amount of ifeqs in Rules.mk. Otherwise this patch had to add another nesting level with "ifeq ($(CONFIG_CONDITION_COVERAGE),y)". Signed-off-by: Volodymyr Babchuk --- Changes in v4: - Slight formatting fixes - COV_FLAGS -> cov_flags-y Changes in v3: - Introduced CC_HAS_MCDC that checks if compiler supports required feature Changes in v2: - Move gcc version check from .c file to Rules.mk (I can't find an easy way to check GCC version at Kconfig level) - Check for gcc 14, not gcc 14.1 --- xen/Kconfig | 4 ++++ xen/Kconfig.debug | 9 +++++++++ xen/Rules.mk | 14 +++++++------- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/xen/Kconfig b/xen/Kconfig index 2128f0ccfc..3a723db8ea 100644 --- a/xen/Kconfig +++ b/xen/Kconfig @@ -41,6 +41,10 @@ config CC_SPLIT_SECTIONS config CC_HAS_UBSAN def_bool $(cc-option,-fsanitize=undefined) +# Compiler supports -fcondition-coverage aka MC/DC +config CC_HAS_MCDC + def_bool $(cc-option,-fcondition-coverage) + # Set code alignment. # # Allow setting on a boolean basis, and then convert such selection to an diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug index f7cc5ffaab..f89cbd823b 100644 --- a/xen/Kconfig.debug +++ b/xen/Kconfig.debug @@ -44,6 +44,15 @@ config COVERAGE If unsure, say N here. +config CONDITION_COVERAGE + bool "Condition coverage support" + depends on COVERAGE && CC_HAS_MCDC + help + Enable condition coverage support. Used for collecting MC/DC + (Modified Condition/Decision Coverage) metrics. + + If unsure, say N here. + config DEBUG_LOCK_PROFILE bool "Lock Profiling" select DEBUG_LOCKS diff --git a/xen/Rules.mk b/xen/Rules.mk index d759cccee3..e9e049368f 100644 --- a/xen/Rules.mk +++ b/xen/Rules.mk @@ -31,6 +31,7 @@ CFLAGS-y := AFLAGS-y := nocov-y := noubsan-y := +cov-flags-y := SPECIAL_DATA_SECTIONS := rodata $(foreach a,1 2 4 8 16, \ $(foreach w,1 2 4, \ @@ -133,19 +134,18 @@ $(filter %.init.o,$(obj-y) $(obj-bin-y) $(extra-y)): CFLAGS-y += -DINIT_SECTIONS non-init-objects = $(filter-out %.init.o, $(obj-y) $(obj-bin-y) $(extra-y)) -ifeq ($(CONFIG_COVERAGE),y) ifeq ($(CONFIG_CC_IS_CLANG),y) - COV_FLAGS := -fprofile-instr-generate -fcoverage-mapping + cov-flags-$(CONFIG_COVERAGE) := -fprofile-instr-generate -fcoverage-mapping else - COV_FLAGS := -fprofile-arcs -ftest-coverage + cov-flags-$(CONFIG_COVERAGE) := -fprofile-arcs -ftest-coverage + cov-flags-$(CONFIG_CONDITION_COVERAGE) += -fcondition-coverage endif -# Reset COV_FLAGS in cases where an objects has another one as prerequisite +# Reset cov-flags-y in cases where an objects has another one as prerequisite $(nocov-y) $(filter %.init.o, $(obj-y) $(obj-bin-y) $(extra-y)): \ - COV_FLAGS := + cov-flags-y := -$(non-init-objects): _c_flags += $(COV_FLAGS) -endif +$(non-init-objects): _c_flags += $(cov-flags-y) ifeq ($(CONFIG_UBSAN),y) # Any -fno-sanitize= options need to come after any -fsanitize= options