From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 51D4CA04B5; Thu, 29 Oct 2020 09:41:33 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 2F3F6C828; Thu, 29 Oct 2020 09:41:22 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id 12A01C80A for ; Thu, 29 Oct 2020 09:41:15 +0100 (CET) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 09T8ebmM009028; Thu, 29 Oct 2020 01:41:14 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pfpt0220; bh=3l/IEnSRPRNY9zS7a0gg4PQ09KioBeXMNVKSCJveNis=; b=TQKZVD0u5T1loIw2qLA0zyeZgkQV3TGjmBeLRYALeYADR1FTMbTIRwsrtzKUnC3NMi1K 79A/ER2S0LORpI+3ONx6B1BvO35pnYpFxvXpmtzKPKHdLWiasTxNmELf8EIue1OaJ9sW LqkbEyIDtXlcglAqpwzPd7YY2arjxRjp4ct5ZqB/nCroVnfc6s+rz3P1zwnxeYhi9MqB AQINJMasuIjEN72runbXkuPKXg6AYeV3G/pi4aZsoQTcPrIYn0yzbhZIFZSqawJ469Gv Jh4oqGev87PffM/NQT4QfMWf2RyjD6hJi1Ff4lU9q37rxYpR3PvXGPtH4dcRL9KKPdvR 0g== Received: from sc-exch03.marvell.com ([199.233.58.183]) by mx0a-0016f401.pphosted.com with ESMTP id 34chmnc044-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Thu, 29 Oct 2020 01:41:13 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 29 Oct 2020 01:41:12 -0700 Received: from SC-EXCH02.marvell.com (10.93.176.82) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 29 Oct 2020 01:41:12 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.169) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Thu, 29 Oct 2020 01:41:11 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ktiMztLBDqnWg2Ert3upXREK8sXibtWbFwcazMnF/qczO5S6thA9wxyGVLKAbAL38ZCvQ8glzmH4hF87P/vupBBQ0NXZCimWsZe1EQ3Bh1C56CSVlvr103B3QRFmi7q4PQgnI1ZA7J8NlryVuhvGMgDN4SZqLTpINOOn9Dait/VBQBVu+wORP1NEUgWz0lqTRv6lMeGUNK3lGKgUX2PTAAnr6oTDD0xyGIc7KsB04whOAvd2nhs8tVHWpmmgPPUM34lEIpyzFRUfVLbf3q0if4Z7ZPefW2vfYNjY/+tD1kTYmTak9P/twVlyNZqe4CB0ZcseOwkzuInr4CgVzOhWGQ== 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-SenderADCheck; bh=3l/IEnSRPRNY9zS7a0gg4PQ09KioBeXMNVKSCJveNis=; b=gta/L8HVf4yVnWAW5w7jO4TawkpJguoJLgygfgDUslPO5F43sx15CxR0fxZ266IjNq18HUFr/tsOg5fUyZMat96nNe9Ff9uPUNd0vbUPqKRNkV8mNdKqoJlnyUX6LJjfJEv+JtLlwuJxQgFWv3QE0pkT/l/hEyI06NIZkyuCnX8OhiPGUeD8aq9Vpcq0vW/UiOTjgj4V5pA8w6WFFB+OH1UmXhyAneALcKk+d874+EUdOxD+csB0ASS+CZ1ZpfL8Aa+y2hvv7yXyUHyu5jOtQl1hfBZSvnZ9RX4LS6za6zQrSkco/qbR10QRteHwPLGG3YWT10S4f+qk7eftwkXv1g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3l/IEnSRPRNY9zS7a0gg4PQ09KioBeXMNVKSCJveNis=; b=dQ/iqA+Mlh+UI/loVfFIKLzuzFj89szf1Rf2U2wdT/B0UfLHqBCxarsyq+S3cstHDxQ2mp944PQ6l/Ns9CF8RVNKEqX71doVDdQXh8xnwiO+lSERDGGfjBH0Pde3xBL6+h6pKzWs57vykbPew+w6RGKIbrr7Mhv4SctiLuyenwM= Received: from CY4PR18MB1622.namprd18.prod.outlook.com (2603:10b6:903:150::14) by CY4PR18MB1528.namprd18.prod.outlook.com (2603:10b6:903:14e::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.18; Thu, 29 Oct 2020 08:41:08 +0000 Received: from CY4PR18MB1622.namprd18.prod.outlook.com ([fe80::358d:ee84:5927:d04f]) by CY4PR18MB1622.namprd18.prod.outlook.com ([fe80::358d:ee84:5927:d04f%5]) with mapi id 15.20.3499.027; Thu, 29 Oct 2020 08:41:08 +0000 From: Sunil Kumar Kori To: David Marchand , "dev@dpdk.org" CC: Jerin Jacob Kollanukkaran Thread-Topic: [EXT] [PATCH v2 2/4] trace: remove size limit on CTF event description Thread-Index: AQHWrW2/Lmhtch1nQECnUJ4fvmnXoamuQs3Q Date: Thu, 29 Oct 2020 08:41:08 +0000 Message-ID: References: <20201023080058.13335-1-david.marchand@redhat.com> <20201028210249.9021-1-david.marchand@redhat.com> <20201028210249.9021-3-david.marchand@redhat.com> In-Reply-To: <20201028210249.9021-3-david.marchand@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=marvell.com; x-originating-ip: [27.63.42.181] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9706e6a2-86bc-4ecf-5b5b-08d87be661a7 x-ms-traffictypediagnostic: CY4PR18MB1528: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:343; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 66wF85kaTrN3vInD2184uE9O3+PBLTNZhc8fCIXTkhuGFutdDgH92Djwumm3pTqAlYcqz3Z917VsGLCNKWC4wUBirX5+HPGwy9jYuTWmKGAB2oAA3GHfqRnecGcTS9zFAPlKr/gnio6dDdwHa21bVWHLBKt/rx94JfVSh1xgWZ9qIMw3aWdupLSDay2x8hW3VLoKxIeYG5mm/T/OOXwKWtAZirR5g0gxs/AqioP1kupMsi1ed+sRpD9/n2mfbfaEUJz2fT9NoSfW8dl4ETHyr5l/TRCpfNeRtCfIFSiOhKlYDkgV8tQ8IRxOUWIE3M5cGVUz3/cf1UV+4RhVK/ZxPg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CY4PR18MB1622.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(376002)(39860400002)(366004)(396003)(136003)(26005)(5660300002)(52536014)(86362001)(8936002)(110136005)(4326008)(186003)(66476007)(6506007)(64756008)(66946007)(66556008)(66446008)(8676002)(7696005)(2906002)(76116006)(107886003)(9686003)(33656002)(71200400001)(83380400001)(316002)(55016002)(478600001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: 9KASMGZyI3PZZ+0rpIlu/zmWNMCfjolQ/NZhT7EBDIO7wvxxXmxnRtySLmNm+AihaFOx8ExjhcmIcVUyQtKyvi5lvaxLfZ27v4Wn8HLgi5cRXMtS/RBD/4ldfEt9k2Wm9+G4y+LL8wboOZ8dQsDLUOlx6M3RTCFHuFhkaF7UJ5T52jYEsEDXbP5cZIDKhY14I03l9DcKM4AlDZD3/WtoisFGRvPbEAXW1UqXr+XW1hENyqzt/Tk9y9CcZuWizph0h4CSDMBm9RyjYuWmgC3Va0GHswFY4sypf0C4IHxwStc0dpnKOXvCuo9tRtsscdJ6VkwL+DzGYSIFN9phMFZgtv4h7597MJeOr9+ZP9RNFJKQvllksswF0uRbMU6riGN4aWtg6bgT7dKiXPfLwNcfczG2pghDadHXaiMevRUXfNWsm5Rft4OJXQVkdhMlemlnAhQkQXFUYxN32chen5Qy4AMTlfo0RzXrj3bodlVpjnETyNzlvuHBfJsyFCq1hjC8Agl6Ot9OVd3N50Ow3PyXe0e7HfVjmOYzrTVjyikSq8JtCgPoUpsCNLv+WK3fo3CIcXumdF/THU61I1+/k+C74k0d/P3VZ/suBMOHkcAOb7TVpZCXCnZNGM+gxIwRpDpUo9RP8iUX5kCDihnAfr6ooA== 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: CY4PR18MB1622.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9706e6a2-86bc-4ecf-5b5b-08d87be661a7 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Oct 2020 08:41:08.2288 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: NoKUrgDwf6NDPDSpNyBTlecwuxlqXYp6CDe90lX6Af7/Pn3JXgzZeK58LClWsS/OlTPk/TRd4XuS0PEXv24R0w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR18MB1528 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.312, 18.0.737 definitions=2020-10-29_03:2020-10-29, 2020-10-29 signatures=0 Subject: Re: [dpdk-dev] [EXT] [PATCH v2 2/4] trace: remove size limit on CTF event description X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" >-----Original Message----- >From: David Marchand >Sent: Thursday, October 29, 2020 2:33 AM >To: dev@dpdk.org >Cc: Jerin Jacob Kollanukkaran ; Sunil Kumar Kori > >Subject: [EXT] [PATCH v2 2/4] trace: remove size limit on CTF event descri= ption > >External Email > >---------------------------------------------------------------------- >Rework registration so that it uses dynamic allocations and has no size li= mit. > >Signed-off-by: David Marchand >Reviewed-by: Jerin Jacob >--- > lib/librte_eal/common/eal_common_trace.c | 39 +++++++++----------- > lib/librte_eal/common/eal_common_trace_ctf.c | 3 +- > lib/librte_eal/common/eal_trace.h | 3 +- > 3 files changed, 20 insertions(+), 25 deletions(-) > >diff --git a/lib/librte_eal/common/eal_common_trace.c >b/lib/librte_eal/common/eal_common_trace.c >index 80b458edb6..bc031ca719 100644 >--- a/lib/librte_eal/common/eal_common_trace.c >+++ b/lib/librte_eal/common/eal_common_trace.c >@@ -17,8 +17,7 @@ > > RTE_DEFINE_PER_LCORE(volatile int, trace_point_sz); >RTE_DEFINE_PER_LCORE(void *, trace_mem); -static >RTE_DEFINE_PER_LCORE(char, ctf_field[TRACE_CTF_FIELD_SIZE]); -static >RTE_DEFINE_PER_LCORE(int, ctf_count); >+static RTE_DEFINE_PER_LCORE(char *, ctf_field); > > static struct trace_point_head tp_list =3D STAILQ_HEAD_INITIALIZER(tp_lis= t); >static struct trace trace =3D { .args =3D STAILQ_HEAD_INITIALIZER(trace.ar= gs), }; >@@ -429,32 +428,33 @@ trace_mem_free(void) void >__rte_trace_point_emit_field(size_t sz, const char *in, const char *dataty= pe) { >- char *field =3D RTE_PER_LCORE(ctf_field); >- int count =3D RTE_PER_LCORE(ctf_count); >- size_t size; >+ char *field; > char *fixup; > int rc; > >- size =3D RTE_MAX(0, TRACE_CTF_FIELD_SIZE - 1 - count); >- RTE_PER_LCORE(trace_point_sz) +=3D sz; > fixup =3D trace_metadata_fixup_field(in); > if (fixup !=3D NULL) > in =3D fixup; >- rc =3D snprintf(RTE_PTR_ADD(field, count), size, "%s %s;", datatype, in)= ; >+ rc =3D asprintf(&field, "%s%s %s;", >+ RTE_PER_LCORE(ctf_field) !=3D NULL ? >+ RTE_PER_LCORE(ctf_field) : "", >+ datatype, in); >+ free(RTE_PER_LCORE(ctf_field)); > free(fixup); >- if (rc <=3D 0 || (size_t)rc >=3D size) { >+ if (rc =3D=3D -1) { > RTE_PER_LCORE(trace_point_sz) =3D 0; >- trace_crit("CTF field is too long"); >+ RTE_PER_LCORE(ctf_field) =3D NULL; >+ trace_crit("could not allocate CTF field"); > return; > } >- RTE_PER_LCORE(ctf_count) +=3D rc; >+ RTE_PER_LCORE(trace_point_sz) +=3D sz; >+ RTE_PER_LCORE(ctf_field) =3D field; > } > > int > __rte_trace_point_register(rte_trace_point_t *handle, const char *name, > void (*register_fn)(void)) > { >- char *field =3D RTE_PER_LCORE(ctf_field); > struct trace_point *tp; > uint16_t sz; > >@@ -467,7 +467,6 @@ __rte_trace_point_register(rte_trace_point_t *handle, >const char *name, > > /* Check the size of the trace point object */ > RTE_PER_LCORE(trace_point_sz) =3D 0; >- RTE_PER_LCORE(ctf_count) =3D 0; > register_fn(); > if (RTE_PER_LCORE(trace_point_sz) =3D=3D 0) { > trace_err("missing rte_trace_emit_header() in register fn"); >@@ -505,15 +504,11 @@ __rte_trace_point_register(rte_trace_point_t >*handle, const char *name, > goto free; > } > >- /* Copy the field data for future use */ >- if (rte_strscpy(tp->ctf_field, field, TRACE_CTF_FIELD_SIZE) < 0) { >- trace_err("CTF field size is too long"); >- rte_errno =3D E2BIG; >- goto free; >- } >- >- /* Clear field memory for the next event */ >- memset(field, 0, TRACE_CTF_FIELD_SIZE); >+ /* Copy the accumulated fields description and clear it for the next >+ * trace point. >+ */ >+ tp->ctf_field =3D RTE_PER_LCORE(ctf_field); >+ RTE_PER_LCORE(ctf_field) =3D NULL; Although patch looks okay but I have one that how "tp->ctf_field" is popula= ted because during registration time RTE_PER_LCORE(ctf_field) will be NULL. So "tp->ctf_field"= will always be NULL. > > /* Form the trace handle */ > *handle =3D sz; >diff --git a/lib/librte_eal/common/eal_common_trace_ctf.c >b/lib/librte_eal/common/eal_common_trace_ctf.c >index 174cdac1b0..ac1f64d04b 100644 >--- a/lib/librte_eal/common/eal_common_trace_ctf.c >+++ b/lib/librte_eal/common/eal_common_trace_ctf.c >@@ -233,7 +233,8 @@ meta_event_emit(char **meta, int *offset, struct >trace_point *tp) > " fields :=3D struct {\n" > " %s\n" > " };\n" >- "};\n\n", trace_id_get(tp->handle), tp->name, tp->ctf_field); >+ "};\n\n", trace_id_get(tp->handle), tp->name, >+ tp->ctf_field !=3D NULL ? tp->ctf_field : ""); > return meta_copy(meta, offset, str, rc); } > >diff --git a/lib/librte_eal/common/eal_trace.h >b/lib/librte_eal/common/eal_trace.h >index 8a3f6c5359..06751eb23a 100644 >--- a/lib/librte_eal/common/eal_trace.h >+++ b/lib/librte_eal/common/eal_trace.h >@@ -24,7 +24,6 @@ > > #define TRACE_PREFIX_LEN 12 > #define TRACE_DIR_STR_LEN (sizeof("YYYY-mm-dd-AM-HH-MM-SS") + >TRACE_PREFIX_LEN) -#define TRACE_CTF_FIELD_SIZE 448 #define >TRACE_POINT_NAME_SIZE 64 #define TRACE_CTF_MAGIC 0xC1FC1FC1 > #define TRACE_MAX_ARGS 32 >@@ -33,7 +32,7 @@ struct trace_point { > STAILQ_ENTRY(trace_point) next; > rte_trace_point_t *handle; > char name[TRACE_POINT_NAME_SIZE]; >- char ctf_field[TRACE_CTF_FIELD_SIZE]; >+ char *ctf_field; > }; > > enum trace_area_e { >-- >2.23.0