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 E742DA034C; Sun, 17 Jul 2022 11:56:32 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7AB8640695; Sun, 17 Jul 2022 11:56:32 +0200 (CEST) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id A7A4440687 for ; Sun, 17 Jul 2022 11:56:31 +0200 (CEST) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Subject: RE: [PATCH v1 1/2] eal: add lcore busyness telemetry Date: Sun, 17 Jul 2022 11:56:27 +0200 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35D871CD@smartserver.smartshare.dk> In-Reply-To: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [PATCH v1 1/2] eal: add lcore busyness telemetry Thread-Index: AdiYTJmZ7BVKfv4oQhKijV2m/y3LPAASDVxwAD1op6AADXM7gA== References: <24c49429394294cfbf0d9c506b205029bac77c8b.1657890378.git.anatoly.burakov@intel.com> <98CBD80474FA8B44BF855DF32C47DC35D871CC@smartserver.smartshare.dk> From: =?iso-8859-1?Q?Morten_Br=F8rup?= To: "Honnappa Nagarahalli" , "Anatoly Burakov" , , "Bruce Richardson" , "Nicolas Chautru" , "Fan Zhang" , "Ashish Gupta" , "Akhil Goyal" , "David Hunt" , "Chengwen Feng" , "Kevin Laatz" , "Ray Kinsella" , , "Ferruh Yigit" , "Andrew Rybchenko" , , "Sachin Saxena" , , "Ori Kam" , "Konstantin Ananyev" , "Thomas Monjalon" Cc: "Conor Walsh" , "nd" 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 > From: Honnappa Nagarahalli [mailto:Honnappa.Nagarahalli@arm.com] > Sent: Sunday, 17 July 2022 05.10 >=20 > >=20 > > Subject: RE: [PATCH v1 1/2] eal: add lcore busyness telemetry > > > > > From: Anatoly Burakov [mailto:anatoly.burakov@intel.com] > > > Sent: Friday, 15 July 2022 15.13 > > > > > > Currently, there is no way to measure lcore busyness in a passive > way, > > > without any modifications to the application. This patch adds a = new > > > EAL API that will be able to passively track core busyness. > > > > > > The busyness is calculated by relying on the fact that most DPDK > API's > > > will poll for packets. > > > > This is an "alternative fact"! Only run-to-completion applications > polls for RX. > > Pipelined applications do not poll for packets in every pipeline > stage. > I guess you meant, poll for packets from NIC. They still need to > receive packets from queues. We could do a similar thing for rte_ring > APIs. But it would mix apples, pears and bananas. Let's say you have a pipeline with three ingress preprocessing threads, = two advanced packet processing threads in the next pipeline stage and = one egress thread as the third pipeline stage. Now, the metrics reflects busyness for six threads, but three of them = are apples, two of them are pears, and one is bananas. I just realized another example, where this patch might give misleading = results on a run-to-completion application: One thread handles a specific type of packets received on an Ethdev = ingress queue set up by the rte_flow APIs, and another thread handles = ingress packets from another Ethdev ingress queue. E.g. the first queue = may contain packets for well known flows, where packets can be processed = quickly, and the other queue for other packets requiring more scrutiny. = Both threads are run-to-completion and handle Ethdev ingress packets. *So: Only applications where the threads perform the exact same task can = use this patch.* Also, rings may be used for other purposes than queueing packets between = pipeline stages. E.g. our application uses rings for fast bulk = allocation and freeing of other resources.