From patchwork Thu Mar 27 00:40:51 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Volodymyr Babchuk X-Patchwork-Id: 14030659 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 46E7DC36010 for ; Thu, 27 Mar 2025 00:41:24 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.928335.1331079 (Exim 4.92) (envelope-from ) id 1txbJ2-0002xJ-Bm; Thu, 27 Mar 2025 00:41:12 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 928335.1331079; Thu, 27 Mar 2025 00:41:12 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1txbJ2-0002x5-8Z; Thu, 27 Mar 2025 00:41:12 +0000 Received: by outflank-mailman (input) for mailman id 928335; Thu, 27 Mar 2025 00:41:11 +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 1txbJ1-0002GY-2z for xen-devel@lists.xenproject.org; Thu, 27 Mar 2025 00:41:11 +0000 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazlp170120003.outbound.protection.outlook.com [2a01:111:f403:c200::3]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 2ca53e0b-0aa4-11f0-9ea3-5ba50f476ded; Thu, 27 Mar 2025 01:41:08 +0100 (CET) Received: from DU5PR03MB10441.eurprd03.prod.outlook.com (2603:10a6:10:516::14) by PAXPR03MB7698.eurprd03.prod.outlook.com (2603:10a6:102:204::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Thu, 27 Mar 2025 00:40:53 +0000 Received: from DU5PR03MB10441.eurprd03.prod.outlook.com ([fe80::eeb8:470:6260:e5f4]) by DU5PR03MB10441.eurprd03.prod.outlook.com ([fe80::eeb8:470:6260:e5f4%5]) with mapi id 15.20.8534.043; Thu, 27 Mar 2025 00:40:53 +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: 2ca53e0b-0aa4-11f0-9ea3-5ba50f476ded ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=P0eKmNW5+C4LCYhzi72QR6kHQ8mS6yP+quXeRTBxQuyWgxm85gA7xozF9y9cWJboSgChIwi0ag/sr+Oi7E25ZT+dOB/4n4U640EoWUowd86wIEluAx94DeRVfgaE30+2iev0bL6yGFbTFHdzDXE9EEVf61r4OTWXsEkzrOsgllTuyL2g0k43U26bTRfUW0ENvJLeso9M5HfVjX3Tsa63IUHF+1yRcY2ReYsIvGtnxWhw9ySGGxdNi4fMQeToim1fCceE37Zf4I2+2PqkMTZj5vBa82EOtPkws5MEkFo+yYjSWSHaqI565ZdJ7B8R0G6W/UwZqRck6/xHogENpTsVDQ== 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=1K3MmhtzYn9ZPBR2hv+3NHFuXqvZWBepKWcFj7+iASY=; b=E4irhX1N3iYRgA4aq7SygNw5egIiiGo8lK9gwzGsERBxZL4mu9V6FlAFxR3dXmWim/xfwCT5I1A3phviho0nZXQ3jwuBDWRHRhlmTBvvSsDLD5h0vyZVm9YSZmN4leTe7M0Zgw680/DbEIMW5+rQUZAnUrOHYJJU/vPrIZt59v37sgiZFzqnryGi50jiq4bv4ujgFlJqeibwbifGllo0SO88GSOU4aBEXVrZ6udvdNc5KVQ6HV58Dyh2d5+CY/7XZkckdkpjbZBHQPVOqOPq2SXZdbSyf4RSLgTss291yBaFtT6VRTGEMHyb7K1HZX6ZRa7IFVHzjpwYXcaBdvTo3A== 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=1K3MmhtzYn9ZPBR2hv+3NHFuXqvZWBepKWcFj7+iASY=; b=CwHr016ns5O9HMiQkVqIGKurQc6UPLyReLY7Ylss2+NyKfkCkm1O8dwG7SW96nrj7Cwx0f4MZC1/dPWgwC2Pueq7X9ijuyxBYwJADj5wSXkXqZDq4tcZ1SOMdU/H7lCtnwzAZV5D0ZijUfFI1S48ahxii8k2SMj1/Jv8ynmak1pbkvWmdCIHXWMIbffcwUxKpcGTogOJFJcVK2uJeoEr8iAxcjnAXbqKAUO6AOhMm4HdfkYIqNicqTqanonmjPdHDz+FNK+guSY+pLpIRXSMv1aRo2/vZ7MfzZ/BmAbGmgtQB8OHr55fYx8epkIkZpx9+dS+UrT1IT4m/R2aCMl4XA== 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 v1 3/3] xen: debug: gcov: add condition coverage support Thread-Topic: [PATCH v1 3/3] xen: debug: gcov: add condition coverage support Thread-Index: AQHbnrDjCZFHUEqigkeOtdvfE9127A== Date: Thu, 27 Mar 2025 00:40:51 +0000 Message-ID: <20250327004044.2014048-4-volodymyr_babchuk@epam.com> References: <20250327004044.2014048-1-volodymyr_babchuk@epam.com> In-Reply-To: <20250327004044.2014048-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: DU5PR03MB10441:EE_|PAXPR03MB7698:EE_ x-ms-office365-filtering-correlation-id: e981628e-2b7d-4a61-1853-08dd6cc807ae x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?q?XqcutFNOr8lCnB9q3OF0kBXg1S?= =?iso-8859-1?q?BCaEqgjInoEn+GEAMqk1RJtfMId6RpdRMhRUHbDjKxXHLUt7WKvjVk0CYweR?= =?iso-8859-1?q?TEHmVuGPnIaTbFyRmE2aEqPAbb9U9lv7Fu3cY3j8ojbEQJaN0g4Xr0r5agKZ?= =?iso-8859-1?q?ue+ntzPs6/anU0Nx5aylIXP/nGdJFqSG7xnxhsl7HHJnJzY7gOlV33kjIeni?= =?iso-8859-1?q?x0oi7o6+1myuwv/6fEfjEx4xwLy+3sAAw3VB3RqXH6Wj8s2warTCLHYfAQun?= =?iso-8859-1?q?QptEJzfb2V6fwaGyMKeQMTDTwY/h9ha0KA9jr9yp/l/iLSzZdOuVyWZ5rXcn?= =?iso-8859-1?q?yIJfQL5EtBA2PfSBSvXNvgZh9PfiuQiNDGC5/jvJ1S4IqO10LxwCYRoU9eVp?= =?iso-8859-1?q?rNcBvxY5DCCnYtwotYxXQnY1OygbYH56rb/vxOkxgd46OF0UpCNbLNCA02Y1?= =?iso-8859-1?q?eNpy9Yc4mCKymANZxmlH5TDOu06XBKOfv9yaTmpeG+YHn+ICIWeqhdXNtq+g?= =?iso-8859-1?q?67LudpecJ0PN6IN0Lv+lhoCXcU7QPtaozuDYLYSDJLvN8HcSw1AYO6Ydo0cv?= =?iso-8859-1?q?g27rbGYQueg0QH0kGO7l5klcnEGG0n25tlNaK3WHxE3uEGdUukNSFp4iYp9C?= =?iso-8859-1?q?QPC+L0Xy7v5oan5Ku/f4KUw8Gw8ASc9jG0M6ivCxdj3aQvnONqDLkCUcNiF1?= =?iso-8859-1?q?qaGD5ATPvjYazKD3XB3N0VENwZpu7Fiz4WIcUgDh3OaaLta8GIYtU5M5nncg?= =?iso-8859-1?q?NaDJsIIvBRLXT5vNf/POj83UV4cxdEtjCDWQmh1eCKRGyxsmXG/uhkAB4+JU?= =?iso-8859-1?q?NQQsAvCx6WXuQ4SrKqRUlVCPKqeLixTtClpJubN3lfeIfYbpkbzYvciBbBHu?= =?iso-8859-1?q?jC2Xy60PwwGpNXU//0nWOUuxZ+FU3R1T9VFd1tqBs7hGLjVvgn6CJw+s9vg1?= =?iso-8859-1?q?o1hRVAcb4DSIluWbACUeuiW6HnF7Kr0kykBLT38NVwmDwHdaQLEqR5hqUBi0?= =?iso-8859-1?q?drl39hoxS6nXwrOwcgwIiSZG0e+5fIW1SgXILbqtI47hjjTsdoE9rbcmstBl?= =?iso-8859-1?q?X2kquRw54g4oLXkTLEgDtv5fwyjXLuyFgz2tFZ4L03ZK0iaghxFMg0rrHNf1?= =?iso-8859-1?q?eOHbua08NCbhIb0qEBz5OnmorClibA1ts9qBnFB21v6m3AyWGf5VTDZsUTzq?= =?iso-8859-1?q?ILF8s3A9x2eriZdyDeu4X4htB/QlaCQaW6fPXdZSI/zvTUiyEhg6dytyyICB?= =?iso-8859-1?q?uUU6HAma42cSyO0IE/l2Ay0+aN9xsYhP5Qa130ZPdK7cP0N0zwjKFAXPGFVB?= =?iso-8859-1?q?ACEQ3a1ourbTOfdL0Zqh6L+tt+sTwsrtEvDUdgBO9w+uBgNVlBSKC7VvYRQW?= =?iso-8859-1?q?CctmWiVKOQVb5ZdDMAk/8ANua1rHpo1mBUh6xizOBoNwP7HrTRMbNfanOvMf?= =?iso-8859-1?q?jgxNQq82oZAtdJc2qsJhEmFAJVNJL5sMA02ryjlpgfkjZUHKs2BxgllNCsMW?= =?iso-8859-1?q?h1tK/2?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU5PR03MB10441.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?3HD0dS3IcOHR3wGnRHVbkCy?= =?iso-8859-1?q?lCnAI40CEpAw+M8rFfYaViWC7lBlqWE9kGbDxOnY2BI12IuXUUUGlYUyhVPZ?= =?iso-8859-1?q?Ejpw8gLNNGmG9kYP0vv8hsI9e3+GCatZ6+Sg0LIhejHBdZqyPNxoyMFjEJL8?= =?iso-8859-1?q?HRO34igEdk6AWnkKKO0hcVR0b15uCmbkYdSlF0x0T8/5u4qgpbjlqvD+P6yU?= =?iso-8859-1?q?G3fWXPRAUpntE8dXm7VaVNjzXVkjCkrshUEW+8jllt6oA7C36NUt8ghFhLgW?= =?iso-8859-1?q?99D6Pw4XMUl0ohc8fuNgmMb7mVLUW3sJOCmEyaMpiF5bkfZ0QaAM7Y/SZ0db?= =?iso-8859-1?q?TwKBHJZH+jAag7LOME7qhl1GQkM7VbpwF+QRzIxETIUmqo1vOT7R9hB/A41s?= =?iso-8859-1?q?v5z9Vvw5hAEGflV+FKw03KzW3GMRCjTo/UsPhgLjtlu3IbGDoaEhHpfP3ZSk?= =?iso-8859-1?q?EdZgESeLixHA69g01YHWKgmsu45Z+4oarU+G9mMaHT+g4hmMTZ5U70jrfhDq?= =?iso-8859-1?q?dkSYfhCNAk8AcofvWc0pqD3HMEcWJNacLWmWUHsnDN0K6+JgeRxvxeSa1QMe?= =?iso-8859-1?q?713m9L17U0Mao/djLIauAzOBhQ5AJ5EUD3VP8Sd7KjRXes47g142w3FSmr+F?= =?iso-8859-1?q?rZQuQ1IIL755k9aOqHkeX1SjgD+JtIcx68V9c7F+RJH7Ny8Q+3I1iBB9gt4s?= =?iso-8859-1?q?cTDtSk1nT8gy4G9e0AIU20LG9t3P/Nc1j2b+A2YDTm9NVLmSWWDw051JfLai?= =?iso-8859-1?q?x1786WQplPInwbtcaF6owq2REKLsMfbHKwWM4MnaWigg8bE1BR5w0MJOgVpN?= =?iso-8859-1?q?oi3pZ31yZrM9/jIOLGv2MCvfRU7uM3q/pJ2d4Vt5E6plwCBLEOjYCiqBfQOW?= =?iso-8859-1?q?JPZR6b1QFTiHyoS25hTr574mBoIsVupjFuVuEI4NEtDgv/NX/bdOt/cQnVu2?= =?iso-8859-1?q?I62hUPKvrMyb1pVcWCDPfeysSYXOtQhz2R5wlQULFU5EZ3XijCOkvgTKD8jN?= =?iso-8859-1?q?ywtut7KUry34lz8LmCWMBv5jTShgtdwT6fGnT22jXr+2nx9KGGkMRxPs6kLG?= =?iso-8859-1?q?8qBfR//Jf2D9tbc1H260SEBnVE31utpydlWtSTGHK62Ee5waFDfhYr0VtY41?= =?iso-8859-1?q?1/8O9uUyBfhBb/Vv9kKIjcepVAr6g1/7daAfE8aSVIqLV3p3aCzwYCGO2wwn?= =?iso-8859-1?q?A9Fg26Rt0sSU60fzgLsSA77XHQXCnfaej5rNI6XIPpAWmUNIX0BrmYDbcpfr?= =?iso-8859-1?q?4WWFf0txIEVfnzqVXJtx+fbq3kxy5D9I2NBezjDVoND3PM2BgWo4L17e9+T0?= =?iso-8859-1?q?N3SY+LufFks/2FYQd/V8ae3jYlRmzQTw5uGIIMnbeKH6UsBT7dDM574ZBoiY?= =?iso-8859-1?q?OiotAT+/3FpTOzN2yxWkkXIvB7FqLXg847kgZssH+vEGEmc/+yRqbWyBCMDT?= =?iso-8859-1?q?x6/JbaObBvT7y0dMQJKbTY+r0uJfhdpxyBrV/ZiwhFnGcbZ9/M7Z1uARrGfT?= =?iso-8859-1?q?DDR2MXC6mAlNdt1F/a0c32b51+X+xf13ySw82ojmwawGWmDTSxC/yFDyw6+/?= =?iso-8859-1?q?2kSk7DZXZ/35S7dkdiqDkuBQwgVn/m08armkyzvEdhDqNfEmlX4VrT/PtDfF?= =?iso-8859-1?q?Nm/M5uKUW2jNxkRdepCvg6Dx6fRRS6Jto34Byqg=3D=3D?= MIME-Version: 1.0 X-OriginatorOrg: epam.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DU5PR03MB10441.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e981628e-2b7d-4a61-1853-08dd6cc807ae X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Mar 2025 00:40:51.3936 (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: KbEtfYveFGKTRPZWx907UQNvClYJ8zTk5ijuklFQmHhlHjifHqbQgCK1m2mnlfaxUjN0p9Vl7NaS95XP4D8u3t6obT77EKoRIu2KB3bmWug= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR03MB7698 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. Signed-off-by: Volodymyr Babchuk --- xen/Kconfig.debug | 9 +++++++++ xen/Rules.mk | 3 +++ xen/common/coverage/gcc_4_7.c | 4 ++++ 3 files changed, 16 insertions(+) diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug index f7cc5ffaab..7f758d221b 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_IS_CLANG + 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..0a2933cffa 100644 --- a/xen/Rules.mk +++ b/xen/Rules.mk @@ -138,6 +138,9 @@ ifeq ($(CONFIG_CC_IS_CLANG),y) COV_FLAGS := -fprofile-instr-generate -fcoverage-mapping else COV_FLAGS := -fprofile-arcs -ftest-coverage +ifeq ($(CONFIG_CONDITION_COVERAGE),y) + COV_FLAGS += -fcondition-coverage +endif endif # Reset COV_FLAGS in cases where an objects has another one as prerequisite diff --git a/xen/common/coverage/gcc_4_7.c b/xen/common/coverage/gcc_4_7.c index e3ce69dc2e..d10a16c9a8 100644 --- a/xen/common/coverage/gcc_4_7.c +++ b/xen/common/coverage/gcc_4_7.c @@ -43,6 +43,10 @@ #define GCOV_UNIT_SIZE 4 #endif +#if defined(CONFIG_CONDITION_COVERAGE) && (GCC_VERSION < 140100) +#error "GCC 14.1 or never is required to generate conditional coverage data" +#endif + static struct gcov_info *gcov_info_head; /**