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 10F94459CF; Wed, 18 Sep 2024 20:46:33 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C629F4026F; Wed, 18 Sep 2024 20:46:32 +0200 (CEST) Received: from mail-qk1-f177.google.com (mail-qk1-f177.google.com [209.85.222.177]) by mails.dpdk.org (Postfix) with ESMTP id 244AD4003C for ; Wed, 18 Sep 2024 20:46:31 +0200 (CEST) Received: by mail-qk1-f177.google.com with SMTP id af79cd13be357-7a9c3a4e809so2853285a.2 for ; Wed, 18 Sep 2024 11:46:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1726685190; x=1727289990; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=3SQMz7fhbzS2F99ZEgqEHG1N6c5VfQx2k9yZ1P7oH88=; b=E2VHnfY5w9lHh0b+vpJ7bwFhs9mczfEyafx6qVP1rH5yYwftwKPcDbwMywa7+7rvXS YYEbiA9jBKTIXnGyW88ANs1ur64yu8xkixoHltopbshbL0k+KnqdKHSRoeGKbZFEIuud XuvoAOLRfgOVuhhU5jjXpGyGzefiVnGk5iGiXqfwf96XnWMXJXjqIkjLb2B/QR0GAxmy r1yxHYG49sKyVkSnfZuskzzKp51pRqsBULEvD1ulZ2Ny+1b8G8IzF1UmtZkhCCnF4Uz2 NYQ2AlD1ufBV2cPdJwZh444+QN0YwPTRvROG7vp0+jpSEof0/MRs4mwAiJKRszxFf8Pw 2MhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726685190; x=1727289990; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3SQMz7fhbzS2F99ZEgqEHG1N6c5VfQx2k9yZ1P7oH88=; b=Fzz3sqvjrOEBMafIvfjnIVjRba1yV91E2yuiRwlOWcu1UWxEtvoQ9zJQxBYjFaJENE cZVRWQdSCmrmGjKn/prMg22+zPw06Y+5avPRiocaFKweBPVBQSRiSPM9zDzZM5lcGJjY 5Y7p4QoxD3wPkLDKbyVUBbUl8IkqBiKS06/8XCs6muMPvw5Arb75bQMHnmjqBA1AV2td zRTLGctJDnsxchQ2eLOnPaq0VmZXxvnVCzd8x3BVYiu+iLcYZ7TcTv1Xqp5CSPyDUPwL lfBU913Lb+iKVbFN85x6jsau+rWSDFiY1pnUEaMFP6zFuUG6Dt0lkvleMVohCnmBhOkE EEdA== X-Gm-Message-State: AOJu0YxHYzp/eF74+BEjLCfnovyL6r9Qlrx86ny38A5iHKyqcs5TAB+O kDixC/rLgth/NdBKztrU//e/OSZ3COokwhpSjZqwuk5HOztC3iL5 X-Google-Smtp-Source: AGHT+IEM/K/qq2x21KCyMceNA7WGr7pP2QlXj/jHCuWEEP9JfjrM5uNMEqM3X1eQErUVj/Jc6gL+DA== X-Received: by 2002:a05:620a:3915:b0:7a9:a23b:9d0c with SMTP id af79cd13be357-7ab30d1258cmr3538941585a.8.1726685190380; Wed, 18 Sep 2024 11:46:30 -0700 (PDT) Received: from carbon.. (modemcable170.45-80-70.mc.videotron.ca. [70.80.45.170]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7acb08c182dsm864785a.75.2024.09.18.11.46.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Sep 2024 11:46:29 -0700 (PDT) From: Adel Belkhiri To: Thomas Monjalon , Ferruh Yigit , Andrew Rybchenko Cc: dev@dpdk.org, Adel Belkhiri Subject: [PATCH v3] ethdev: optimize the activation of fast-path tracepoints Date: Wed, 18 Sep 2024 14:45:02 -0400 Message-Id: <20240918184502.125550-1-adel.belkhiri@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240913175828.21640-1-adel.belkhiri@gmail.com> References: <20240913175828.21640-1-adel.belkhiri@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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: Adel Belkhiri Split the tracepoints rte_ethdev_trace_rx_burst and rte_eth_trace_call_rx_callbacks into two separate ones for empty and non-empty calls to avoid saturating quickly the trace buffer. Signed-off-by: Adel Belkhiri --- .mailmap | 1 + doc/guides/rel_notes/release_24_11.rst | 2 ++ lib/ethdev/ethdev_private.c | 8 ++++++-- lib/ethdev/ethdev_trace_points.c | 14 ++++++++++---- lib/ethdev/rte_ethdev.h | 5 ++++- lib/ethdev/rte_ethdev_trace_fp.h | 23 +++++++++++++++++++++-- lib/ethdev/version.map | 7 ++++++- 7 files changed, 50 insertions(+), 10 deletions(-) diff --git a/.mailmap b/.mailmap index 4a508bafad..e86241dced 100644 --- a/.mailmap +++ b/.mailmap @@ -16,6 +16,7 @@ Abraham Tovar Adam Bynes Adam Dybkowski Adam Ludkiewicz +Adel Belkhiri Adham Masarwah Adrian Moreno Adrian Pielech diff --git a/doc/guides/rel_notes/release_24_11.rst b/doc/guides/rel_notes/release_24_11.rst index 0ff70d9057..b7c3ac4054 100644 --- a/doc/guides/rel_notes/release_24_11.rst +++ b/doc/guides/rel_notes/release_24_11.rst @@ -68,6 +68,8 @@ Removed Items Also, make sure to start the actual text at the margin. ======================================================= +* ethdev: Removed the __rte_ethdev_trace_rx_burst symbol, as the corresponding + tracepoint was split into two separate ones for empty and non-empty calls. API Changes ----------- diff --git a/lib/ethdev/ethdev_private.c b/lib/ethdev/ethdev_private.c index 626524558a..eed8c78747 100644 --- a/lib/ethdev/ethdev_private.c +++ b/lib/ethdev/ethdev_private.c @@ -298,8 +298,12 @@ rte_eth_call_rx_callbacks(uint16_t port_id, uint16_t queue_id, cb = cb->next; } - rte_eth_trace_call_rx_callbacks(port_id, queue_id, (void **)rx_pkts, - nb_rx, nb_pkts); + if (unlikely(nb_rx)) + rte_eth_trace_call_rx_callbacks_nonempty(port_id, queue_id, (void **)rx_pkts, + nb_rx, nb_pkts); + else + rte_eth_trace_call_rx_callbacks_empty(port_id, queue_id, (void **)rx_pkts, + nb_pkts); return nb_rx; } diff --git a/lib/ethdev/ethdev_trace_points.c b/lib/ethdev/ethdev_trace_points.c index 99e04f5893..6ecbee289b 100644 --- a/lib/ethdev/ethdev_trace_points.c +++ b/lib/ethdev/ethdev_trace_points.c @@ -25,14 +25,20 @@ RTE_TRACE_POINT_REGISTER(rte_ethdev_trace_stop, RTE_TRACE_POINT_REGISTER(rte_ethdev_trace_close, lib.ethdev.close) -RTE_TRACE_POINT_REGISTER(rte_ethdev_trace_rx_burst, - lib.ethdev.rx.burst) +RTE_TRACE_POINT_REGISTER(rte_ethdev_trace_rx_burst_empty, + lib.ethdev.rx.burst.empty) + +RTE_TRACE_POINT_REGISTER(rte_ethdev_trace_rx_burst_nonempty, + lib.ethdev.rx.burst.nonempty) RTE_TRACE_POINT_REGISTER(rte_ethdev_trace_tx_burst, lib.ethdev.tx.burst) -RTE_TRACE_POINT_REGISTER(rte_eth_trace_call_rx_callbacks, - lib.ethdev.call_rx_callbacks) +RTE_TRACE_POINT_REGISTER(rte_eth_trace_call_rx_callbacks_empty, + lib.ethdev.call_rx_callbacks.empty) + +RTE_TRACE_POINT_REGISTER(rte_eth_trace_call_rx_callbacks_nonempty, + lib.ethdev.call_rx_callbacks.nonempty) RTE_TRACE_POINT_REGISTER(rte_eth_trace_call_tx_callbacks, lib.ethdev.call_tx_callbacks) diff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h index 548fada1c7..eef254c463 100644 --- a/lib/ethdev/rte_ethdev.h +++ b/lib/ethdev/rte_ethdev.h @@ -6132,7 +6132,10 @@ rte_eth_rx_burst(uint16_t port_id, uint16_t queue_id, } #endif - rte_ethdev_trace_rx_burst(port_id, queue_id, (void **)rx_pkts, nb_rx); + if (unlikely(nb_rx)) + rte_ethdev_trace_rx_burst_nonempty(port_id, queue_id, (void **)rx_pkts, nb_rx); + else + rte_ethdev_trace_rx_burst_empty(port_id, queue_id, (void **)rx_pkts); return nb_rx; } diff --git a/lib/ethdev/rte_ethdev_trace_fp.h b/lib/ethdev/rte_ethdev_trace_fp.h index 40b6e4756b..d23865996a 100644 --- a/lib/ethdev/rte_ethdev_trace_fp.h +++ b/lib/ethdev/rte_ethdev_trace_fp.h @@ -18,7 +18,16 @@ extern "C" { #include RTE_TRACE_POINT_FP( - rte_ethdev_trace_rx_burst, + rte_ethdev_trace_rx_burst_empty, + RTE_TRACE_POINT_ARGS(uint16_t port_id, uint16_t queue_id, + void **pkt_tbl), + rte_trace_point_emit_u16(port_id); + rte_trace_point_emit_u16(queue_id); + rte_trace_point_emit_ptr(pkt_tbl); +) + +RTE_TRACE_POINT_FP( + rte_ethdev_trace_rx_burst_nonempty, RTE_TRACE_POINT_ARGS(uint16_t port_id, uint16_t queue_id, void **pkt_tbl, uint16_t nb_rx), rte_trace_point_emit_u16(port_id); @@ -38,7 +47,17 @@ RTE_TRACE_POINT_FP( ) RTE_TRACE_POINT_FP( - rte_eth_trace_call_rx_callbacks, + rte_eth_trace_call_rx_callbacks_empty, + RTE_TRACE_POINT_ARGS(uint16_t port_id, uint16_t queue_id, + void **rx_pkts, uint16_t nb_pkts), + rte_trace_point_emit_u16(port_id); + rte_trace_point_emit_u16(queue_id); + rte_trace_point_emit_ptr(rx_pkts); + rte_trace_point_emit_u16(nb_pkts); +) + +RTE_TRACE_POINT_FP( + rte_eth_trace_call_rx_callbacks_nonempty, RTE_TRACE_POINT_ARGS(uint16_t port_id, uint16_t queue_id, void **rx_pkts, uint16_t nb_rx, uint16_t nb_pkts), rte_trace_point_emit_u16(port_id); diff --git a/lib/ethdev/version.map b/lib/ethdev/version.map index 1669055ca5..f6aca95069 100644 --- a/lib/ethdev/version.map +++ b/lib/ethdev/version.map @@ -207,7 +207,6 @@ EXPERIMENTAL { rte_flow_dev_dump; # added in 20.05 - __rte_ethdev_trace_rx_burst; __rte_ethdev_trace_tx_burst; rte_flow_get_aged_flows; @@ -325,6 +324,12 @@ EXPERIMENTAL { rte_flow_template_table_resizable; rte_flow_template_table_resize; rte_flow_template_table_resize_complete; + + # added in 24.11 + __rte_ethdev_trace_rx_burst_empty; + __rte_ethdev_trace_rx_burst_nonempty; + __rte_eth_trace_call_rx_callbacks_empty; + __rte_eth_trace_call_rx_callbacks_nonempty; }; INTERNAL { -- 2.34.1