From nobody Thu May 2 21:01:47 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=virtuozzo.com); dmarc=pass(p=quarantine dis=none) header.from=virtuozzo.com ARC-Seal: i=2; a=rsa-sha256; t=1642451794; cv=pass; d=zohomail.com; s=zohoarc; b=m9UmzZOxK1Ff5a0+IKX5otKMl2+5PVi/XovHrG9Q3lzwZX7R1XHLefvCn/c6M2jgLgwNqKCYJQ2SDQ0jZqLV4s8JXKxuAEJGr+s7yIiMAmSFV9S2hRLKkVwkae1xZy1vJW8anHSubGHl+bdlZVeANGy3PFZnPEAsS3JMMEUN+ZQ= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1642451794; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=BDwvLaRDASiBcfXBdY961IPfvAM9042F6XrHquKdjDI=; b=AU6eFLcpKSkhIXOXuI6a0GA9yiD5lIKUYvzPEtrmNMjd/UX5bjiwsd5jBQP0dGnfB/VPLijJ2dgK4lU+qtKx+9QDQGnew+LPR5OWEW5XV0GrxKxhEerqdyAh/211fUgnP59YWaJBq5iNfGlqn4/uMI2R0Edv8j1dbo+IKfwFm90= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=virtuozzo.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1642451793882109.55158347916915; Mon, 17 Jan 2022 12:36:33 -0800 (PST) Received: from localhost ([::1]:50020 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9Yjw-0004Qo-JN for importer@patchew.org; Mon, 17 Jan 2022 15:36:32 -0500 Received: from eggs.gnu.org ([209.51.188.92]:55640) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9Yi7-0002fg-To for qemu-devel@nongnu.org; Mon, 17 Jan 2022 15:34:39 -0500 Received: from mail-eopbgr80119.outbound.protection.outlook.com ([40.107.8.119]:15504 helo=EUR04-VI1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9Yi6-0005XV-0W for qemu-devel@nongnu.org; Mon, 17 Jan 2022 15:34:39 -0500 Received: from AM9PR08MB6737.eurprd08.prod.outlook.com (2603:10a6:20b:304::18) by VI1PR08MB2957.eurprd08.prod.outlook.com (2603:10a6:803:43::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4888.11; Mon, 17 Jan 2022 20:19:03 +0000 Received: from AM9PR08MB6737.eurprd08.prod.outlook.com ([fe80::b435:c0de:ef6b:5917]) by AM9PR08MB6737.eurprd08.prod.outlook.com ([fe80::b435:c0de:ef6b:5917%7]) with mapi id 15.20.4888.014; Mon, 17 Jan 2022 20:19:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UveZEBSQt+aOlatA6Ga5uqghnxAPtpPznNeDvkqbTSb0mYbJv5m4ESHRYQtKuvi+Y6lfvCAvkb7vl1qMZpwFVtoG2BAT0w4zNgIE3DSZR4Q2eQWjUeA0+aRyolhMoajtnZMA6rRJrdsxqsWEGa4XWKWckAAYcErKmkq+4Q/bDq4ZXztzr6cK6QJpYebC3L294+CrnxMfBQpmTL2NFiVO6EKNE4K6RO8sSOSO73IxewKYvIwQebXrK+qjmlZ9Cm6mnDdEZGmipb7T0/1KDqWp6cwG0hcPIrQnsPlt74OK4GsyeM+ZuMZ/CV5TYQNKsWTgsyythlCd0Db+n321iGOgxA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=BDwvLaRDASiBcfXBdY961IPfvAM9042F6XrHquKdjDI=; b=VVsDFHafK+T47zLfDB8SfkjnUfpU0USRpaL/k+FVuBALveh2j3c+eFiNpYT/rKpGk6qSDDbzfYJLylxxW932KWPGJ0l0n/wOokv21rvuD3jefcOwDHjJzE53n6O+cHGmTP+uTSTnM64TdaFq9293yT+rK4jGFqeLaC6/OwndJhQRAwNt4Bf8aK5GFvTvIT1A+HeeX7+p8Dm7ZDW9/cnR6HYZ7ddizQp5l2q0yHYIQ1KO7SHxd/iaQXtQiwYfq5MeAJr/RQKr30kiu8uqiES3rqvcjXGhw8Riz7E0R2x/Kdmt2xWNz9h7H2HePEp0G3JDFLxZ9j2AED/og6wpMprY8A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BDwvLaRDASiBcfXBdY961IPfvAM9042F6XrHquKdjDI=; b=p6KNn1XJ29s5W8mkO7hmRSHSdSfbbEL1LBSsX8tqk+qBYvejB2Dlnjq4EDpas0uO3cFgDRkhepIZYcKwoT81yFHxj77sjQcHmD89BnIAsgEqAJZK6CsRmr/ikcA/+RK4dLq2Zsz1XrkXysGMz0YWp7VxZhDJhnQEIsJ8XUP/nfw= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; From: Vladimir Sementsov-Ogievskiy To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, michael.roth@amd.com, armbru@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, hreitz@redhat.com, kwolf@redhat.com, pbonzini@redhat.com Subject: [PATCH v3 1/3] scripts/qapi/gen.py: add .trace-events file for module Date: Mon, 17 Jan 2022 21:18:43 +0100 Message-Id: <20220117201845.2438382-2-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220117201845.2438382-1-vsementsov@virtuozzo.com> References: <20220117201845.2438382-1-vsementsov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM6P193CA0069.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:8e::46) To AM9PR08MB6737.eurprd08.prod.outlook.com (2603:10a6:20b:304::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d4da2df6-75ae-4dbf-22cc-08d9d9f69a9c X-MS-TrafficTypeDiagnostic: VI1PR08MB2957:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:376; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: hqEZJYkR2WDksdLsvzi8CGSumIOJ47+gvcejRQU9yelgQ2tbmlqmxkFBR1pJfLVK+eZFX0bW1svO88S2iBBz50nfLKiGql0OnaZDDwdOJ06xYQubyMWyq1uLY8A+M+zCOMv/4btIePmF+j5/KCpimI1tiifzADUd4aXCs93rY4TkluvkCu5c0ebXHDXCxYvn9FnDShp6jV8sLDAtSyj2LGRvJov9M/S51MVin1stC/l8MR736iI6cvU5krotEj9MPe4eSHa/MC73bzC2ZeMiaK/8xhesM+g04vl9798RUavQd58TVWlUFpGXFTC9J3BTyjBPPLpM6fSlreZ0063iXTv70IpB8GXVwTIyGTLGrhLrhN7yb3d406RAdGMyppAg9qpUyy/Ok9mVJBkGIAKzmBdY8iwOLG0XYYaDaRXjLSPPphyqbUqicUw0+tUbJ9QjXl67TGL2433FFGDDwG883kyu9P9L4FQCRo/FB8SupDXSfr6K2wzJK4b84u/V3teSEK4GQ2bMT0NSyn83u5aZJJ3F8KOiSNwsCft6lwxEZsZWV8fwFW1K7ByFfER41hcom0KQ+hxTKXPk4autdg5cUbzVHs5RRHA9Df6DUZxi9QfJsOQyqACsDUWp8W3IxnR+PGwtTou/Fu160TKxoousC8de0q7gy9Pm1KnQu3Aj8z2TdXTWvEONORGTomWfqGZ/ADnJfCS8OnGyIURMJNgw9pJn2xHHD9/9SoCIdRHtfME= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM9PR08MB6737.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(36756003)(8936002)(4326008)(86362001)(66946007)(508600001)(26005)(6512007)(6486002)(66476007)(66556008)(52116002)(6916009)(2616005)(186003)(38100700002)(38350700002)(2906002)(6506007)(5660300002)(316002)(8676002)(1076003)(83380400001)(6666004)(142923001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?cXeZ++kgKeQJlxRXUrZhtlyGqUrVmUvznLHp6B8rBryTvUDAu81GHMt+d2nu?= =?us-ascii?Q?E6PCEiUkWBfD5I2iGooZAhxzUsnISDAuhGnVViq6n0KM/lJdmVdxRFrH8I/p?= =?us-ascii?Q?sMJcwK2cHAvIuCMkmqo/375K4twRCA/bxkUKilI2LSB7YQgdtayeUZUWeuTU?= =?us-ascii?Q?7nBoBS7pi/oaDfYfK0QcLO6dqtyCppWRaoGyGQlqfzpfvRLP1V21cfkkbMxc?= =?us-ascii?Q?th7QQF1ri7mlu9qQICg3Z0gBjyj53+AX+yNwzmWsrB12OKsbUKOwns2v46r1?= =?us-ascii?Q?hCkcfbLXcZNvcDEbTG86mOYyg/a1EWXGCyqKoIXfKSo0DV3LqqrNeWD4eeRZ?= =?us-ascii?Q?H+SrCLHOG0u6hYvWoL1RUDwHB+4xjdBDt/IRzSA+4mL2AfQ0aKioIdMKBsT+?= =?us-ascii?Q?7yVc/z4QkEr8GFnDKtvfL6FtRuyoS10e2iCSYaWX6Q4dEy456aSQ55YOOIOO?= =?us-ascii?Q?rtUGOKsMik7RjnA/d9TiobGCQz0tWAB4NWsPwQEF8V4Zni9uccYrQgZLZdiR?= =?us-ascii?Q?2Ie2suIHFmAIGn0wRj5tx8g8ApPeadEGSFhfeV/UV6w73fbIzSjDK0E/wq21?= =?us-ascii?Q?ELQ4s6zduxW1UtneIJnhpedUM2H5u7V01NBW1/W3Fbvmv7fib54odnwSt3g3?= =?us-ascii?Q?HBGd7yxDxsBwpd80c+a54r2P/Y/kFLDh1rzry3RJw5j0HJ4RcBDHCeDcCyfP?= =?us-ascii?Q?g4RYeRKERXwGlBpwUI8NvoWrSC56Ic8gcGNMUYwoIBjW0XU7aFUHhEpkAPSg?= =?us-ascii?Q?Px/wP3MxpRvkCYJI95t8BWUiGP271Rju1FT78Fl/N4578DijH3m334kjiRrp?= =?us-ascii?Q?6bS4J+hh/zwV3xjlUwMR9qPjuKmyGQ82gEYYgWG4DeHCk8i1dvIoHEofvPej?= =?us-ascii?Q?ByfgjSxlz2de92vCa+lSSiFT4QZf10Cld5RX32zbTnqceoBQuMZLN/J0/znk?= =?us-ascii?Q?nIlBHI2L8/ro+A1RyWemeoAUOu1HlIx2pgteomVQWt3vvopILzVWZEGqtaeY?= =?us-ascii?Q?UU3c/57+mFAgm+4pLRWC6ifMS711Ym9HMj+9xbD+0rdE5xYik8a9EREmBFEK?= =?us-ascii?Q?AcZnzAM9MQ6cr8EYEYSCd1HwCVbBQXfFuZhHKgBm3HgnIStiG0OzIt2BCB0+?= =?us-ascii?Q?842y/JcocEvLwmahtrKRYnpqNvqbyx3oBBZfHhz5vxYNiwLPQoZxQ6O/ziFw?= =?us-ascii?Q?lFqHAjPPtIl2xwBq3CzAte0XwxWutS9dvDHHQoLhdKArqU9tJBQhwFP+IbK+?= =?us-ascii?Q?NrlBHGGdWkHPsrx59suA0IaZYiclF0K6Y/EwIMVX8NltmuzP+N4EvXfV5EOm?= =?us-ascii?Q?Z7foDl7nrNTTlSiSomwvPaCAk/B3jx6TKRIw4ErU7zAaqvCrGz3VHrlsYcEP?= =?us-ascii?Q?Tq0CZAuO+zfrWIahoVvEVZeZunmr6hgMGSzyCkcONt9UNVZKGjtLLBWq+GpR?= =?us-ascii?Q?pnSqlRqxAFxOK3qtf8ARYxwx52Gs80zxSNAAT3hDc0ylhIhGvIKFLwRJumMt?= =?us-ascii?Q?QgTtRPZDc2v/2d1bXyPbAeBJmaVZQHb2xUMQckm4TKY+4NF89gArbHDlGu2S?= =?us-ascii?Q?Xn2sXQOXq2y5sIC6QZwbXm61UxgMs3OJRT/N/9Mefa1PngvHFLRJIX26XZRK?= =?us-ascii?Q?99nMTByslNUInfgg6uJbFhiG4EU/AEKvMOPjWKce6WR0je8BIlJRSmjmONyb?= =?us-ascii?Q?ORc4FgHnNRqYTeJFp9Iqme0lkG4=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: d4da2df6-75ae-4dbf-22cc-08d9d9f69a9c X-MS-Exchange-CrossTenant-AuthSource: AM9PR08MB6737.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jan 2022 20:19:03.4692 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: AqMjUNc2gUBAeRZNu/f04329nFlAC5WDZZ0NRRaFw4TVTrhf53XTBFUNPg6w0o2fS9Dp+RXeNtoUFGuFKVcJE5OwFsQ8uZDKBNu2uL5Ky2c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB2957 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=40.107.8.119; envelope-from=vsementsov@virtuozzo.com; helo=EUR04-VI1-obe.outbound.protection.outlook.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @virtuozzo.com) X-ZM-MESSAGEID: 1642451796426100001 Content-Type: text/plain; charset="utf-8" We are going to generate trace events for qmp commands. We should generate both trace events and trace-events. For now, add .trace-events file object, to be filled in further commit. Signed-off-by: Vladimir Sementsov-Ogievskiy --- scripts/qapi/gen.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/scripts/qapi/gen.py b/scripts/qapi/gen.py index 995a97d2b8..605b3fe68a 100644 --- a/scripts/qapi/gen.py +++ b/scripts/qapi/gen.py @@ -251,7 +251,7 @@ def __init__(self, self._builtin_blurb =3D builtin_blurb self._pydoc =3D pydoc self._current_module: Optional[str] =3D None - self._module: Dict[str, Tuple[QAPIGenC, QAPIGenH]] =3D {} + self._module: Dict[str, Tuple[QAPIGenC, QAPIGenH, QAPIGen]] =3D {} self._main_module: Optional[str] =3D None =20 @property @@ -264,6 +264,11 @@ def _genh(self) -> QAPIGenH: assert self._current_module is not None return self._module[self._current_module][1] =20 + @property + def _gent(self) -> QAPIGen: + assert self._current_module is not None + return self._module[self._current_module][2] + @staticmethod def _module_dirname(name: str) -> str: if QAPISchemaModule.is_user_module(name): @@ -293,7 +298,8 @@ def _add_module(self, name: str, blurb: str) -> None: basename =3D self._module_filename(self._what, name) genc =3D QAPIGenC(basename + '.c', blurb, self._pydoc) genh =3D QAPIGenH(basename + '.h', blurb, self._pydoc) - self._module[name] =3D (genc, genh) + gent =3D QAPIGen(basename + '.trace-events') + self._module[name] =3D (genc, genh, gent) self._current_module =3D name =20 @contextmanager @@ -304,11 +310,12 @@ def _temp_module(self, name: str) -> Iterator[None]: self._current_module =3D old_module =20 def write(self, output_dir: str, opt_builtins: bool =3D False) -> None: - for name, (genc, genh) in self._module.items(): + for name, (genc, genh, gent) in self._module.items(): if QAPISchemaModule.is_builtin_module(name) and not opt_builti= ns: continue genc.write(output_dir) genh.write(output_dir) + gent.write(output_dir) =20 def _begin_builtin_module(self) -> None: pass --=20 2.31.1 From nobody Thu May 2 21:01:47 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=virtuozzo.com); dmarc=pass(p=quarantine dis=none) header.from=virtuozzo.com ARC-Seal: i=2; a=rsa-sha256; t=1642451899; cv=pass; d=zohomail.com; s=zohoarc; b=VAsS1+ZYHuO0k/txNA+AR7XmyuNuk8M8TjwkL32+mKADgwwVz9t974+r+WX8Jyd3OW+ZOfTlOvhJaXCtIU+FICmcpBvO3WM4Hh7u26N0M0KghluzE2hUjbvtEvXF7vTJesMqZxSmMhPia5fX+4iYedFoCLfko6FeFh0jrS+jZWU= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1642451899; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=iRlCtudMBhU5tGg/wgtouuk4S3nyBRotNLey/jgSTbY=; b=LK082D8luc/A1GDlJIZY8WJpkRPE0z7rGxXCDPq6/2YhUrR1gI4NuFFfY5AaWUHwsGcAt1bfioorrNOsGmhQUg9FOPK99FB+rhNXfETyeQkx+pEzMfjmUkl01zHC2AezSt+4EzS6zdOrB3S8T2Qwj2OOOz1fHOF6yUdIqXih1Dk= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=virtuozzo.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 164245189966936.39057249186999; Mon, 17 Jan 2022 12:38:19 -0800 (PST) Received: from localhost ([::1]:54496 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9Yld-0007O6-2N for importer@patchew.org; Mon, 17 Jan 2022 15:38:17 -0500 Received: from eggs.gnu.org ([209.51.188.92]:55730) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9Yic-0003j0-GC for qemu-devel@nongnu.org; Mon, 17 Jan 2022 15:35:11 -0500 Received: from [2a01:111:f400:fe0e::724] (port=62262 helo=EUR04-VI1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9Yia-0005kl-Fj for qemu-devel@nongnu.org; Mon, 17 Jan 2022 15:35:10 -0500 Received: from AM9PR08MB6737.eurprd08.prod.outlook.com (2603:10a6:20b:304::18) by VI1PR08MB2957.eurprd08.prod.outlook.com (2603:10a6:803:43::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4888.11; Mon, 17 Jan 2022 20:19:04 +0000 Received: from AM9PR08MB6737.eurprd08.prod.outlook.com ([fe80::b435:c0de:ef6b:5917]) by AM9PR08MB6737.eurprd08.prod.outlook.com ([fe80::b435:c0de:ef6b:5917%7]) with mapi id 15.20.4888.014; Mon, 17 Jan 2022 20:19:04 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QOLbtMYNy24E0ovnF3hVkueFgJ1NG7vOwAHdAnZnonisoeUj2g/SUUIApfahbGdwwohGDeCbiDXi5XOmaLLlozTHXDvvAZi9LfSFizvPy7XTdM9bJzfefLstJftM6Ghxu0H5WtHr+L7FJPSa3iwnUlOwT3ndbSaWe2UflrcQnV8kloNPGyduVtbGQyPDp8twIQ3EOwVQ025xzcL+0SDEHTKleEA7cqM9bM1CROCyaBZGpAD8uBmZi3tvF/83YJkV0pqYu3VWEjVybOCgez9LsqqWiPco/mxl1iXOUgk4Q2TD8NTVv61VW5lG6KkIe4mma/ck3wMv1j9H4RQhVVgrFQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=iRlCtudMBhU5tGg/wgtouuk4S3nyBRotNLey/jgSTbY=; b=IWkzvuWY2d+IbUYHBQnhHtFXYn70sEJqKfMs4b/7JlQ4HjoGD6ddRBx0QE4VRR/4G0XQ80lcw6MXboiyzTiXTS5uTdhsv0wiWvNg8rAnqKdVzvioMhlNuJ/80Qtirx7Ogf9kKAcJhX2gwkcg7HmqBVCQspvT+4a0JANJDMobAkOzxR19reMlbDmu+p4D1UsESoZbmCz5x+8eZq8GaUhSWtRhf+zMO3f0Si36tQHyfeZlJwVrqM+ZDP3CLcPlk1uZeabDPkSMI1EAF5ydkXSlA8916RF5IW+4J2yV4hLGkfs4IatORy68onZvyW/WnIn5tgW4dDB+AizwiXgVEtE+VA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iRlCtudMBhU5tGg/wgtouuk4S3nyBRotNLey/jgSTbY=; b=akd73evppRpJpYEc8Fn+NLZ/ZMXW5F1S8jmXOeCzw+XtZrfFTL+8TkBXesyg9vO/AAeL3hXAqVAfLE34n6FyfruU5LrvuzM6RNJMkdH1iLZaHWeiuZLDG7dWnKFbt6NC92WRr21wfDOhzrIMGBbXqrwmXIA4ot+j0h4IwlmqOW8= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; From: Vladimir Sementsov-Ogievskiy To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, michael.roth@amd.com, armbru@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, hreitz@redhat.com, kwolf@redhat.com, pbonzini@redhat.com Subject: [PATCH v3 2/3] scripts/qapi-gen.py: add --add-trace-events option Date: Mon, 17 Jan 2022 21:18:44 +0100 Message-Id: <20220117201845.2438382-3-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220117201845.2438382-1-vsementsov@virtuozzo.com> References: <20220117201845.2438382-1-vsementsov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM6P193CA0069.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:8e::46) To AM9PR08MB6737.eurprd08.prod.outlook.com (2603:10a6:20b:304::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 248ffeec-857a-4196-d762-08d9d9f69b21 X-MS-TrafficTypeDiagnostic: VI1PR08MB2957:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:265; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ZXmHHVeIM+rR5C7i69V0UnlO3CaCNNsJqA8uuwATQOZFN1x3VBCcuJSP3N7sEVUCSXLLbESfqiMVeM6Law1yd0W6YljehOhJeK1DQzIW5CJIQTckgpzNPtVteqxH5muSpb2nmO3MulOr8mE9dQCQrBAgNAVEGoEJjYLoU/8rXCWa5BvVx5yJaiWab19eKZMsEPOnv14AnZ5bskGTGi34NFvNDxZFqWg0BltZUEkIqQlJfqwB2KeVNz+TZn1fNLM82c7MkMtc1kYVODUWqNBusajuKVc4ICzCnAaxSLE3yRCK7tIPX8Omdq23yTVpx2KtJD5qdT85WCsWjCngKPd7eBr3Q2il0C4EwNrR1Lw7/6SXMbNTZGcZ5e/18xdOM/TqDfBBUOF6fyyZ4ALHiVqqEfxbPUa5r+K75C8XeyIzKA5Dg7Dej4Tkzp56CUYK5uUwFBinpPN4qSweWQGwvxvojU/LJ9pXx+d9eRS/LG6y8zAa9kOL8EaVqj9UsaQub+bfLlEnq3Z7rZYwnewYYn7NcvZDTLdU50Nz+dBvnmSmOJM9gV5VwM+LTx2hh+mwuxZWL9P36FX3C+KYD0/UdlU64RT1NlXZZTZNt9tBc0LWjtdxuFB3y3bra389ym3i7+rLao2ltsobeVpTwWI4m1Fl23F5U7w3tW8K7PGie+P8+IBFu64VDzHg1pI32N67ifOb045Dt2zp7hYbWkisBja36g== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM9PR08MB6737.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(36756003)(8936002)(4326008)(86362001)(66946007)(508600001)(26005)(6512007)(6486002)(66476007)(66556008)(52116002)(6916009)(2616005)(186003)(38100700002)(38350700002)(2906002)(6506007)(5660300002)(316002)(8676002)(1076003)(83380400001)(6666004); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?e/Ghz6x8RbKD1KbCYzE1FN3PENd8sPf22RRIAOf1wFKpui0zAS1vGRiRrSHR?= =?us-ascii?Q?zcad+bjEQDWQZt8EItRzUpFvmiaz+vkz2xNoIZn89Qw8G397ZhvuJtbJobAl?= =?us-ascii?Q?wEAp6x9F+MtLJe249B1oIFxvvY3O/CDhkKG8UTvQpYlrHX1qeN8tEMDBSnsI?= =?us-ascii?Q?51f7HcUq9rRBDVqehIRrGzW8AyojYe8aY66O7BmZzK+p6B0EgWQYCNuPm6bP?= =?us-ascii?Q?1/il3cgBkTSMdN4MYUWQfHgCm//wLukwkwyPfDrv4b/qAjMleYZHilDPNuUf?= =?us-ascii?Q?vS8uyzSRXiG9tjIdZcmiPTbRRHRGyFzP+qDA673so18NHb2lEhmmcq70hFia?= =?us-ascii?Q?gNjAy4o/7+ATaO3DbdpxJtZbsx+Y8/A//MSjaEir7ish4AyuH3YEZM1ctaP0?= =?us-ascii?Q?A49T7Vh14d3RN7kimbjh2JC3jYUo24oD+nphfKTh96P2I6cyplfBF1rDRSQm?= =?us-ascii?Q?yUj21ECy5kkYFvIUc4c9xVxmGmEm8Uw9yuYGZ1qLEOLxowTERJwyMmCdymuv?= =?us-ascii?Q?ofk2Qpl7h78jQSUE023k44uK9OQ+VXWijqBtzfrjRrXfdzg/KRm/xTKvBQIt?= =?us-ascii?Q?O5eIl1qQqh0to+ZItmYx7rUB60n+O9MiXcfK5Okes+YdI3HDNIfBvQuVvNGC?= =?us-ascii?Q?JuPP99aig0M2TozZbxbEKnSE4m3gNJ00UuvVegViprh9IHG1LC9ai36uy2HM?= =?us-ascii?Q?uj/WL0gsfKBPR05PISEjQdJ1XbpJE0uju7LdpgEU9e62ukadmQKvikV/D9I3?= =?us-ascii?Q?bhdTNL63glN7U7w4PtB0CVMnt2Rd+lgfIdbbrXP/nd39qJQtsou7T521goaZ?= =?us-ascii?Q?la9l1/k7FSkRYh+ftMEXtWVE9DsBV1KwOD8CddD9jKfpIaOH6u4ANujuLKkt?= =?us-ascii?Q?JxqgA2RgMjlxofrUJ049Q4aBbZlhh5kfd5KYGd+uVpf4daBGyQR5uq2vWzfp?= =?us-ascii?Q?c9/CFOBVPYdTtSlkHl/wVGpRF7RQdpMK29K/euP1PqM6dwi3qAKZSsF7wY2i?= =?us-ascii?Q?Fdhxzpsz/FY+eb5RoFvjpY4G+bc1Y6QCmGYZcFMQ0kaW68Tkyk/anORky9xT?= =?us-ascii?Q?UhI61oeFaqtB/KvceI09swwVthsKbtnbqDOTZfhoEUuWHZVuvahSw3fO7O5x?= =?us-ascii?Q?HQnanQz7Y9T5KzxMeE61y/t7E6vUcJSn6YWdoVcgo0R1Wx2+UCbRqL7gWryo?= =?us-ascii?Q?xIMZKq7jaYqlBPVW1XGBOVL820c290gr0N//YgAiIgpIQlieaunsXDWGpbPD?= =?us-ascii?Q?LJqHdgM8/19Kb6me2cfN5B/41p0tq1Sz0aoBlmEjP1sPv+BktesxmVg7/fME?= =?us-ascii?Q?fyX90SzK/8sobwPEmYWG2wCNvrHsdN1WSUgUSz7RScTAMAOJ8auz8bOkRJnA?= =?us-ascii?Q?p1UNdCyqnNRclUz48pLfm9SOQ3uGulGkM8/W2/Th4QOp9TAtLcF4cHxL1125?= =?us-ascii?Q?Oy0GYtyWqFwJuqhxO1DlOX5vXM4VWG8aOb3xhdOlGS8TBu+qrrFfl6b/Rucx?= =?us-ascii?Q?IJEahjRUKrdgFOklRb2rRepP6MlDs57MvQgFnHkMFszuQFdT7lSZtKIsOXMX?= =?us-ascii?Q?aNq36jfFWsPaDra71lvXL/RVz+TTsMcG3h2T+ODRJh+lRwGeS1HG6tfFfebl?= =?us-ascii?Q?FGcipQdZ+lXiPfZUTiUm/KPYDXiCnUZ2/Q8LOzKBqAnJ2WRGxTATEGFXGO5x?= =?us-ascii?Q?1JjI5rPpGJ1DJdegKTvGFAjB5rA=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 248ffeec-857a-4196-d762-08d9d9f69b21 X-MS-Exchange-CrossTenant-AuthSource: AM9PR08MB6737.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jan 2022 20:19:03.9547 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: QCGzfoYkyp2ge4HIgL+X77OfX+g2L3TD67eLtX4SaxSsEfzBx4Vp5dcGSFitSybXbMJaWA8EzzJAXSymvW+vJFW1y4ChN0sNbKhUMviblQI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB2957 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a01:111:f400:fe0e::724 (failed) Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a01:111:f400:fe0e::724; envelope-from=vsementsov@virtuozzo.com; helo=EUR04-VI1-obe.outbound.protection.outlook.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @virtuozzo.com) X-ZM-MESSAGEID: 1642451900643100001 Content-Type: text/plain; charset="utf-8" Add and option to generate trace events. We should generate both trace events and trace-events files for further trace events code generation. Signed-off-by: Vladimir Sementsov-Ogievskiy --- scripts/qapi/commands.py | 91 ++++++++++++++++++++++++++++++++++------ scripts/qapi/main.py | 10 +++-- 2 files changed, 85 insertions(+), 16 deletions(-) diff --git a/scripts/qapi/commands.py b/scripts/qapi/commands.py index 21001bbd6b..8cd1aa41ce 100644 --- a/scripts/qapi/commands.py +++ b/scripts/qapi/commands.py @@ -53,7 +53,8 @@ def gen_command_decl(name: str, def gen_call(name: str, arg_type: Optional[QAPISchemaObjectType], boxed: bool, - ret_type: Optional[QAPISchemaType]) -> str: + ret_type: Optional[QAPISchemaType], + add_trace_events: bool) -> str: ret =3D '' =20 argstr =3D '' @@ -71,21 +72,65 @@ def gen_call(name: str, if ret_type: lhs =3D 'retval =3D ' =20 - ret =3D mcgen(''' + name =3D c_name(name) + upper =3D name.upper() =20 - %(lhs)sqmp_%(c_name)s(%(args)s&err); - error_propagate(errp, err); -''', - c_name=3Dc_name(name), args=3Dargstr, lhs=3Dlhs) - if ret_type: + if add_trace_events: ret +=3D mcgen(''' + + if (trace_event_get_state_backends(TRACE_QMP_ENTER_%(upper)s)) { + g_autoptr(GString) req_json =3D qobject_to_json(QOBJECT(args)); + trace_qmp_enter_%(name)s(req_json->str); + } + ''', + upper=3Dupper, name=3Dname) + + ret +=3D mcgen(''' + + %(lhs)sqmp_%(name)s(%(args)s&err); +''', + name=3Dname, args=3Dargstr, lhs=3Dlhs) + + ret +=3D mcgen(''' if (err) { +''') + + if add_trace_events: + ret +=3D mcgen(''' + trace_qmp_exit_%(name)s(error_get_pretty(err), false); +''', + name=3Dname) + + ret +=3D mcgen(''' + error_propagate(errp, err); goto out; } +''') + + if ret_type: + ret +=3D mcgen(''' =20 qmp_marshal_output_%(c_name)s(retval, ret, errp); ''', c_name=3Dret_type.c_name()) + + if add_trace_events: + if ret_type: + ret +=3D mcgen(''' + + if (trace_event_get_state_backends(TRACE_QMP_EXIT_%(upper)s)) { + g_autoptr(GString) ret_json =3D qobject_to_json(*ret); + trace_qmp_exit_%(name)s(ret_json->str, true); + } + ''', + upper=3Dupper, name=3Dname) + else: + ret +=3D mcgen(''' + + trace_qmp_exit_%(name)s("{}", true); + ''', + name=3Dname) + return ret =20 =20 @@ -122,10 +167,17 @@ def gen_marshal_decl(name: str) -> str: proto=3Dbuild_marshal_proto(name)) =20 =20 +def gen_trace(name: str) -> str: + name =3D c_name(name) + return f"""\ +qmp_enter_{name}(const char *json) "%s"\n +qmp_exit_{name}(const char *result, bool succeeded) "%s %d"\n""" + def gen_marshal(name: str, arg_type: Optional[QAPISchemaObjectType], boxed: bool, - ret_type: Optional[QAPISchemaType]) -> str: + ret_type: Optional[QAPISchemaType], + add_trace_events: bool) -> str: have_args =3D boxed or (arg_type and not arg_type.is_empty()) if have_args: assert arg_type is not None @@ -180,7 +232,7 @@ def gen_marshal(name: str, } ''') =20 - ret +=3D gen_call(name, arg_type, boxed, ret_type) + ret +=3D gen_call(name, arg_type, boxed, ret_type, add_trace_events) =20 ret +=3D mcgen(''' =20 @@ -238,11 +290,12 @@ def gen_register_command(name: str, =20 =20 class QAPISchemaGenCommandVisitor(QAPISchemaModularCVisitor): - def __init__(self, prefix: str): + def __init__(self, prefix: str, add_trace_events: bool): super().__init__( prefix, 'qapi-commands', ' * Schema-defined QAPI/QMP commands', None, __doc__) self._visited_ret_types: Dict[QAPIGenC, Set[QAPISchemaType]] =3D {} + self.add_trace_events =3D add_trace_events =20 def _begin_user_module(self, name: str) -> None: self._visited_ret_types[self._genc] =3D set() @@ -261,6 +314,15 @@ def _begin_user_module(self, name: str) -> None: =20 ''', commands=3Dcommands, visit=3Dvisit)) + + if self.add_trace_events and c_name(commands) !=3D 'qapi_commands': + self._genc.add(mcgen(''' +#include "trace/trace-qapi.h" +#include "qapi/qmp/qjson.h" +#include "trace/trace-%(nm)s_trace_events.h" +''', + nm=3Dc_name(commands))) + self._genh.add(mcgen(''' #include "%(types)s.h" =20 @@ -322,7 +384,9 @@ def visit_command(self, with ifcontext(ifcond, self._genh, self._genc): self._genh.add(gen_command_decl(name, arg_type, boxed, ret_typ= e)) self._genh.add(gen_marshal_decl(name)) - self._genc.add(gen_marshal(name, arg_type, boxed, ret_type)) + self._genc.add(gen_marshal(name, arg_type, boxed, ret_type, + self.add_trace_events)) + self._gent.add(gen_trace(name)) with self._temp_module('./init'): with ifcontext(ifcond, self._genh, self._genc): self._genc.add(gen_register_command( @@ -332,7 +396,8 @@ def visit_command(self, =20 def gen_commands(schema: QAPISchema, output_dir: str, - prefix: str) -> None: - vis =3D QAPISchemaGenCommandVisitor(prefix) + prefix: str, + add_trace_events: bool) -> None: + vis =3D QAPISchemaGenCommandVisitor(prefix, add_trace_events) schema.visit(vis) vis.write(output_dir) diff --git a/scripts/qapi/main.py b/scripts/qapi/main.py index f2ea6e0ce4..7fab71401c 100644 --- a/scripts/qapi/main.py +++ b/scripts/qapi/main.py @@ -32,7 +32,8 @@ def generate(schema_file: str, output_dir: str, prefix: str, unmask: bool =3D False, - builtins: bool =3D False) -> None: + builtins: bool =3D False, + add_trace_events: bool =3D False) -> None: """ Generate C code for the given schema into the target directory. =20 @@ -49,7 +50,7 @@ def generate(schema_file: str, schema =3D QAPISchema(schema_file) gen_types(schema, output_dir, prefix, builtins) gen_visit(schema, output_dir, prefix, builtins) - gen_commands(schema, output_dir, prefix) + gen_commands(schema, output_dir, prefix, add_trace_events) gen_events(schema, output_dir, prefix) gen_introspect(schema, output_dir, prefix, unmask) =20 @@ -74,6 +75,8 @@ def main() -> int: parser.add_argument('-u', '--unmask-non-abi-names', action=3D'store_tr= ue', dest=3D'unmask', help=3D"expose non-ABI names in introspection") + parser.add_argument('--add-trace-events', action=3D'store_true', + help=3D"add trace events to qmp marshals") parser.add_argument('schema', action=3D'store') args =3D parser.parse_args() =20 @@ -88,7 +91,8 @@ def main() -> int: output_dir=3Dargs.output_dir, prefix=3Dargs.prefix, unmask=3Dargs.unmask, - builtins=3Dargs.builtins) + builtins=3Dargs.builtins, + add_trace_events=3Dargs.add_trace_events) except QAPIError as err: print(f"{sys.argv[0]}: {str(err)}", file=3Dsys.stderr) return 1 --=20 2.31.1 From nobody Thu May 2 21:01:47 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=virtuozzo.com); dmarc=pass(p=quarantine dis=none) header.from=virtuozzo.com ARC-Seal: i=2; a=rsa-sha256; t=1642451866; cv=pass; d=zohomail.com; s=zohoarc; b=hcfs+CZhyr1uYENkgd+nuogETNemdOUwcW+JUSRQDKE/g5n5jKVkErulnCi+phuF3ZaxtlRTlV5xywLPsFsUWizhLWdS6Fy9Fq0rBkfqpLRfkHwH/ziy4HUzWKBtVoE3H91Rw8RbXvdiIx9ciE6RJ3TWKb+0HtMcVdaGJPPaN6A= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1642451866; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=+jTc/7mJSdZVPAuLLC348SLvGQUGauCNUGCG99EW2y8=; b=BlSqYvyI75WTsWjOXK96L0/vqON5pLrLfXzafyfFRHzqQo8IdGPbCBpbkjYsYwCdzhj3KP3fh88bEN/2bmmvphfPWlrZyLC0EXqy4epqjLGqeiheDEL9MDrcoXUHN7dpuGJPvNU1mE5oFCuNvkKLAMpl8PehUk336eoIVCvQBdg= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=virtuozzo.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1642451865689373.045740538989; Mon, 17 Jan 2022 12:37:45 -0800 (PST) Received: from localhost ([::1]:52796 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9Yl6-0006HQ-ME for importer@patchew.org; Mon, 17 Jan 2022 15:37:44 -0500 Received: from eggs.gnu.org ([209.51.188.92]:55702) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9YiW-0003d3-1j for qemu-devel@nongnu.org; Mon, 17 Jan 2022 15:35:04 -0500 Received: from [2a01:111:f400:fe0e::704] (port=61063 helo=EUR04-VI1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9YiU-0005Zt-6P for qemu-devel@nongnu.org; Mon, 17 Jan 2022 15:35:03 -0500 Received: from AM9PR08MB6737.eurprd08.prod.outlook.com (2603:10a6:20b:304::18) by VI1PR08MB2957.eurprd08.prod.outlook.com (2603:10a6:803:43::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4888.11; Mon, 17 Jan 2022 20:19:04 +0000 Received: from AM9PR08MB6737.eurprd08.prod.outlook.com ([fe80::b435:c0de:ef6b:5917]) by AM9PR08MB6737.eurprd08.prod.outlook.com ([fe80::b435:c0de:ef6b:5917%7]) with mapi id 15.20.4888.014; Mon, 17 Jan 2022 20:19:04 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LJMpMAgpOKIaeaeqsB96K/0TQEnLAoUKwS+EPVmvPahZ/GQ1FxhizN3LWQ/b9BYzAKL7Q7sp20HV1Ti9q1biagkLokAZVZS4Z9v4QIqvUln2Wfbrm3Pp8Oj6h+qTaTsJFy1+AIfzqhYV11RHezjyYNpYNW5AnccANsRX456V3C2jYJk1PT6rPc7ciYQw+te5E4r0R/If+ZMzb9H/3f39bUdlXULAgTSbQnZUFcXSNeuFcO4ec9wrVN/9SXOorBxK2tb/cpO9IVIs3lzo6QhFjs8cAUbltllzu7dSmnohkWygd4GdSqTOR5uBOyXPjdT7W+4AGQLj4ua8Tz55AAfZXQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=+jTc/7mJSdZVPAuLLC348SLvGQUGauCNUGCG99EW2y8=; b=NGoU8rF3Rai2cGDHmUqIWIrii7KRyzl+pVdjQO8qRIF/twbeQ+FdAyNItHf26fMK2CS+XGbF84dEhYNCcrU4Oc85voagPN9nZ1JjiBBvax/ThTaquHZaYLn/OWh+jFbLUemSi/RwfrrFHzF5psvd3suIq0y0w+V+kjm/RGhUjyBqR3epsTx3oPeNENc8WNomXMwBeC8Ln0yPxB0aOVlzqgzVFdE/yWmzm+fTm1SfKT9mMZ1OKTh6P2TqwfAaVuk2EgVS1bompRcKZ8Epvvey90wdOFLL6FFnFRHOHlO9XfiaINixoa8kncA3MofxSN908An8e69Rvm8SbW0SDk799A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+jTc/7mJSdZVPAuLLC348SLvGQUGauCNUGCG99EW2y8=; b=frG9h3vuldg5LyTy8rip/67MixwfaZ7PWPUlyQLpDaHZkXa7g1Qw8tbrQGNY0vfE3M0bEXJa0IvfLIs2sfg3x6djbr1/Y22R4OcDcarjXa3DGzmp/c6NxMdhOAEvLcJQaxBcGgb+f4XfEjNaicOR46R9Bshfybqm/AurCn4s/sU= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; From: Vladimir Sementsov-Ogievskiy To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, michael.roth@amd.com, armbru@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, hreitz@redhat.com, kwolf@redhat.com, pbonzini@redhat.com Subject: [PATCH v3 3/3] meson: generate trace events for qmp commands Date: Mon, 17 Jan 2022 21:18:45 +0100 Message-Id: <20220117201845.2438382-4-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220117201845.2438382-1-vsementsov@virtuozzo.com> References: <20220117201845.2438382-1-vsementsov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM6P193CA0069.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:8e::46) To AM9PR08MB6737.eurprd08.prod.outlook.com (2603:10a6:20b:304::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7ab9714f-b9f0-4aa3-eebe-08d9d9f69b6b X-MS-TrafficTypeDiagnostic: VI1PR08MB2957:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6108; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jUKni86sdW8wJxAYt8/uYezRQz1KKrEiLXMZ1pqjtQpeMRtL7/2AMZaptDnYGkNYEaIGketFB3yZHn+pdpxs13dKgqISq1UtVIW9+k8ltucME4QdXnf+1HI/Z13aGDGKOCM82SBz9XXTP+24pLZwkBFmgN5TarmBM954LPjV5YIIJ0k/uBtTmb2GmUXtCTqkowD+tHsBGpIlUxz8VcXkb0/CKxRYAgIYWZwa/rIDcj6mQUAX0BgEW+dy3L2Uga3+5SgKKHH/mZgP4gBTwAXV+HzX4HB/uyAj1+m4h2umqvIIV1YULGw6kfW59+Qk8IXAJMcs+DHqEDT1BenZpL+PPcGKrMus7aOb1lg7FuivXblBeKXRqcajHqRSSbGjxev67FLN0NxaJqmx9OH6WTgfFZzrBr1EeICtQBdmjAMyQl/PD7DX4J7rhZlhOEU2DE+RD1b2n7gNEFRJM1MfX7RkfPHL234wnKvnEPdgP6EdvH/EFc8CAur1AJ35izTALwrn+HZsGn1gIiajmRxL/fx4hiM/P1a7FFdIvzW9o6A/pxEB3TNjep8FTqN+vBJHE4DPbgpZUD7cWyfMbZFpafrZcRC4+B3NH47/mVqlEuMP0jszbKFHkQtKvNEYvNmGQFa2NXaKXgI7don1FLHYsdoaBzuEOqbpcpQH4nODbgy/2HmEV1yiL+P1YWfSpjd/3OvwcPd9Oh5ZhpjNO2g1N5rG0g== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM9PR08MB6737.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(36756003)(8936002)(4326008)(86362001)(66946007)(508600001)(26005)(6512007)(6486002)(66476007)(66556008)(52116002)(6916009)(2616005)(186003)(38100700002)(38350700002)(2906002)(6506007)(5660300002)(316002)(8676002)(1076003)(83380400001)(6666004); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?3lsijqrqnb57mexNssBOiRVUFLkypruNPU2HvRja9FO9SYjTDvOBF8d0scwf?= =?us-ascii?Q?2SxtwjbiG8TaD9Qh78cN4TAnJRetsDdLHQig3mUiTl7wRgtgFGs2+3OrhCMm?= =?us-ascii?Q?1tbW5LaoKSKd6o5Dl9BrMIkvpcpM2Y6i+vsKq7/GkdeKO3SQcbwYi7tpILEG?= =?us-ascii?Q?2O6UBEqsHiKZgdnAgumT0zjprk9pgKNDETXvexJrovYScvY9i+TbtUSCTLFg?= =?us-ascii?Q?xdjjMsz+ezG7fVGD9k93Ge1rJLLvqe+znlq3qlMJ7M4DtqOVXWR0tHwZUFhz?= =?us-ascii?Q?oxgh7S6X9Cp2KotNxktOeZs1rJ/2gwLCqyt7Iszr4+hw9LAwkIQELYpkySWQ?= =?us-ascii?Q?0Dm/YUrerv3rStDXEI9dJBINW4nIhjl9aNc1o25brqVlXxASzbDSmD63Gbon?= =?us-ascii?Q?wmLhU8rLpDFVu+wXvxnBgOVAchwBDCBLTw6izPZgVRkTblWATbQVxaQYfi5X?= =?us-ascii?Q?Fk8DnezvctEcIMT58c6Lr4vePpVMmXd++QukX37gZq38j9wJ1UsG1I3Kt3v+?= =?us-ascii?Q?DWy18HPSw3hJpppi6Izc9NDX0TjPg+BKCSgTscV50QWb2FGorPZkhQfOuF3G?= =?us-ascii?Q?4T79bOhAsVVeme8F9YhI074WLMv5SHKbdm45SUZayjoskKN7KOtMtTADXVcG?= =?us-ascii?Q?CkSSaECKuiir7hCqbCHEbZl27SrwLi0sCt7/M/TBS3d4OunZvZsDUg9L6FuQ?= =?us-ascii?Q?vNn3wQQd2Bvs/SqyAacJSHnCuw6XXxgLZpa74zHEtk3qSJHtnv6+JWOXd5EI?= =?us-ascii?Q?JLAvIbovKdFo3QY356PB69S7NIoxTTL2/Yut8xoc/uCYPttaPAKyD6ll2Cx5?= =?us-ascii?Q?rDy3HeJUfWukEDJwjk/wLQ5JHg1IPPobMxgfGQdpPTkh4VB9DV+ao4OGjrUG?= =?us-ascii?Q?Blu8IFStrl4rB3RnMWEky43SJk1XNZLEwjOKu0wCV3T8r+G6nusHMsErXum8?= =?us-ascii?Q?0QfPj86SEmmiq/kVwujPKZT3SW9v54IPfTcWhoPPOJgo7Dx9atkdntsgZnbt?= =?us-ascii?Q?0NKA8CUAgvk04uSIH2R8M5ZemRPCwMjboTZWdSwPRwy13GzlndmEcWC6qcbd?= =?us-ascii?Q?rxS2b9m0Ui9QJt/XDPTQJZr/tz0gviMgdtVcJ+Cr8t6/pRr+dTNzxBepFoib?= =?us-ascii?Q?pjW0CSL10j6YNzh4ORSZTy+ASH+gnwwwOaP30CD2yuxmKsqoYtq2g2RSowtJ?= =?us-ascii?Q?2oEYaYcTgESedMsTGN+hTDjC3Y3lMRWjwf+DRzgW5eu2105xGsXEgOWI7pGs?= =?us-ascii?Q?ddh9mKh9cwcbBJKB2JbXvwAEjdQ9VWgC/Ik91mpTo0tFuiHmFwV09n6ILJiJ?= =?us-ascii?Q?GRcCRyHAa/yjblA0R9NlVwGXWuQdihnr82JFVswjqjLvniouVLnAy8npzyDF?= =?us-ascii?Q?8laEyULUb0FB4rTxPF0TbS/ts6vatQy8y5k9E8gTdwg8CEh9LMtBtMRNxdL3?= =?us-ascii?Q?nEyR/Tu0ROta1xcvhyZbbVe5dPInAFCJ6j5p6Agxm5fk+dECenHVV7hsF6+H?= =?us-ascii?Q?DpCVhefHMUj/GmO8/e/135NTizi5QE4KpmHSY1UsP3I9VnYp8bNdsXp75Fno?= =?us-ascii?Q?Pi/eJKMg9RiwN8G0nj3u0llxFK7PUehxgfMZ03YxyVf4vRj1IVC5zCbe6EJc?= =?us-ascii?Q?7D7PTOIorSHYvhEXKohT01JDwgyzS3tGkTawEcxbVxvtnc3NDkmzCjBB+BQM?= =?us-ascii?Q?DJi+Fw=3D=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7ab9714f-b9f0-4aa3-eebe-08d9d9f69b6b X-MS-Exchange-CrossTenant-AuthSource: AM9PR08MB6737.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jan 2022 20:19:04.6252 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: mVHenCp3fwEz0cpXfKPfxAzauq5bolg7hT6hJuwZKYgbPPROiKgdfq53je3h5gMxGvC3SNyFPMUH1CKg97OeatDyQjF7eX7Kl2jiIx3VMx0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB2957 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a01:111:f400:fe0e::704 (failed) Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a01:111:f400:fe0e::704; envelope-from=vsementsov@virtuozzo.com; helo=EUR04-VI1-obe.outbound.protection.outlook.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @virtuozzo.com) X-ZM-MESSAGEID: 1642451867428100001 Content-Type: text/plain; charset="utf-8" 1. Use --add-trace-events when generate qmp commands 2. Add corresponding .trace-events files as outputs in qapi_files custom target 3. Define global qapi_trace_events list of .trace-events file targets, to fill in trace/qapi.build and to use in trace/meson.build 4. In trace/meson.build use the new array as an additional source of .trace_events files to be processed Signed-off-by: Vladimir Sementsov-Ogievskiy Acked-by: Paolo Bonzini --- meson.build | 5 +++++ qapi/meson.build | 9 ++++++++- trace/meson.build | 11 ++++++++--- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/meson.build b/meson.build index 762d7cee85..effd66e4c2 100644 --- a/meson.build +++ b/meson.build @@ -41,6 +41,7 @@ qemu_icondir =3D get_option('datadir') / 'icons' =20 config_host_data =3D configuration_data() genh =3D [] +qapi_trace_events =3D [] =20 target_dirs =3D config_host['TARGET_DIRS'].split() have_linux_user =3D false @@ -2554,6 +2555,10 @@ if 'CONFIG_VHOST_USER' in config_host vhost_user =3D libvhost_user.get_variable('vhost_user_dep') endif =20 +# Please keep ordering between 'qapi' and 'trace' subdirs: +# We should first handle 'qapi' subdir, so that all +# generated trace events be generated prior handling 'trace' +# subdir. subdir('qapi') subdir('qobject') subdir('stubs') diff --git a/qapi/meson.build b/qapi/meson.build index c0c49c15e4..b48125f8da 100644 --- a/qapi/meson.build +++ b/qapi/meson.build @@ -114,6 +114,7 @@ foreach module : qapi_all_modules 'qapi-events-@0@.h'.format(module), 'qapi-commands-@0@.c'.format(module), 'qapi-commands-@0@.h'.format(module), + 'qapi-commands-@0@.trace-events'.format(module), ] endif if module.endswith('-target') @@ -126,7 +127,7 @@ endforeach qapi_files =3D custom_target('shared QAPI source files', output: qapi_util_outputs + qapi_specific_outputs + qapi_nonmodule_outpu= ts, input: [ files('qapi-schema.json') ], - command: [ qapi_gen, '-o', 'qapi', '-b', '@INPUT0@' ], + command: [ qapi_gen, '-o', 'qapi', '-b', '@INPUT0@', '--add-trace-events= ' ], depend_files: [ qapi_inputs, qapi_gen_depends ]) =20 # Now go through all the outputs and add them to the right sourceset. @@ -137,6 +138,9 @@ foreach output : qapi_util_outputs if output.endswith('.h') genh +=3D qapi_files[i] endif + if output.endswith('.trace-events') + qapi_trace_events +=3D qapi_files[i] + endif util_ss.add(qapi_files[i]) i =3D i + 1 endforeach @@ -145,6 +149,9 @@ foreach output : qapi_specific_outputs + qapi_nonmodule= _outputs if output.endswith('.h') genh +=3D qapi_files[i] endif + if output.endswith('.trace-events') + qapi_trace_events +=3D qapi_files[i] + endif specific_ss.add(when: 'CONFIG_SOFTMMU', if_true: qapi_files[i]) i =3D i + 1 endforeach diff --git a/trace/meson.build b/trace/meson.build index 573dd699c6..c4794a1f2a 100644 --- a/trace/meson.build +++ b/trace/meson.build @@ -2,10 +2,15 @@ specific_ss.add(files('control-target.c')) =20 trace_events_files =3D [] -foreach dir : [ '.' ] + trace_events_subdirs - trace_events_file =3D meson.project_source_root() / dir / 'trace-events' +foreach item : [ '.' ] + trace_events_subdirs + qapi_trace_events + if item in qapi_trace_events + trace_events_file =3D item + group_name =3D item.full_path().split('/')[-1].underscorify() + else + trace_events_file =3D meson.project_source_root() / item / 'trace-even= ts' + group_name =3D item =3D=3D '.' ? 'root' : item.underscorify() + endif trace_events_files +=3D [ trace_events_file ] - group_name =3D dir =3D=3D '.' ? 'root' : dir.underscorify() group =3D '--group=3D' + group_name fmt =3D '@0@-' + group_name + '.@1@' =20 --=20 2.31.1