From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8288242A4E; Wed, 3 May 2023 12:15:04 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0B3D74114B; Wed, 3 May 2023 12:15:04 +0200 (CEST) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id 07B1841144 for ; Wed, 3 May 2023 12:15:01 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1683108902; x=1714644902; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=2wEnW+w23PKUw7txXAnj1FMH5OijXSfjOLVJjcQny4M=; b=Q3pSuhZc7EUppohNLfERV4FjPmIsPLN0i4WNW+kzOOvWof/S7Y9Et617 Q9B+mmGynB1x613lvJYZq3E2V+I4R/BqJa3WpeP99yt69gU/a2eEEapKw fdkcWCOFtfT4pPZy5JmcHUAD/jD8EJswTzk33nGxRJLwAcMSBgxQFAncS eCi0nvL60tJRoX1zLNw/i/6nG3WDcKwC1sDsVQ6ug5IL1KsSiBmb/08BW /arwFGO/kmRXSwQHtn31cK7M82s4xt3BkGiwm1rPUggjxkRq0GZc3rWKf j2WiQKotYhgR6G2zXTep7kPShKcI6XymrfIAssIFULcrS7SN8sJJfVAvE Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10698"; a="348659856" X-IronPort-AV: E=Sophos;i="5.99,247,1677571200"; d="scan'208";a="348659856" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2023 03:15:00 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10698"; a="696506626" X-IronPort-AV: E=Sophos;i="5.99,247,1677571200"; d="scan'208";a="696506626" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga002.jf.intel.com with ESMTP; 03 May 2023 03:15:00 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Wed, 3 May 2023 03:15:00 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Wed, 3 May 2023 03:15:00 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Wed, 3 May 2023 03:14:59 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.109) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Wed, 3 May 2023 03:14:59 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JP1q8WO3ep9ntV6ml6UekgzD78Cf+++P7bhZzGUopWnpoXQLp4x/bXq/ed7TQq9skkLwRJYECf93Paq+xOWl018VLNPItfTHJMNfkypOzPMdTKfivAqgnL/8lLfG/i7b0DP7b152fF3QUUfqyHNlTeDV+sPnW5zNa5giIJakq+Ps5IxI5MtXWSwlUbvYKaAykFz/RACcwxgbbH6pcPmBFDTI5n4VpH0GW0LNKRVpMaQ/q7zYiMaDhZN+zFs5dBFYCak3GgOqzhyXhmwt014eyvJ9m6amVTdAuvyhGLaWD/4DMWr9Wa+F1rD7O9GR9IdCHtuqzA6SxoMffAZ1wCXzDg== 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=b6LHjbtExmEUr12hzi9AMlrRRly/8GCQ0e0vLRJTT7w=; b=NI22uVL79mKjzU6JV3A09OO4d904YzXCSCz5XlqiepczYE2v8QNVP1YONQR3LZjr7xrDsTvBXonQ6yB7nbumMO50Kfq3EN+kGbr3D9xK6qYoQuPvZwZ134a4cVc+Zm3bb+dTzh4B41TVg/uOw7WsONUdGD3pex2YAaYslBMu5IKEk3b4Pl7fNK+EzmyKj1T5wjwYz3/3Fw2qDHNd91ljJVwFitLV+Yzr8ikjc0n3N/negcCfOM9cfFMgPbpZcedrHNQvz7i8GhCz51gT+aloyUQm8smRPbDTV106MgrbNSClWOmRbaPOhFJNEU0Ri4cwTL0m2aVvjGOggbAdj4I44g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from BL3PR11MB5699.namprd11.prod.outlook.com (2603:10b6:208:33e::8) by SJ2PR11MB7618.namprd11.prod.outlook.com (2603:10b6:a03:4cb::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.22; Wed, 3 May 2023 10:14:56 +0000 Received: from BL3PR11MB5699.namprd11.prod.outlook.com ([fe80::eaa4:5acc:d5e0:f53c]) by BL3PR11MB5699.namprd11.prod.outlook.com ([fe80::eaa4:5acc:d5e0:f53c%4]) with mapi id 15.20.6363.022; Wed, 3 May 2023 10:14:56 +0000 From: "Van Haaren, Harry" To: Arnaud Fiorini , Thomas Monjalon , Jerin Jacob , Sunil Kumar Kori CC: "dev@dpdk.org" , mattias.ronnblom , Honnappa Nagarahalli Subject: RE: [PATCH 1/1] eal: add tracepoints to track lcores and services Thread-Topic: [PATCH 1/1] eal: add tracepoints to track lcores and services Thread-Index: AQHZdsDdNKeMZ005XEub57NZJx8mfK9IYNtw Date: Wed, 3 May 2023 10:14:56 +0000 Message-ID: References: <20230424152412.3784016-1-arnaud.fiorini@polymtl.ca> <20230424152412.3784016-2-arnaud.fiorini@polymtl.ca> In-Reply-To: <20230424152412.3784016-2-arnaud.fiorini@polymtl.ca> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BL3PR11MB5699:EE_|SJ2PR11MB7618:EE_ x-ms-office365-filtering-correlation-id: 8564ffbe-4593-4700-a36b-08db4bbf3ec9 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 5z4W8uy4EUd6/M0B1p7cCnXktqSHdd+PZb8zxO3AkwMRxVU5ILS1jT1NMg43VscoQFM+p6xYq6c1R5x21KViPVsUSg2av3drBZ9UF3sdxU/K/Mno5Iw2VgwUTW4/wegKDAAf7o6aNIAzVdpb76V9AiOPUcvqyJPepp1ni+BOvIxBb1StIfK/M8H9JdecgvOlYWLksCg2Nj0EIdgzOVlzNGCyOUy77wj9ZYqLFIMsA2LVGDx5XdpEiIuiXI/eObApheB8yC0VX44KNZRG3zN9vPCcEWdMWGDpWb0kWAKSpfTSaa5fBDzXmgiLAambgig3ixScasoRW6uATHWbW7z2PD8/txPPIXrdKfFCCN9nkOrGidasRB1qglNeWwBS/Gpne7i/Z0DXcBXDlUWuKNerIyPfxO0wfymojzx7inCYDYwR+aIstKUGM3+a4IYcCN4KN0lrsD8kMyc9H/fHPvMcmrkIMtFnT0aNprobTAvZiH8WltnBTcUYA3336q1jEA+ngUNFAG+NJIyu00toupxIfRMj8VGb0SpoMf1WFw4yawsVfBLyCxBbxakpLgyKPF2+9sbeZIWytQnyG1Rov4xLLXWsH52oPRfEBX0fip2AzpIV1Za6RWxlTaYpmZ6zHjDL x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BL3PR11MB5699.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(396003)(39860400002)(346002)(136003)(376002)(366004)(451199021)(8676002)(8936002)(55016003)(41300700001)(82960400001)(71200400001)(38070700005)(66946007)(64756008)(66446008)(66476007)(66556008)(33656002)(76116006)(86362001)(4326008)(316002)(38100700002)(478600001)(122000001)(54906003)(110136005)(7696005)(2906002)(52536014)(5660300002)(9686003)(53546011)(6506007)(26005)(186003)(83380400001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?tRM5zkRUglb4JPwV/7mTWW+y5btKEU8X1CktnPx7gUttGG8Rxy4zbierJRg4?= =?us-ascii?Q?hFH8LGwckFfOD9eau0WjoNJv6ikaMA1j1RpYrMNpyzpEXpohcLHQqsGiq9kM?= =?us-ascii?Q?csbWxdktHdKTm7bMsv4X5m5SlkRaFvBN4TTM9BesXKzPX8UycwSSmZht9vUS?= =?us-ascii?Q?xz8Zm/mNjattROPay4OoYKZU0Tc/MFnjJPPJV5aJcQ7nPk5hn7u3Z0bDrz7J?= =?us-ascii?Q?e4Kx2i4d0iZNGE0fl3A0hpPO9UW5yq6l6qgnNn89dFxycX3+RvXBWDGI7E1r?= =?us-ascii?Q?c+elTemqOfWBY9jH/rXAyiwWCXBvHr9dUbsGsTwfwOyvvF95cdNw9C76TYTg?= =?us-ascii?Q?Kuy2QcUpirVRM11CTXyVrQ8Ew9WMqMw4RwCkQNoND8RND/odz4XRVwxv8/a5?= =?us-ascii?Q?7grmvNRKz178qBszDQCVwBzE+Ui92BG27yiaVaw3GLJYkQIF/laYbOsGHMlZ?= =?us-ascii?Q?ORV8yIY5qD0711bCIcPrpJgWxAp8kZx0zuYjtRTYPRGfznbvLkurj1W/Gz4f?= =?us-ascii?Q?t0h7M5ylz+MCXXGqzOukvbCZrRpzmIE2afPO7GpxglhKDWWlHH3+tFRrMKzJ?= =?us-ascii?Q?Cx6wyxhJ2bGOPfgtnPHOFq0H6GZ6EsfYBROyWGgNoVHsXgjBr1HtEqo9I06O?= =?us-ascii?Q?PMDNUj0KXA3GDolb6T/Ja5NXoB3iSthvJn6QICw+FLbYImj2FUmBf3tEllsb?= =?us-ascii?Q?z4QoYWbVAlDTPkE5iHEYw36o8dClrOWbGuiNy7PRiG7q1FQpTAX+5ANlxAvG?= =?us-ascii?Q?YPq2wFYcGy7mwHN6ALCTDxeGB7ypgou+T2a3hIoXwbQ4uifUq5oI07bOO4I6?= =?us-ascii?Q?vpoPJVfbKxyDxc2els5FNVhoFQ0VYpF0fIlbihXzMWasy6wQ5iclnaRK+QVl?= =?us-ascii?Q?Ie6Cvm5ixA6uvGg/L2e94vj3sZl2jsw41QtUk5S58aBcEP5lxeNt9NLeCJa8?= =?us-ascii?Q?7K52uXNTeJy/OzERNKKomOegN5N2ZwlkLriq13T/R3omPfUSveQgwewjz/sN?= =?us-ascii?Q?cxML51zj/hNClyi6PX2h1pJorlBp7i5HfB5pcmssUeqylZxjVvqSrrHv5WAz?= =?us-ascii?Q?6PU84DhVstgkjLMB4ZQOjNyqDAHkK+xANLmYvIQmWODe8QpPPBBvDylQd4sB?= =?us-ascii?Q?jFy88qWM054CW38d5kPTMxNw820puT9esjL1oQ6TszTFUzD3HXmI6aXb3FMa?= =?us-ascii?Q?O+P7bXbOD179Rd2wINBIdcgdt5HJOFnybg0lHOhqe+Nz0+LTdhQa3Vh5CusV?= =?us-ascii?Q?pM10p+qxG+GD9CvIXQdEAV+Up0L9QJuwY3rO0RjtJ44eHPgGSOcDcf67jQlS?= =?us-ascii?Q?uISKt7xwxQj+XTLUeiitH1xCXn2wT7VbvycriJdKEDBRyPQO4w3MPem/TupA?= =?us-ascii?Q?MG1PaOehhQfze65mX4SdLyMXOpbBNP/8yv5m97T1qZk4WsHlM+McFAyRYOOR?= =?us-ascii?Q?HKw9t8/xPoqY1+x3AcsQI6DhZ1JG4+kcaR6NR5TjlBfBNVii+zofy07+aVGs?= =?us-ascii?Q?5cfQ0IuDdqDQmiJooMWUF+VHpWvhLthgTMit0Y20s3iVUp9tOwaVqPbnEXOq?= =?us-ascii?Q?PC3a4250GP59WNA363Sc6NTGocnSSFyWUSV+aLZDxBujNIcrtR1ojxGAjjnR?= =?us-ascii?Q?qA=3D=3D?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL3PR11MB5699.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8564ffbe-4593-4700-a36b-08db4bbf3ec9 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 May 2023 10:14:56.6742 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 9xkNFtlvSbF59Srn4JfjosAg8C7baW1uef07SrYBmyu77+iy5xEh0KGQQ1utgooE8/Mm6WVdGNsyd3sgRTOREEC1Ss13ajmO1GKh/vvay7I= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR11MB7618 X-OriginatorOrg: intel.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org > -----Original Message----- > From: Arnaud Fiorini > Sent: Monday, April 24, 2023 4:24 PM > To: Thomas Monjalon ; Jerin Jacob ; > Sunil Kumar Kori ; Van Haaren, Harry > > Cc: dev@dpdk.org; Arnaud Fiorini > Subject: [PATCH 1/1] eal: add tracepoints to track lcores and services >=20 > The tracepoints added are used to track lcore role and status, > as well as service mapping and service runstates. These > tracepoints are then used in analyses in Trace Compass. >=20 > Signed-off-by: Arnaud Fiorini I've had a look at these changes, and don't have any big objections; When disabled, the tracepoints add no measurable overhead here, but When enabled they cause a ~+50% cycle-cost (eg from ~100 to 150 cycles). Running the "service_perf_autotest" prints cycle-costs, so this is easy to = check. Please add documentation on enabling the traces; today it is hard to identi= fy/find an example of enabling tracing on service-cores. Suggest to add it to: 1) the commit message, how to enable service cores traces only 2) add a section in the service-cores documentation, to enable service-core= s only, and link to tracing documentation page for more info. +CC Mattias and Honnappa who have expressed specific interest in service-co= res Performance in the past, any concerns/input Mattias/Honnappa? @Arnaud, assuming no concerns from wider DPDK community, I'm happy to Ack a= v2 with docs added. > --- > .mailmap | 1 + > lib/eal/common/eal_common_thread.c | 4 ++ > lib/eal/common/eal_common_trace_points.c | 21 +++++++++ > lib/eal/common/rte_service.c | 18 ++++++- > lib/eal/include/eal_trace_internal.h | 60 ++++++++++++++++++++++++ > 5 files changed, 103 insertions(+), 1 deletion(-) >=20 > diff --git a/.mailmap b/.mailmap > index dc30369117..2a0b132572 100644 > --- a/.mailmap > +++ b/.mailmap > @@ -120,6 +120,7 @@ Archana Muniganti > > Archit Pandey > Arkadiusz Kubalewski > Arkadiusz Kusztal > +Arnaud Fiorini > Arnon Warshavsky > Arshdeep Kaur > Artem V. Andreev > diff --git a/lib/eal/common/eal_common_thread.c > b/lib/eal/common/eal_common_thread.c > index 079a385630..25dbdd68e3 100644 > --- a/lib/eal/common/eal_common_thread.c > +++ b/lib/eal/common/eal_common_thread.c > @@ -205,6 +205,8 @@ eal_thread_loop(void *arg) > __ATOMIC_ACQUIRE)) =3D=3D NULL) > rte_pause(); >=20 > + rte_eal_trace_thread_lcore_running(lcore_id, f); > + > /* call the function and store the return value */ > fct_arg =3D lcore_config[lcore_id].arg; > ret =3D f(fct_arg); > @@ -219,6 +221,8 @@ eal_thread_loop(void *arg) > */ > __atomic_store_n(&lcore_config[lcore_id].state, WAIT, > __ATOMIC_RELEASE); > + > + rte_eal_trace_thread_lcore_stopped(lcore_id); > } >=20 > /* never reached */ > diff --git a/lib/eal/common/eal_common_trace_points.c > b/lib/eal/common/eal_common_trace_points.c > index 3f5bf5c55c..0f1240ea3a 100644 > --- a/lib/eal/common/eal_common_trace_points.c > +++ b/lib/eal/common/eal_common_trace_points.c > @@ -70,6 +70,27 @@ > RTE_TRACE_POINT_REGISTER(rte_eal_trace_thread_remote_launch, > lib.eal.thread.remote.launch) > RTE_TRACE_POINT_REGISTER(rte_eal_trace_thread_lcore_ready, > lib.eal.thread.lcore.ready) > +RTE_TRACE_POINT_REGISTER(rte_eal_trace_thread_lcore_running, > + lib.eal.thread.lcore.running) > +RTE_TRACE_POINT_REGISTER(rte_eal_trace_thread_lcore_stopped, > + lib.eal.thread.lcore.stopped) > + > +RTE_TRACE_POINT_REGISTER(rte_eal_trace_service_map_lcore, > + lib.eal.service.map.lcore) > +RTE_TRACE_POINT_REGISTER(rte_eal_trace_service_lcore_state_change, > + lib.eal.service.lcore.state.change) > +RTE_TRACE_POINT_REGISTER(rte_eal_trace_service_lcore_start, > + lib.eal.service.lcore.start) > +RTE_TRACE_POINT_REGISTER(rte_eal_trace_service_lcore_stop, > + lib.eal.service.lcore.stop) > +RTE_TRACE_POINT_REGISTER(rte_eal_trace_service_run_begin, > + lib.eal.service.run.begin) > +RTE_TRACE_POINT_REGISTER(rte_eal_trace_service_runstate_set, > + lib.eal.service.run.state.set) > +RTE_TRACE_POINT_REGISTER(rte_eal_trace_service_run_end, > + lib.eal.service.run.end) > +RTE_TRACE_POINT_REGISTER(rte_eal_trace_service_component_register, > + lib.eal.service.component.register) >=20 > RTE_TRACE_POINT_REGISTER(rte_eal_trace_intr_callback_register, > lib.eal.intr.register) > diff --git a/lib/eal/common/rte_service.c b/lib/eal/common/rte_service.c > index 42ca1d001d..5daec007aa 100644 > --- a/lib/eal/common/rte_service.c > +++ b/lib/eal/common/rte_service.c > @@ -9,6 +9,7 @@ > #include > #include >=20 > +#include > #include > #include > #include > @@ -16,6 +17,7 @@ > #include > #include > #include > +#include >=20 > #include "eal_private.h" >=20 > @@ -276,6 +278,8 @@ rte_service_component_register(const struct > rte_service_spec *spec, > if (id_ptr) > *id_ptr =3D free_slot; >=20 > + rte_eal_trace_service_component_register(free_slot, spec->name); > + > return 0; > } >=20 > @@ -336,6 +340,7 @@ rte_service_runstate_set(uint32_t id, uint32_t runsta= te) > __atomic_store_n(&s->app_runstate, RUNSTATE_STOPPED, > __ATOMIC_RELEASE); >=20 > + rte_eal_trace_service_runstate_set(id, runstate); > return 0; > } >=20 > @@ -427,11 +432,15 @@ service_run(uint32_t i, struct core_state *cs, uint= 64_t > service_mask, > if (!rte_spinlock_trylock(&s->execute_lock)) > return -EBUSY; >=20 > + rte_eal_trace_service_run_begin(i, rte_lcore_id()); > service_runner_do_callback(s, cs, i); > rte_spinlock_unlock(&s->execute_lock); > - } else > + } else { > + rte_eal_trace_service_run_begin(i, rte_lcore_id()); > service_runner_do_callback(s, cs, i); > + } >=20 > + rte_eal_trace_service_run_end(i, rte_lcore_id()); > return 0; > } >=20 > @@ -658,6 +667,7 @@ int32_t > rte_service_map_lcore_set(uint32_t id, uint32_t lcore, uint32_t enabled) > { > uint32_t on =3D enabled > 0; > + rte_eal_trace_service_map_lcore(id, lcore, enabled); > return service_update(id, lcore, &on, 0); > } >=20 > @@ -683,6 +693,8 @@ set_lcore_state(uint32_t lcore, int32_t state) >=20 > /* update per-lcore optimized state tracking */ > lcore_states[lcore].is_service_core =3D (state =3D=3D ROLE_SERVICE); > + > + rte_eal_trace_service_lcore_state_change(lcore, state); > } >=20 > int32_t > @@ -780,6 +792,8 @@ rte_service_lcore_start(uint32_t lcore) > */ > __atomic_store_n(&cs->runstate, RUNSTATE_RUNNING, > __ATOMIC_RELEASE); >=20 > + rte_eal_trace_service_lcore_start(lcore); > + > int ret =3D rte_eal_remote_launch(service_runner_func, 0, lcore); > /* returns -EBUSY if the core is already launched, 0 on success */ > return ret; > @@ -824,6 +838,8 @@ rte_service_lcore_stop(uint32_t lcore) > __atomic_store_n(&lcore_states[lcore].runstate, RUNSTATE_STOPPED, > __ATOMIC_RELEASE); >=20 > + rte_eal_trace_service_lcore_stop(lcore); > + > return 0; > } >=20 > diff --git a/lib/eal/include/eal_trace_internal.h > b/lib/eal/include/eal_trace_internal.h > index 57d6de2535..9a37a08567 100644 > --- a/lib/eal/include/eal_trace_internal.h > +++ b/lib/eal/include/eal_trace_internal.h > @@ -174,6 +174,66 @@ RTE_TRACE_POINT( > rte_trace_point_emit_u32(lcore_id); > rte_trace_point_emit_string(cpuset); > ) > +RTE_TRACE_POINT_FP( > + rte_eal_trace_thread_lcore_running, > + RTE_TRACE_POINT_ARGS(unsigned int lcore_id, void *f), > + rte_trace_point_emit_u32(lcore_id); > + rte_trace_point_emit_ptr(f); > +) > +RTE_TRACE_POINT_FP( > + rte_eal_trace_thread_lcore_stopped, > + RTE_TRACE_POINT_ARGS(unsigned int lcore_id), > + rte_trace_point_emit_u32(lcore_id); > +) > + > +/* Service */ > +RTE_TRACE_POINT( > + rte_eal_trace_service_map_lcore, > + RTE_TRACE_POINT_ARGS(unsigned int id, unsigned int lcore_id, unsigned i= nt > enabled), > + rte_trace_point_emit_u32(id); > + rte_trace_point_emit_u32(lcore_id); > + rte_trace_point_emit_u32(enabled); > +) > +RTE_TRACE_POINT( > + rte_eal_trace_service_lcore_state_change, > + RTE_TRACE_POINT_ARGS(unsigned int lcore_id, int lcore_state), > + rte_trace_point_emit_u32(lcore_id); > + rte_trace_point_emit_i32(lcore_state); > +) > +RTE_TRACE_POINT( > + rte_eal_trace_service_lcore_start, > + RTE_TRACE_POINT_ARGS(unsigned int lcore_id), > + rte_trace_point_emit_u32(lcore_id); > +) > +RTE_TRACE_POINT( > + rte_eal_trace_service_lcore_stop, > + RTE_TRACE_POINT_ARGS(unsigned int lcore_id), > + rte_trace_point_emit_u32(lcore_id); > +) > +RTE_TRACE_POINT_FP( > + rte_eal_trace_service_run_begin, > + RTE_TRACE_POINT_ARGS(unsigned int id, unsigned int lcore_id), > + rte_trace_point_emit_u32(id); > + rte_trace_point_emit_u32(lcore_id); > +) > +RTE_TRACE_POINT( > + rte_eal_trace_service_runstate_set, > + RTE_TRACE_POINT_ARGS(unsigned int id, unsigned int run_state), > + rte_trace_point_emit_u32(id); > + rte_trace_point_emit_u32(run_state); > +) > +RTE_TRACE_POINT( > + rte_eal_trace_service_run_end, > + RTE_TRACE_POINT_ARGS(unsigned int id, unsigned int lcore_id), > + rte_trace_point_emit_u32(id); > + rte_trace_point_emit_u32(lcore_id); > +) > +RTE_TRACE_POINT( > + rte_eal_trace_service_component_register, > + RTE_TRACE_POINT_ARGS(int id, const char *service_name), > + rte_trace_point_emit_i32(id); > + rte_trace_point_emit_string(service_name); > +) >=20 > #ifdef __cplusplus > } > -- > 2.25.1