From patchwork Fri Mar 28 12:19:18 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Volodymyr Babchuk X-Patchwork-Id: 14031880 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 14238C3600C for ; Fri, 28 Mar 2025 12:20:07 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.930547.1333182 (Exim 4.92) (envelope-from ) id 1ty8gO-0006uS-CR; Fri, 28 Mar 2025 12:19:32 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 930547.1333182; Fri, 28 Mar 2025 12:19:32 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ty8gO-0006uA-9A; Fri, 28 Mar 2025 12:19:32 +0000 Received: by outflank-mailman (input) for mailman id 930547; Fri, 28 Mar 2025 12:19:31 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ty8gM-0006CK-Vg for xen-devel@lists.xenproject.org; Fri, 28 Mar 2025 12:19:30 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2062d.outbound.protection.outlook.com [2a01:111:f403:2614::62d]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id e5bf5ee5-0bce-11f0-9ffa-bf95429c2676; Fri, 28 Mar 2025 13:19:29 +0100 (CET) Received: from GV1PR03MB10456.eurprd03.prod.outlook.com (2603:10a6:150:16a::21) by AM9PR03MB7313.eurprd03.prod.outlook.com (2603:10a6:20b:273::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.46; Fri, 28 Mar 2025 12:19:19 +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.8534.043; Fri, 28 Mar 2025 12:19:19 +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: e5bf5ee5-0bce-11f0-9ffa-bf95429c2676 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=P8NvOlarJar+BiNnC+f7gRPfIsBBKi1zZvVTY1bxZg+QiAKYF007vXhMOD/TEetbUwWy8J+4nhLcIlcIuBcK9L0lX5EdRnWiZQXHHS9kLD0CbLHZJqYv5tGzXjGJGWst7evIzEWlj507aSGGKvaBLotVbKNsId9uFsIeW3CnhePugmSTYdOhGb/mdycvFjhISOclEhFjh8Vzf927ESZKbeAW+vaB6I9XRPP2fZAYF47KfbOtvxMiQ2wt1KBMs8uOaR74E6aV86jY/vmnqcnOrXWvHadTFi2MUvzYxDso1I2ptmaWol3ZNoyd3pLvjMed7n3ISzy1H9vD/C+bka9upg== 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=1QGXNEjm7ttDKmdBwGlsNjsh7q36VyjAuzP/PBSR9M4=; b=wzgbZiEKHCK5XonavSguj/w9gwn9X8A9zAHhe3jrhP6q9OLKGNE5ZEztQ/UwX+jGCqAy7EYp8z/UavNnK8FUoWhcPIKzBz3f3ggRFgi0ZK1JmO12NZR3iC7rpMXW481UovTHwB4ZEMP6wIkXd5DdJYJZGZaaSolIYIztuHAc1/ICk7HjENUbYA4GoCPYhDGz/OiCngzoVAGZbjQu+voSW2MDdqJhY4Ap7weMoNW2FdhTfFd0c3sT1ll7dRFgZpnl53BhabAHS88DArwdWHReesFNkqSfweBHysAIjjdnrlKK7HUe76qPVFqcJXKCkzyhtN8YxVxpUgnUylevLUNLuQ== 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=1QGXNEjm7ttDKmdBwGlsNjsh7q36VyjAuzP/PBSR9M4=; b=Wzem83yASdpsiYzomsR4fHTPgXwiCoeSidrefYqiiqZrPxcX8KocBRySlCpCeQ/EIx2XlmztxzM+chxQ8Ndv+AnzVnYbvSYaBMMlTU1DR1XGQReoNyYUUw7fqA+XMUkQAKqcaI55ZG2o4qmPb8OWs2OqyHlQVOGIBOfgJ6yag30+8DecO7B+WmXwST4CFeRZGPIvazXee0ouvvd7k1sTCkE1AyzNsO4EJzrv44/sVAcrkli2J38UpiSYjEVdLVU5Ch26NkZVRMakqXy8HGZjAV7SQEINpoQh6a+u8h4q1xf9S2jgEKx6PLuMyWDKnKmA+4hZYKkfO58+qGcrLZHO2g== 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 v2 3/3] xen: debug: gcov: add condition coverage support Thread-Topic: [PATCH v2 3/3] xen: debug: gcov: add condition coverage support Thread-Index: AQHbn9uhgPsYBM+3ZUSZ+mjdepz+rQ== Date: Fri, 28 Mar 2025 12:19:18 +0000 Message-ID: <20250328121902.2134020-4-volodymyr_babchuk@epam.com> References: <20250328121902.2134020-1-volodymyr_babchuk@epam.com> In-Reply-To: <20250328121902.2134020-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_|AM9PR03MB7313:EE_ x-ms-office365-filtering-correlation-id: e2ca2012-e2f4-4fc2-bb7a-08dd6df2c3cc x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?q?Pjc/pKIWk7r4d06k674jWDpUXr?= =?iso-8859-1?q?HieznNHVyFHysy1yocQXW/jlYNAR+meC4hfwcSM01rXnuAWXH+Ny6yZvF55t?= =?iso-8859-1?q?WpyUWYoSwqUwueol2sjOS5NeJW9+T5P1SBzuuD3n0ZnZK77xa05b4I8qYhVv?= =?iso-8859-1?q?0rdbfu7+6i6+mL1WRcbjJJBAZOzpPvr6XetZ1VIDLy8YkXkcLFNEeO/bgvB3?= =?iso-8859-1?q?qb06jSrb8v1Wh6C1BAInyfPIBWDdNJwKXuDImWXKxzmyeAyv+0F/c1xUcLbH?= =?iso-8859-1?q?UED77P6nWtPN7mH/dWL6zfHTCmA5+THMxBcKtzkEBzzHIqVS2/CIW0oT8BzB?= =?iso-8859-1?q?gZm0NZBQS3/toUwgdV+lNRCV258wP3tp5GYOzcXKegJIy1dTWIRYLMlxg8w1?= =?iso-8859-1?q?jwTJf77E+hvlVDGMq3y6aJrWne7Y5Qem6g10aATf6cYd24krRB/ti/ZJPbo1?= =?iso-8859-1?q?U0kO610AxOJpsVaKJBGIjuJ1KGgc362J5mJkK32OIqfhBwhhOvQLa14CZ6pR?= =?iso-8859-1?q?pWL18YC1p0vt02zlo4SYiBf0ZBDYZcaSj6aSzE2tuHthA6CY4CK5ksF7yW3c?= =?iso-8859-1?q?5m1g26TP+Xh+kKoCTc7UdRIeYLkVKlKdIJeL42/xasO+EkLphjIvcf+tABRk?= =?iso-8859-1?q?/orVDn12CCCG/BpB5mQ9xbcADb0h6ghnw4oV+RzEe/cBwW0Ji4grCscuYMt9?= =?iso-8859-1?q?jFA7Sq94XRVQ52v/fkykQcnF0F7Y3D2zjO2IpyaXzgRHGhfcP4lfkpTbNhfI?= =?iso-8859-1?q?cNlMdehZTj1jbo1ek3BNV7Plr3ccsxEY90h+1cW+dtfk32oxJZXfSDO13cCB?= =?iso-8859-1?q?A+vPeFIGspDlroHJN3X/Ut+6Nlxc+bgNq5ZOYbLjBElbMiQ2I97yrM62fO+2?= =?iso-8859-1?q?TNZd+PL2UUZONAcZG17Qf4/rsGWwfa4v/OoDozogqKOojwSsW1UAEFv5G/0W?= =?iso-8859-1?q?8GMzBz1Gj4j9GKw2ew4ffHu0WnsS6uhYNS1m9IUpZ9chdQ9z3lGPrF+RPCvX?= =?iso-8859-1?q?YAYtWyj9K3Jfw6NZCWQdk1NMT7Slac1C5k7vvQMrpjhEHJCvHjz/miT7vthx?= =?iso-8859-1?q?jbRXfyuMN4tZ5I/MjCFrEaJuFFpak96LSjViN+NX2Wz1GBVkK2GhjKKanntE?= =?iso-8859-1?q?iZCPr2MuqNkF9tBbefMtyzQbrg3oLn+P/z3LIc9soYS4k7MjylHCu5y2hkv+?= =?iso-8859-1?q?BlkuUqGedKNRm//yL8yZs7Lq7K7SPVVG5HdTf24aZihEKFlzQAYuWHBpx3Ew?= =?iso-8859-1?q?cGmN1hjXpQRFrQ+z+NXNVWxc4skubG9knfvw7bhxmCgMaBwrePZAU63xTQav?= =?iso-8859-1?q?OiEzMeNCiWFoDHN6Zg279y+08Qa8Sd4Sm+fUsQWKI/u8a65nFgcXEzVlFz11?= =?iso-8859-1?q?QCpvXJPHXZCrddv8dCvvw0ZaCotC+kqTjCx9a7bbu1jMjOhoZlYOxdl/Q1rw?= =?iso-8859-1?q?/WLj63Egnh9BvoOtQGKQLQujc+uFw171BRDoZzRu91wNd3/QS7dAvdMyHDz3?= =?iso-8859-1?q?1dHffF?= 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)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?4MDnG4ovEsHgYvebK+z8cOk?= =?iso-8859-1?q?sPAnaUAuidhOsXWWxzNwW9jSfsZq1xfmKwXDHBdzA9hnQ/WeHnT/6nv2uN8k?= =?iso-8859-1?q?/YU2uB1kqTSYyxRhUXL3Ifmrflj3ED6zA0O4qv9PenhcQL8APUoKKK/6EY/m?= =?iso-8859-1?q?B4bQde5XfWLzSaGlXqEWZy7WcnigiACOoguYnbZFJSSRLP7pDfvNY42l4QGJ?= =?iso-8859-1?q?eB0syR+i8MxCdr6pyPPb/e7VWUAJFzXnMRF1Npq2WETbZDzG3wWJqqDw85H8?= =?iso-8859-1?q?VcKvHHGSxTW6nC3uoUfXiyqRv6fGgTMxV6N7sDGbyRQYmY54IWOQv0JvF+U4?= =?iso-8859-1?q?12RLisbvbdZjkOFgABmnD0jf7AmuJUqD/gtk+QmD9joEOBiUxk+1dqUoKLG6?= =?iso-8859-1?q?X1RyysmEPJU3ryhvcVCh0Od2o/ZZsZdUVZsRn4YBN4u1yZPuMYMulBI3xpOg?= =?iso-8859-1?q?ciuNTqb2F8CazEW2jXQVsOg4Lfb+uOwkpS/UT3sdEC3Phwyiq1flsA+Fxiu+?= =?iso-8859-1?q?B2dKzCh5ND5ZHBeYTcNzUShdJZe825kOHQ4yQgoEuQfKRhSmK5AgyUjyzt8S?= =?iso-8859-1?q?f2BOjyGnqRZPFvsgtydDvJdX6qcApCSk2Cf6CI2t9qzdftqKP+M56eFlG2CC?= =?iso-8859-1?q?1Q6t1I2QwF6ZdH6gd8Q/aKAqjRfnRgDe1Nf9VVZFolbpsHWopZ4+ycGiUX7r?= =?iso-8859-1?q?IFT3LqLHJa+t/Uv2KqtCKN13ZDxGeGBd1izUpY0Ug6fT8a2tEgOZJiJ2UAHN?= =?iso-8859-1?q?+Uc/kv4zE+sQ9WfMnR80uGHYZAJWUR8sdfhiiI51IPYB+bhO+rhswToc0b/I?= =?iso-8859-1?q?R+RATXXSzzwj35RUecOYKuojL9+xXBeetzEFZVbDn/J5RFEni2EPJuZpyTKh?= =?iso-8859-1?q?G1vMrUe50kMVzx+bYBF6K5YiKCBf5ATX+57zqNvNAWWtRDWOvudFqcqkDqPJ?= =?iso-8859-1?q?mJpIakYbfw6n3YesEG/tsP5+QzeR67XMK/oSl8W7Xhf3DSd11UhHOaOQ/PLj?= =?iso-8859-1?q?gk2y4VkeXHSktL485vz9NNf8TVnStAKfo3bPOr1MxSJAkvikFlEe8GCDCiun?= =?iso-8859-1?q?8o/Vxz8eqtoWmH51IN1/dmK11udAyRIE0VZuVcM8q6ZH9lE9aXjXcpr0w2HS?= =?iso-8859-1?q?Z0bowdezx29X4LDPzW48zZtz+alLxwG9G+Jui79EqfZrgM9PSZi4AdZZlX3a?= =?iso-8859-1?q?m1J0rNDZfSmT7hEML2zpC3XTW3IqjrTxguWXdWuYIKbOgzM3mUYpfCevkAgZ?= =?iso-8859-1?q?HcfeSn5tyHv2J3yUCqPP/jhpEPGbElcHutN92E2OPlspu0y+vE7s6wDmGY14?= =?iso-8859-1?q?ev4LbufqvtYs6fGr4gTO3W9zRjwk3V5ic+wNTR8/YEzkdmSapGdAQH1QOtN8?= =?iso-8859-1?q?qQs4cgp1CTYGFDmiUD55H6JoD6OnzwE4WdSub0xRgC07nF0T2U6WB8fQtu6m?= =?iso-8859-1?q?JhtICCBW8xLmHgy50OSbG3k2frERVfuem6xM9hgxSG9SckNmZD5HJeSIZoPL?= =?iso-8859-1?q?+eWh16lQZeN5gZLGrXLOwglt2Acn0vLFpVT1IXdWyo3/BX7HgVK+2iZ8kKOO?= =?iso-8859-1?q?aCpt6igbZArZslcB57XxQShnRSpLPsdCpD6ibu2KaWyZiUg0kUKJ1CwlPlgF?= =?iso-8859-1?q?nsAhSzNq5B8uYqaZ5l86HmR0L0VTm5Rjafgn2wg=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: e2ca2012-e2f4-4fc2-bb7a-08dd6df2c3cc X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Mar 2025 12:19:18.9969 (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: LbByMNeZ44eJev52IjwiGTezUkXZWEeEv54t75RDNOlPb6BZeIJmxl+TfAfo0laAwFemkFpkw1oDQmD94RiahWyyTvnfg15a3jVseP4a4bU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7313 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 --- 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.debug | 9 +++++++++ xen/Rules.mk | 7 +++++++ 2 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..b6f83caad0 100644 --- a/xen/Rules.mk +++ b/xen/Rules.mk @@ -138,6 +138,13 @@ 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) + ifeq ($(call cc-ifversion,-ge,1400,y),y) + COV_FLAGS += -fcondition-coverage + else + $(error "GCC 14 or newer is required for CONFIG_CONDITION_COVERAGE") + endif +endif endif # Reset COV_FLAGS in cases where an objects has another one as prerequisite