Soft Patch Panel
 help / color / Atom feed
* [spp] [PATCH 0/5] remove ringlatency stats functionality
@ 2020-06-22  1:18 x-fn-spp-ml
  2020-06-22  1:18 ` [spp] [PATCH 1/5] Makefile: " x-fn-spp-ml
                   ` (12 more replies)
  0 siblings, 13 replies; 16+ messages in thread
From: x-fn-spp-ml @ 2020-06-22  1:18 UTC (permalink / raw)
  To: spp, yasufum.o

From: Hideyuki Yamashita <yamashita.hideyuki@ntt-tx.co.jp>

This patch set removes 'ringlatency stats'
functionality which is not used anymore.

Hideyuki Yamashita (5):
  Makefile: remove ringlatency stats functionality
  shared: remove ringlatency stats functionality
  vf: remove ringlatency stats functionality
  pcap: remove ringlatency stats functionality
  mirror: remove ringlatency stats functionality

 src/mirror/Makefile                           |   6 -
 src/mirror/spp_mirror.c                       |  43 ----
 src/pcap/Makefile                             |   2 -
 src/pcap/spp_pcap.c                           |   8 -
 .../secondary/spp_worker_th/cmd_utils.h       |   3 -
 .../secondary/spp_worker_th/latency_stats.c   | 240 ------------------
 .../secondary/spp_worker_th/latency_stats.h   | 167 ------------
 .../secondary/spp_worker_th/port_capability.c |  47 ----
 src/vf/Makefile                               |   6 -
 src/vf/classifier.c                           |  19 +-
 src/vf/forwarder.c                            |  19 +-
 src/vf/spp_vf.c                               |  27 --
 12 files changed, 8 insertions(+), 579 deletions(-)
 delete mode 100644 src/shared/secondary/spp_worker_th/latency_stats.c
 delete mode 100644 src/shared/secondary/spp_worker_th/latency_stats.h

-- 
2.17.1


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [spp] [PATCH 1/5] Makefile: remove ringlatency stats functionality
  2020-06-22  1:18 [spp] [PATCH 0/5] remove ringlatency stats functionality x-fn-spp-ml
@ 2020-06-22  1:18 ` " x-fn-spp-ml
  2020-06-22  1:18 ` [spp] [PATCH 2/5] shared: " x-fn-spp-ml
                   ` (11 subsequent siblings)
  12 siblings, 0 replies; 16+ messages in thread
From: x-fn-spp-ml @ 2020-06-22  1:18 UTC (permalink / raw)
  To: spp, yasufum.o

From: Hideyuki Yamashita <yamashita.hideyuki@ntt-tx.co.jp>

This patch tries to remove ringlatency stats functionality.

Signed-off-by: Hideyuki Yamashita <yamashita.hideyuki@ntt-tx.co.jp>
Signed-off-by: Naoki Takada <ntakada14@gmail.com>
---
 src/mirror/Makefile | 6 ------
 src/pcap/Makefile   | 2 --
 src/vf/Makefile     | 6 ------
 3 files changed, 14 deletions(-)

diff --git a/src/mirror/Makefile b/src/mirror/Makefile
index e878c89..6cc960c 100644
--- a/src/mirror/Makefile
+++ b/src/mirror/Makefile
@@ -26,7 +26,6 @@ SRCS-y += $(SPP_WKT_DIR)/port_capability.c
 SRCS-y += $(SPP_WKT_DIR)/conn_spp_ctl.c
 SRCS-y += $(SPP_WKT_DIR)/cmd_parser.c
 SRCS-y += $(SPP_WKT_DIR)/cmd_runner.c
-SRCS-y += $(SPP_WKT_DIR)/latency_stats.c
 SRCS-y += $(SPP_WKT_DIR)/cmd_res_formatter.c
 
 CFLAGS += -DALLOW_EXPERIMENTAL_API
@@ -43,11 +42,6 @@ CFLAGS += -DSPP_MIRROR_SHALLOWCOPY
 # Optional Settings
 #CFLAGS += -DSPP_DEMONIZE
 
-# TODO(Hideyuki Yamashita) ringlatencystats cannot run because a fatal
-# bug in initialization of this feature. So you should not use it until
-# this fatal bug is fixed.
-#CFLAGS += -DSPP_RINGLATENCYSTATS_ENABLE
-
 ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
 LDLIBS += -lrte_pmd_ring
 LDLIBS += -lrte_pmd_vhost
diff --git a/src/pcap/Makefile b/src/pcap/Makefile
index 4e53952..6da03f6 100644
--- a/src/pcap/Makefile
+++ b/src/pcap/Makefile
@@ -24,7 +24,6 @@ SRCS-y += $(SPP_SEC_DIR)/utils.c
 SRCS-y += $(SPP_SEC_DIR)/string_buffer.c
 SRCS-y += $(SPP_WKT_DIR)/conn_spp_ctl.c
 SRCS-y += $(SPP_WKT_DIR)/port_capability.c
-SRCS-y += $(SPP_WKT_DIR)/latency_stats.c
 
 CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += $(WERROR_FLAGS) -O3 -MMD
@@ -34,7 +33,6 @@ CFLAGS += -I$(SRCDIR)/../shared
 
 # Optional Settings
 #CFLAGS += -DSPP_DEMONIZE
-#CFLAGS += -DSPP_RINGLATENCYSTATS_ENABLE
 
 LDLIBS += -llz4
 
diff --git a/src/vf/Makefile b/src/vf/Makefile
index 1daddb6..ebaed37 100644
--- a/src/vf/Makefile
+++ b/src/vf/Makefile
@@ -20,7 +20,6 @@ SRCS-y += $(SPP_SEC_DIR)/string_buffer.c
 SRCS-y += $(SPP_SEC_DIR)/json_helper.c
 SRCS-y += $(SPP_SEC_DIR)/common.c
 SRCS-y += $(SPP_SEC_DIR)/utils.c $(SPP_SEC_DIR)/add_port.c
-SRCS-y += $(SPP_WKT_DIR)/latency_stats.c
 SRCS-y += $(SPP_WKT_DIR)/port_capability.c
 SRCS-y += $(SPP_WKT_DIR)/conn_spp_ctl.c
 SRCS-y += $(SPP_WKT_DIR)/cmd_parser.c
@@ -38,11 +37,6 @@ CFLAGS += -DSPP_VF_MODULE
 # Optional Settings
 #CFLAGS += -DSPP_DEMONIZE
 
-# TODO(Hideyuki Yamashita) ringlatencystats cannot run because a fatal
-# bug in initialization of this feature. So you should not use it until
-# this fatal bug is fixed.
-#CFLAGS += -DSPP_RINGLATENCYSTATS_ENABLE
-
 ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
 LDLIBS += -lrte_pmd_ring
 LDLIBS += -lrte_pmd_vhost
-- 
2.17.1


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [spp] [PATCH 2/5] shared: remove ringlatency stats functionality
  2020-06-22  1:18 [spp] [PATCH 0/5] remove ringlatency stats functionality x-fn-spp-ml
  2020-06-22  1:18 ` [spp] [PATCH 1/5] Makefile: " x-fn-spp-ml
@ 2020-06-22  1:18 ` " x-fn-spp-ml
  2020-06-22  1:18 ` [spp] [PATCH 3/5] vf: " x-fn-spp-ml
                   ` (10 subsequent siblings)
  12 siblings, 0 replies; 16+ messages in thread
From: x-fn-spp-ml @ 2020-06-22  1:18 UTC (permalink / raw)
  To: spp, yasufum.o

From: Hideyuki Yamashita <yamashita.hideyuki@ntt-tx.co.jp>

This patch tries to remove ringlatency stats functionality.

Signed-off-by: Hideyuki Yamashita <yamashita.hideyuki@ntt-tx.co.jp>
Signed-off-by: Naoki Takada <ntakada14@gmail.com>
---
 .../secondary/spp_worker_th/cmd_utils.h       |   3 -
 .../secondary/spp_worker_th/latency_stats.c   | 240 ------------------
 .../secondary/spp_worker_th/latency_stats.h   | 167 ------------
 .../secondary/spp_worker_th/port_capability.c |  47 ----
 4 files changed, 457 deletions(-)
 delete mode 100644 src/shared/secondary/spp_worker_th/latency_stats.c
 delete mode 100644 src/shared/secondary/spp_worker_th/latency_stats.h

diff --git a/src/shared/secondary/spp_worker_th/cmd_utils.h b/src/shared/secondary/spp_worker_th/cmd_utils.h
index eda55c6..3c4bec9 100644
--- a/src/shared/secondary/spp_worker_th/cmd_utils.h
+++ b/src/shared/secondary/spp_worker_th/cmd_utils.h
@@ -51,9 +51,6 @@
  */
 #define CLS_DUMMY_ADDR_STR "00:00:00:00:00:01"
 
-/* Sampling interval timer for latency evaluation */
-#define SPP_RING_LATENCY_STATS_SAMPLING_INTERVAL 1000000
-
 /**
  * TODO(Yamashita) change type names.
  *  "merge" -> "merger", "forward" -> "forwarder".
diff --git a/src/shared/secondary/spp_worker_th/latency_stats.c b/src/shared/secondary/spp_worker_th/latency_stats.c
deleted file mode 100644
index d43f6a8..0000000
--- a/src/shared/secondary/spp_worker_th/latency_stats.c
+++ /dev/null
@@ -1,240 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2017-2018 Nippon Telegraph and Telephone Corporation
- */
-
-#include <unistd.h>
-#include <sys/types.h>
-#include <stdio.h>
-#include <stddef.h>
-#include <math.h>
-
-#include <rte_mbuf.h>
-#include <rte_log.h>
-#include <rte_cycles.h>
-#include <rte_malloc.h>
-#include <rte_memcpy.h>
-
-#include "latency_stats.h"
-#include "cmd_utils.h"
-#include "port_capability.h"
-#include "../return_codes.h"
-
-#define NS_PER_SEC 1E9
-
-#define RTE_LOGTYPE_SPP_RING_LATENCY_STATS RTE_LOGTYPE_USER1
-
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-
-/** ring latency statistics information */
-struct ring_latency_stats_info {
-	uint64_t timer_tsc;  /**< sampling interval */
-	uint64_t prev_tsc;   /**< previous time */
-	struct ring_latency_stats_t stats;  /**< list of stats */
-};
-
-/** sampling interval */
-static uint64_t g_samp_intvl;
-
-/** ring latency statistics information instance */
-static struct ring_latency_stats_info *g_stats_info;
-
-/** number of ring latency statistics */
-static uint16_t g_stats_count;
-
-/* clock cycles per nano second */
-static inline uint64_t
-cycles_per_ns(void)
-{
-	return rte_get_timer_hz() / NS_PER_SEC;
-}
-
-/**
- * TODO(Hideyuki Yamashita) This function has a fatal bug in rte_zmalloc()
- * for `g_stats_info` and should be fixed. rte_zmalloc() returns NULL for
- * unknow reason.
- */
-int
-sppwk_init_ring_latency_stats(uint64_t samp_intvl, uint16_t stats_count)
-{
-	/* allocate memory for ring latency statistics information */
-	g_stats_info = rte_zmalloc(
-			"global ring_latency_stats_info",
-			sizeof(struct ring_latency_stats_info) * stats_count,
-			0);
-	if (unlikely(g_stats_info == NULL)) {
-		RTE_LOG(ERR, SPP_RING_LATENCY_STATS, "Cannot allocate memory "
-				"for ring latency stats info\n");
-		return SPPWK_RET_NG;
-	}
-
-	/* store global information for ring latency statistics */
-	g_samp_intvl = samp_intvl * cycles_per_ns();
-	g_stats_count = stats_count;
-
-	RTE_LOG(DEBUG, SPP_RING_LATENCY_STATS,
-			"g_samp_intvl=%lu, g_stats_count=%hu, "
-			"cpns=%lu, NS_PER_SEC=%f\n",
-			g_samp_intvl, g_stats_count,
-			cycles_per_ns(), NS_PER_SEC);
-
-	return SPPWK_RET_OK;
-}
-
-void
-sppwk_clean_ring_latency_stats(void)
-{
-	/* free memory for ring latency statistics information */
-	if (likely(g_stats_info != NULL)) {
-		rte_free(g_stats_info);
-		g_stats_count = 0;
-	}
-}
-
-void
-sppwk_add_ring_latency_time(int ring_id,
-		struct rte_mbuf **pkts, uint16_t nb_pkts)
-{
-	unsigned int i;
-	uint64_t diff_tsc, now;
-	struct ring_latency_stats_info *stats_info = &g_stats_info[ring_id];
-
-	for (i = 0; i < nb_pkts; i++) {
-
-		/* get tsc now */
-		now = rte_rdtsc();
-
-		/* calculate difference from the previous processing time */
-		diff_tsc = now - stats_info->prev_tsc;
-		stats_info->timer_tsc += diff_tsc;
-
-		/* set tsc to mbuf timestamp if it is over sampling interval. */
-		if (unlikely(stats_info->timer_tsc >= g_samp_intvl)) {
-			RTE_LOG(DEBUG, SPP_RING_LATENCY_STATS,
-					"Set timestamp. ring_id=%d, "
-					"pkts_index=%u, timestamp=%lu\n",
-					ring_id, i, now);
-			pkts[i]->timestamp = now;
-			stats_info->timer_tsc = 0;
-		}
-
-		/* update previous tsc */
-		stats_info->prev_tsc = now;
-	}
-}
-
-void
-sppwk_calc_ring_latency(int ring_id,
-		struct rte_mbuf **pkts, uint16_t nb_pkts)
-{
-	unsigned int i;
-	uint64_t now;
-	int64_t latency;
-	struct ring_latency_stats_info *stats_info = &g_stats_info[ring_id];
-
-	now = rte_rdtsc();
-	for (i = 0; i < nb_pkts; i++) {
-		if (likely(pkts[i]->timestamp == 0))
-			continue;
-
-		/* calc latency if mbuf `timestamp` is non-zero. */
-		latency = (uint64_t)floor((now - pkts[i]->timestamp) /
-				cycles_per_ns());
-		if (likely(latency < TOTAL_LATENCY_ENT-1))
-			stats_info->stats.distr[latency]++;
-		else
-			stats_info->stats.distr[TOTAL_LATENCY_ENT-1]++;
-	}
-}
-
-int
-sppwk_get_ring_latency_stats_count(void)
-{
-	return g_stats_count;
-}
-
-void
-sppwk_get_ring_latency_stats(int ring_id,
-		struct ring_latency_stats_t *stats)
-{
-	struct ring_latency_stats_info *stats_info = &g_stats_info[ring_id];
-
-	rte_memcpy(stats, &stats_info->stats,
-			sizeof(struct ring_latency_stats_t));
-}
-
-/* Print statistics of time for packet processing in ring interface */
-void
-print_ring_latency_stats(struct iface_info *if_info)
-{
-	/* Clear screen and move cursor to top left */
-	const char topLeft[] = { 27, '[', '1', ';', '1', 'H', '\0' };
-	const char clr[] = { 27, '[', '2', 'J', '\0' };
-	printf("%s%s", clr, topLeft);
-
-	int ring_cnt, stats_cnt;
-	struct ring_latency_stats_t stats[RTE_MAX_ETHPORTS];
-	memset(&stats, 0x00, sizeof(stats));
-
-	printf("RING Latency\n");
-	printf(" RING");
-	for (ring_cnt = 0; ring_cnt < RTE_MAX_ETHPORTS; ring_cnt++) {
-		if (if_info->ring[ring_cnt].iface_type == UNDEF)
-			continue;
-
-		sppwk_get_ring_latency_stats(ring_cnt, &stats[ring_cnt]);
-		printf(", %-18d", ring_cnt);
-	}
-	printf("\n");
-
-	for (stats_cnt = 0; stats_cnt < TOTAL_LATENCY_ENT;
-			stats_cnt++) {
-		printf("%3dns", stats_cnt);
-		for (ring_cnt = 0; ring_cnt < RTE_MAX_ETHPORTS; ring_cnt++) {
-			if (if_info->ring[ring_cnt].iface_type == UNDEF)
-				continue;
-
-			printf(", 0x%-16lx", stats[ring_cnt].distr[stats_cnt]);
-		}
-		printf("\n");
-	}
-}
-
-/* Wrapper function for rte_eth_rx_burst() with calc ring latency. */
-uint16_t
-sppwk_eth_ring_stats_rx_burst(uint16_t port_id,
-		enum port_type iface_type,
-		int iface_no,
-		uint16_t queue_id  __attribute__ ((unused)),
-		struct rte_mbuf **rx_pkts, const uint16_t nb_pkts)
-{
-	uint16_t nb_rx;
-
-	nb_rx = rte_eth_rx_burst(port_id, 0, rx_pkts, nb_pkts);
-
-	/* TODO(yasufum) confirm why it returns SPPWK_RET_OK. */
-	if (unlikely(nb_rx == 0))
-		return SPPWK_RET_OK;
-
-	if (iface_type == RING)
-		sppwk_calc_ring_latency(iface_no, rx_pkts, nb_pkts);
-	return nb_rx;
-}
-
-/* Wrapper function for rte_eth_tx_burst() with calc ring latency. */
-uint16_t
-sppwk_eth_ring_stats_tx_burst(uint16_t port_id,
-		enum port_type iface_type,
-		int iface_no,
-		uint16_t queue_id __attribute__ ((unused)),
-		struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
-{
-	uint16_t nb_tx;
-
-	nb_tx = rte_eth_tx_burst(port_id, 0, tx_pkts, nb_pkts);
-
-	if (iface_type == RING)
-		sppwk_add_ring_latency_time(iface_no, tx_pkts, nb_pkts);
-	return nb_tx;
-}
-
-#endif /* SPP_RINGLATENCYSTATS_ENABLE */
diff --git a/src/shared/secondary/spp_worker_th/latency_stats.h b/src/shared/secondary/spp_worker_th/latency_stats.h
deleted file mode 100644
index 1857672..0000000
--- a/src/shared/secondary/spp_worker_th/latency_stats.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2017-2018 Nippon Telegraph and Telephone Corporation
- */
-
-#ifndef _RINGLATENCYSTATS_H_
-#define _RINGLATENCYSTATS_H_
-
-/**
- * @file
- * SPP RING latency statistics
- *
- * Util functions for measuring latency of ring-PMD.
- */
-
-#include <rte_mbuf.h>
-#include "cmd_utils.h"
-
-/**
- * Statistics of latency of ring is counted with histgram like data structure.
- * To count frequency of each of time in nano sec, this data is implemented as
- * an array in which frequency counts of 1-100[ns] are contained. If the
- * latency is larger than 100[ns], it is added to the last entry. It means
- * this array has 101 entries, 100 entries for 1-100[ns] and 1 entry for over
- * 100[ns].
- */
-#define TOTAL_LATENCY_ENT 101
-
-/** statistics of latency of ring */
-struct ring_latency_stats_t {
-	uint64_t distr[TOTAL_LATENCY_ENT]; /* distribution of time */
-};
-
-
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-/**
- * initialize ring latency statistics.
- *
- * @param samp_intvl
- *  The interval timer(ns) to refer the counter.
- * @param stats_count
- *  The number of ring to be measured.
- *
- * @retval SPPWK_RET_OK: succeeded.
- * @retval SPPWK_RET_NG: failed.
- */
-int sppwk_init_ring_latency_stats(uint64_t samp_intvl, uint16_t stats_count);
-
-void sppwk_clean_ring_latency_stats(void);
-
-/**
- * add time-stamp to mbuf's member.
- *
- * @note call at enqueue.
- *
- * @param ring_id Ring id.
- * @param pkts Pointer to nb_pkts rte_mbuf containing packets.
- * @param nb_pkts Maximum number of packets to be measured.
- */
-void sppwk_add_ring_latency_time(int ring_id,
-		struct rte_mbuf **pkts, uint16_t nb_pkts);
-
-/**
- * calculate latency of ring.
- *
- * @note call at dequeue.
- *
- * @param ring_id ring id.
- * @param pkts Pointer to nb_pkts to containing packets.
- * @param nb_pkts Max number of packets to be measured.
- */
-void sppwk_calc_ring_latency(int ring_id,
-		struct rte_mbuf **pkts, uint16_t nb_pkts);
-
-/**
- * get number of ring latency statistics.
- *
- * @return sppwk_init_ring_latency_stats's parameter "stats_count"
- */
-int sppwk_get_ring_latency_stats_count(void);
-
-/**
- *get specific ring latency statistics.
- *
- * @param ring_id
- *  The ring id.
- * @param stats
- *  The statistics values.
- */
-void sppwk_get_ring_latency_stats(int ring_id,
-		struct ring_latency_stats_t *stats);
-
-/* Print statistics of time for packet processing in ring interface */
-void print_ring_latency_stats(struct iface_info *if_info);
-
-/**
- * Wrapper function for rte_eth_rx_burst() with ring latency feature.
- *
- * @param[in] port_id Etherdev ID.
- * @param[in] queue_id RX queue ID, but fixed value 0 in SPP.
- * @param[in] rx_pkts Pointers to mbuf should be enough to store nb_pkts.
- * @param nb_pkts Maximum number of RX packets.
- * @return Number of RX packets as number of pointers to mbuf.
- */
-uint16_t sppwk_eth_ring_stats_rx_burst(uint16_t port_id,
-		enum port_type iface_type,
-		int iface_no, uint16_t queue_id,
-		struct rte_mbuf **rx_pkts, const uint16_t nb_pkts);
-
-/**
- * Wrapper function for rte_eth_tx_burst() with ring latency feature.
- *
- * @param port_id Etherdev ID.
- * @param[in] queue_id TX queue ID, but fixed value 0 in SPP.
- * @param[in] tx_pkts Pointers to mbuf should be enough to store nb_pkts.
- * @param nb_pkts Maximum number of TX packets.
- * @return Number of TX packets as number of pointers to mbuf.
- */
-uint16_t sppwk_eth_ring_stats_tx_burst(uint16_t port_id,
-		enum port_type iface_type,
-		int iface_no, uint16_t queue_id,
-		struct rte_mbuf **tx_pkts, uint16_t nb_pkts);
-
-/**
- * Wrapper function for rte_eth_rx_burst() with VLAN and ring latency feature.
- *
- * @param[in] port_id Etherdev ID.
- * @param[in] queue_id RX queue ID, but fixed value 0 in SPP.
- * @param[in] rx_pkts Pointers to mbuf should be enough to store nb_pkts.
- * @param nb_pkts Maximum number of RX packets.
- * @return Number of RX packets as number of pointers to mbuf.
- */
-uint16_t sppwk_eth_vlan_ring_stats_rx_burst(uint16_t port_id,
-		enum port_type iface_type,
-		int iface_no, uint16_t queue_id,
-		struct rte_mbuf **rx_pkts, const uint16_t nb_pkts);
-
-/**
- * Wrapper function for rte_eth_tx_burst() with VLAN and ring latency feature.
- *
- * @param port_id Etherdev ID.
- * @param[in] queue_id TX queue ID, but fixed value 0 in SPP.
- * @param[in] tx_pkts Pointers to mbuf should be enough to store nb_pkts.
- * @param nb_pkts Maximum number of TX packets.
- * @return Number of TX packets as number of pointers to mbuf.
- */
-uint16_t sppwk_eth_vlan_ring_stats_tx_burst(uint16_t port_id,
-		enum port_type iface_type,
-		int iface_no, uint16_t queue_id,
-		struct rte_mbuf **tx_pkts, uint16_t nb_pkts);
-
-#else
-
-#define sppwk_init_ring_latency_stats(arg1, arg2) 0
-#define sppwk_clean_ring_latency_stats()
-#define sppwk_add_ring_latency_time(arg1, arg2, arg3)
-#define sppwk_calc_ring_latency(arg1, arg2, arg3)
-#define sppwk_get_ring_latency_stats_count() 0
-#define sppwk_get_ring_latency_stats(arg1, arg2)
-#define print_ringlatencystats_stats(arg)
-#define sppwk_eth_ring_stats_rx_burst(arg1, arg2, arg3, arg4, arg5, arg6)
-#define sppwk_eth_ring_stats_tx_burst(arg1, arg2, arg3, arg4, arg5, arg6)
-#define sppwk_eth_vlan_ring_stats_rx_burst(arg1, arg2, arg3, arg4, arg5, arg6)
-#define sppwk_eth_vlan_ring_stats_tx_burst(arg1, arg2, arg3, arg4, arg5, arg6)
-
-#endif /* SPP_RINGLATENCYSTATS_ENABLE */
-
-#endif /* _RINGLATENCYSTATS_H_ */
diff --git a/src/shared/secondary/spp_worker_th/port_capability.c b/src/shared/secondary/spp_worker_th/port_capability.c
index 5bd759f..cced906 100644
--- a/src/shared/secondary/spp_worker_th/port_capability.c
+++ b/src/shared/secondary/spp_worker_th/port_capability.c
@@ -11,9 +11,6 @@
 #include "port_capability.h"
 #include "shared/secondary/return_codes.h"
 
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-#include "latency_stats.h"
-#endif
 
 /**
  * TODO(yasufum) This `port capability` is intended to be used mainly for VLAN
@@ -407,47 +404,3 @@ sppwk_eth_vlan_tx_burst(uint16_t port_id,
 	return rte_eth_tx_burst(port_id, queue_id, tx_pkts, nb_tx);
 }
 
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-
-/* Wrapper function for rte_eth_rx_burst() with VLAN feature. */
-uint16_t
-sppwk_eth_vlan_ring_stats_rx_burst(uint16_t port_id,
-		enum port_type iface_type, int iface_no,
-		uint16_t queue_id __attribute__ ((unused)),
-		struct rte_mbuf **rx_pkts, const uint16_t nb_pkts)
-{
-	uint16_t nb_rx;
-	nb_rx = rte_eth_rx_burst(port_id, 0, rx_pkts, nb_pkts);
-	if (unlikely(nb_rx == 0))
-		return SPPWK_RET_OK;
-
-	if (iface_type == RING)
-		sppwk_calc_ring_latency(iface_no, rx_pkts, nb_pkts);
-
-	/* Add or delete VLAN tag. */
-	return vlan_operation(port_id, rx_pkts, nb_rx, SPPWK_PORT_DIR_RX);
-}
-
-/* Wrapper function for rte_eth_tx_burst() with VLAN feature. */
-uint16_t
-sppwk_eth_vlan_ring_stats_tx_burst(uint16_t port_id,
-		enum port_type iface_type, int iface_no,
-		uint16_t queue_id __attribute__ ((unused)),
-		struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
-{
-	uint16_t nb_tx;
-
-	/* Add or delete VLAN tag. */
-	nb_tx = vlan_operation(port_id, tx_pkts, nb_pkts, SPPWK_PORT_DIR_TX);
-
-	if (unlikely(nb_tx == 0))
-		return SPPWK_RET_OK;
-
-	if (iface_type == RING) {
-		sppwk_add_ring_latency_time(iface_no, tx_pkts, nb_pkts);
-	}
-
-	return rte_eth_tx_burst(port_id, 0, tx_pkts, nb_tx);
-}
-
-#endif /* SPP_RINGLATENCYSTATS_ENABLE */
-- 
2.17.1


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [spp] [PATCH 3/5] vf: remove ringlatency stats functionality
  2020-06-22  1:18 [spp] [PATCH 0/5] remove ringlatency stats functionality x-fn-spp-ml
  2020-06-22  1:18 ` [spp] [PATCH 1/5] Makefile: " x-fn-spp-ml
  2020-06-22  1:18 ` [spp] [PATCH 2/5] shared: " x-fn-spp-ml
@ 2020-06-22  1:18 ` " x-fn-spp-ml
  2020-06-22  1:18 ` [spp] [PATCH 4/5] pcap: " x-fn-spp-ml
                   ` (9 subsequent siblings)
  12 siblings, 0 replies; 16+ messages in thread
From: x-fn-spp-ml @ 2020-06-22  1:18 UTC (permalink / raw)
  To: spp, yasufum.o

From: Hideyuki Yamashita <yamashita.hideyuki@ntt-tx.co.jp>

This patch tries to remove ringlatency stats functionality.

Signed-off-by: Hideyuki Yamashita <yamashita.hideyuki@ntt-tx.co.jp>
Signed-off-by: Naoki Takada <ntakada14@gmail.com>
---
 src/vf/classifier.c | 19 ++++---------------
 src/vf/forwarder.c  | 19 ++++---------------
 src/vf/spp_vf.c     | 27 ---------------------------
 3 files changed, 8 insertions(+), 57 deletions(-)

diff --git a/src/vf/classifier.c b/src/vf/classifier.c
index 2d95289..58d0f03 100644
--- a/src/vf/classifier.c
+++ b/src/vf/classifier.c
@@ -29,9 +29,6 @@
 #include "shared/secondary/spp_worker_th/vf_deps.h"
 #include "shared/secondary/spp_worker_th/port_capability.h"
 
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-#include "shared/secondary/spp_worker_th/latency_stats.h"
-#endif
 
 #define RTE_LOGTYPE_VF_CLS RTE_LOGTYPE_USER1
 
@@ -424,15 +421,11 @@ transmit_packets(struct cls_port_info *clsd_data)
 	uint16_t n_tx;
 
 	/* transmit packets */
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-	n_tx = sppwk_eth_vlan_ring_stats_tx_burst(clsd_data->ethdev_port_id,
-			clsd_data->iface_type, clsd_data->iface_no,
-			0, clsd_data->pkts, clsd_data->nof_pkts);
-#else
+
 	n_tx = sppwk_eth_vlan_tx_burst(clsd_data->ethdev_port_id,
 			clsd_data->queue_no, clsd_data->pkts,
 			clsd_data->nof_pkts);
-#endif
+
 
 	/* free cannot transmit packets */
 	if (unlikely(n_tx != clsd_data->nof_pkts)) {
@@ -758,14 +751,10 @@ classify_packets(int comp_id)
 		return SPPWK_RET_OK;
 
 	/* Retrieve packets */
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-	n_rx = sppwk_eth_vlan_ring_stats_rx_burst(clsd_data_rx->ethdev_port_id,
-			clsd_data_rx->iface_type, clsd_data_rx->iface_no,
-			0, rx_pkts, MAX_PKT_BURST);
-#else
+
 	n_rx = sppwk_eth_vlan_rx_burst(clsd_data_rx->ethdev_port_id,
 			clsd_data_rx->queue_no, rx_pkts, MAX_PKT_BURST);
-#endif
+
 	if (unlikely(n_rx == 0))
 		return SPPWK_RET_OK;
 
diff --git a/src/vf/forwarder.c b/src/vf/forwarder.c
index 66e1682..a95d472 100644
--- a/src/vf/forwarder.c
+++ b/src/vf/forwarder.c
@@ -9,9 +9,6 @@
 #include "shared/secondary/spp_worker_th/vf_deps.h"
 #include "shared/secondary/spp_worker_th/port_capability.h"
 
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-#include "shared/secondary/spp_worker_th/latency_stats.h"
-#endif
 
 #define RTE_LOGTYPE_FORWARD RTE_LOGTYPE_USER1
 
@@ -214,27 +211,19 @@ forward_packets(int id)
 		rx = &path->ports[cnt].rx;
 		tx = &path->ports[cnt].tx;
 
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-		nb_rx = sppwk_eth_vlan_ring_stats_rx_burst(rx->ethdev_port_id,
-				rx->iface_type, rx->iface_no, 0,
-				bufs, MAX_PKT_BURST);
-#else
+
 		nb_rx = sppwk_eth_vlan_rx_burst(rx->ethdev_port_id,
 				rx->queue_no, bufs, MAX_PKT_BURST);
-#endif
+
 		if (unlikely(nb_rx == 0))
 			continue;
 
 		/* Send packets */
 		if (tx->ethdev_port_id >= 0)
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-			nb_tx = sppwk_eth_vlan_ring_stats_tx_burst(
-					tx->ethdev_port_id, tx->iface_type,
-					tx->iface_no, 0, bufs, nb_rx);
-#else
+
 			nb_tx = sppwk_eth_vlan_tx_burst(tx->ethdev_port_id,
 					tx->queue_no, bufs, nb_rx);
-#endif
+
 
 		/* Discard remained packets to release mbuf */
 		if (unlikely(nb_tx < nb_rx)) {
diff --git a/src/vf/spp_vf.c b/src/vf/spp_vf.c
index ab2e9f2..c2cc795 100644
--- a/src/vf/spp_vf.c
+++ b/src/vf/spp_vf.c
@@ -19,9 +19,6 @@
 
 #define RTE_LOGTYPE_SPP_VF RTE_LOGTYPE_USER1
 
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-#include "shared/secondary/spp_worker_th/latency_stats.h"
-#endif
 
 /* getopt_long return value for long option */
 enum SPP_LONGOPT_RETVAL {
@@ -280,24 +277,6 @@ main(int argc, char *argv[])
 		if (unlikely(ret != SPPWK_RET_OK))
 			break;
 
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-		int port_type, port_id;
-		char dev_name[RTE_DEV_NAME_MAX_LEN] = { 0 };
-		int nof_rings = 0;
-		for (int i = 0; i < RTE_MAX_ETHPORTS; i++) {
-			if (!rte_eth_dev_is_valid_port(i))
-				continue;
-			rte_eth_dev_get_name_by_port(i, dev_name);
-			ret = parse_dev_name(dev_name, &port_type, &port_id);
-			if (port_type == RING)
-				nof_rings++;
-		}
-		ret = sppwk_init_ring_latency_stats(
-				SPP_RING_LATENCY_STATS_SAMPLING_INTERVAL,
-				nof_rings);
-		if (unlikely(ret != SPPWK_RET_OK))
-			break;
-#endif /* SPP_RINGLATENCYSTATS_ENABLE */
 
 		/* Start worker threads of classifier and forwarder */
 		RTE_LCORE_FOREACH_SLAVE(lcore_id) {
@@ -332,9 +311,6 @@ main(int argc, char *argv[])
 			*/
 			usleep(100);
 
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-			print_ring_latency_stats(&g_iface_info);
-#endif /* SPP_RINGLATENCYSTATS_ENABLE */
 		}
 
 		if (unlikely(ret != SPPWK_RET_OK)) {
@@ -358,9 +334,6 @@ main(int argc, char *argv[])
 	 */
 	del_vhost_sockfile(g_iface_info.vhost);
 
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-	sppwk_clean_ring_latency_stats();
-#endif /* SPP_RINGLATENCYSTATS_ENABLE */
 
 	RTE_LOG(INFO, SPP_VF, "Exit spp_vf.\n");
 	return ret;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [spp] [PATCH 4/5] pcap: remove ringlatency stats functionality
  2020-06-22  1:18 [spp] [PATCH 0/5] remove ringlatency stats functionality x-fn-spp-ml
                   ` (2 preceding siblings ...)
  2020-06-22  1:18 ` [spp] [PATCH 3/5] vf: " x-fn-spp-ml
@ 2020-06-22  1:18 ` " x-fn-spp-ml
  2020-06-22  1:18 ` [spp] [PATCH 5/5] mirror: " x-fn-spp-ml
                   ` (8 subsequent siblings)
  12 siblings, 0 replies; 16+ messages in thread
From: x-fn-spp-ml @ 2020-06-22  1:18 UTC (permalink / raw)
  To: spp, yasufum.o

From: Hideyuki Yamashita <yamashita.hideyuki@ntt-tx.co.jp>

This patch tries to remove ringlatency stats functionality.

Signed-off-by: Hideyuki Yamashita <yamashita.hideyuki@ntt-tx.co.jp>
Signed-off-by: Naoki Takada <ntakada14@gmail.com>
---
 src/pcap/spp_pcap.c | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/src/pcap/spp_pcap.c b/src/pcap/spp_pcap.c
index 1f20e1e..5bb987f 100644
--- a/src/pcap/spp_pcap.c
+++ b/src/pcap/spp_pcap.c
@@ -23,9 +23,6 @@
 #include "shared/secondary/utils.h"
 #include "shared/secondary/spp_worker_th/port_capability.h"
 
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-#include "shared/secondary/spp_worker_th/latency_stats.h"
-#endif
 
 /* Declare global variables */
 #define RTE_LOGTYPE_SPP_PCAP RTE_LOGTYPE_USER2
@@ -847,13 +844,8 @@ static int pcap_proc_receive(int lcore_id)
 
 	/* Receive packets */
 	rx = &g_pcap_option.port_cap;
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-	nb_rx = sppwk_eth_ring_stats_rx_burst(rx->ethdev_port_id,
-			rx->iface_type, rx->iface_no, 0, bufs, MAX_PCAP_BURST);
-#else
 	nb_rx = rte_eth_rx_burst(rx->ethdev_port_id, rx->queue_no, bufs,
 			MAX_PCAP_BURST);
-#endif
 	if (unlikely(nb_rx == 0))
 		return SPPWK_RET_OK;
 
-- 
2.17.1


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [spp] [PATCH 5/5] mirror: remove ringlatency stats functionality
  2020-06-22  1:18 [spp] [PATCH 0/5] remove ringlatency stats functionality x-fn-spp-ml
                   ` (3 preceding siblings ...)
  2020-06-22  1:18 ` [spp] [PATCH 4/5] pcap: " x-fn-spp-ml
@ 2020-06-22  1:18 ` " x-fn-spp-ml
  2020-06-22  4:57 ` [spp] [PATCH 0/5] " Itsuro ODA
                   ` (7 subsequent siblings)
  12 siblings, 0 replies; 16+ messages in thread
From: x-fn-spp-ml @ 2020-06-22  1:18 UTC (permalink / raw)
  To: spp, yasufum.o

From: Hideyuki Yamashita <yamashita.hideyuki@ntt-tx.co.jp>

This patch tries to remove ringlatency stats functionality.

Signed-off-by: Hideyuki Yamashita <yamashita.hideyuki@ntt-tx.co.jp>
Signed-off-by: Naoki Takada <ntakada14@gmail.com>
---
 src/mirror/spp_mirror.c | 43 -----------------------------------------
 1 file changed, 43 deletions(-)

diff --git a/src/mirror/spp_mirror.c b/src/mirror/spp_mirror.c
index 2bfbf66..a2925f3 100644
--- a/src/mirror/spp_mirror.c
+++ b/src/mirror/spp_mirror.c
@@ -20,9 +20,6 @@
 #include "shared/secondary/spp_worker_th/cmd_utils.h"
 #include "shared/secondary/spp_worker_th/port_capability.h"
 
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-#include "shared/secondary/spp_worker_th/latency_stats.h"
-#endif
 
 /* Declare global variables */
 #define RTE_LOGTYPE_MIRROR RTE_LOGTYPE_USER1
@@ -336,13 +333,8 @@ mirror_proc(int id)
 
 	rx = &path->ports[0].rx;
 
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-	nb_rx = sppwk_eth_ring_stats_rx_burst(rx->ethdev_port_id,
-			rx->iface_type, rx->iface_no, 0, bufs, MAX_PKT_BURST);
-#else
 	nb_rx = rte_eth_rx_burst(rx->ethdev_port_id, rx->queue_no, bufs,
 			MAX_PKT_BURST);
-#endif
 
 	if (unlikely(nb_rx == 0))
 		return SPPWK_RET_OK;
@@ -399,26 +391,15 @@ mirror_proc(int id)
 		}
 
 		if (cnt != 0)
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-			nb_tx2 = sppwk_eth_ring_stats_tx_burst(
-					tx->ethdev_port_id, tx->iface_type,
-					tx->iface_no, 0, copybufs, cnt);
-#else
 			nb_tx2 = rte_eth_tx_burst(tx->ethdev_port_id,
 					tx->queue_no, copybufs, cnt);
-#endif
 	}
 
 	/* orginal */
 	tx = &path->ports[0].tx;
 	if (tx->ethdev_port_id >= 0)
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-		nb_tx1 = sppwk_eth_ring_stats_tx_burst(tx->ethdev_port_id,
-				tx->iface_type, tx->iface_no, 0, bufs, nb_rx);
-#else
 		nb_tx1 = rte_eth_tx_burst(tx->ethdev_port_id, tx->queue_no,
 				bufs, nb_rx);
-#endif
 	nb_tx = nb_tx1;
 
 	if (nb_tx1 != nb_tx2)
@@ -570,24 +551,6 @@ main(int argc, char *argv[])
 		if (unlikely(ret_cmd_init != SPPWK_RET_OK))
 			break;
 
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-		int port_type, port_id;
-		char dev_name[RTE_DEV_NAME_MAX_LEN] = { 0 };
-		int nof_rings = 0;
-		for (int i = 0; i < RTE_MAX_ETHPORTS; i++) {
-			if (!rte_eth_dev_is_valid_port(i))
-				continue;
-			rte_eth_dev_get_name_by_port(i, dev_name);
-			ret = parse_dev_name(dev_name, &port_type, &port_id);
-			if (port_type == RING)
-				nof_rings++;
-		}
-		int ret_ringlatency = sppwk_init_ring_latency_stats(
-				SPP_RING_LATENCY_STATS_SAMPLING_INTERVAL,
-				nof_rings);
-		if (unlikely(ret_ringlatency != SPPWK_RET_OK))
-			break;
-#endif /* SPP_RINGLATENCYSTATS_ENABLE */
 
 		/* Start worker threads of classifier and forwarder */
 		lcore_id = 0;
@@ -630,9 +593,6 @@ main(int argc, char *argv[])
 			 */
 			usleep(100);
 
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-			print_ring_latency_stats(&g_iface_info);
-#endif /* SPP_RINGLATENCYSTATS_ENABLE */
 		}
 
 		if (unlikely(ret_do != SPPWK_RET_OK)) {
@@ -653,9 +613,6 @@ main(int argc, char *argv[])
 	 /* Remove vhost sock file if not running in vhost-client mode. */
 	del_vhost_sockfile(g_iface_info.vhost);
 
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-	sppwk_clean_ring_latency_stats();
-#endif /* SPP_RINGLATENCYSTATS_ENABLE */
 
 	RTE_LOG(INFO, MIRROR, "Exit spp_mirror.\n");
 	return ret;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [spp] [PATCH 0/5] remove ringlatency stats functionality
  2020-06-22  1:18 [spp] [PATCH 0/5] remove ringlatency stats functionality x-fn-spp-ml
                   ` (4 preceding siblings ...)
  2020-06-22  1:18 ` [spp] [PATCH 5/5] mirror: " x-fn-spp-ml
@ 2020-06-22  4:57 ` " Itsuro ODA
  2020-07-02  0:31 ` Yasufumi Ogawa
                   ` (6 subsequent siblings)
  12 siblings, 0 replies; 16+ messages in thread
From: Itsuro ODA @ 2020-06-22  4:57 UTC (permalink / raw)
  To: spp, yasufum.o

Reviewed-by: Itsuro Oda <oda@valinux.co.jp>

On Mon, 22 Jun 2020 10:18:49 +0900
x-fn-spp-ml@ntt-tx.co.jp wrote:

> From: Hideyuki Yamashita <yamashita.hideyuki@ntt-tx.co.jp>
> 
> This patch set removes 'ringlatency stats'
> functionality which is not used anymore.
> 
> Hideyuki Yamashita (5):
>   Makefile: remove ringlatency stats functionality
>   shared: remove ringlatency stats functionality
>   vf: remove ringlatency stats functionality
>   pcap: remove ringlatency stats functionality
>   mirror: remove ringlatency stats functionality
> 
>  src/mirror/Makefile                           |   6 -
>  src/mirror/spp_mirror.c                       |  43 ----
>  src/pcap/Makefile                             |   2 -
>  src/pcap/spp_pcap.c                           |   8 -
>  .../secondary/spp_worker_th/cmd_utils.h       |   3 -
>  .../secondary/spp_worker_th/latency_stats.c   | 240 ------------------
>  .../secondary/spp_worker_th/latency_stats.h   | 167 ------------
>  .../secondary/spp_worker_th/port_capability.c |  47 ----
>  src/vf/Makefile                               |   6 -
>  src/vf/classifier.c                           |  19 +-
>  src/vf/forwarder.c                            |  19 +-
>  src/vf/spp_vf.c                               |  27 --
>  12 files changed, 8 insertions(+), 579 deletions(-)
>  delete mode 100644 src/shared/secondary/spp_worker_th/latency_stats.c
>  delete mode 100644 src/shared/secondary/spp_worker_th/latency_stats.h
> 
> -- 
> 2.17.1

-- 
Itsuro ODA <oda@valinux.co.jp>


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [spp] [PATCH 0/5] remove ringlatency stats functionality
  2020-06-22  1:18 [spp] [PATCH 0/5] remove ringlatency stats functionality x-fn-spp-ml
                   ` (5 preceding siblings ...)
  2020-06-22  4:57 ` [spp] [PATCH 0/5] " Itsuro ODA
@ 2020-07-02  0:31 ` Yasufumi Ogawa
  2020-07-09  4:28   ` Yasufumi Ogawa
  2020-07-09  5:30 ` [spp] [PATCH v2 " x-fn-spp-ml
                   ` (5 subsequent siblings)
  12 siblings, 1 reply; 16+ messages in thread
From: Yasufumi Ogawa @ 2020-07-02  0:31 UTC (permalink / raw)
  To: x-fn-spp-ml; +Cc: spp

> From: Hideyuki Yamashita <yamashita.hideyuki@ntt-tx.co.jp>
> 
> This patch set removes 'ringlatency stats'
> functionality which is not used anymore.
> 
> Hideyuki Yamashita (5):
>    Makefile: remove ringlatency stats functionality
>    shared: remove ringlatency stats functionality
>    vf: remove ringlatency stats functionality
>    pcap: remove ringlatency stats functionality
>    mirror: remove ringlatency stats functionality
All of tag names are inappropriate. Please find names from `git log 
--oneline` and collect them. The reason why `shared:` not appropriate is 
because all changes in this patch is only for `shared/secondary`, so tag 
name should be `shared/sec:`.

Thanks

> 
>   src/mirror/Makefile                           |   6 -
>   src/mirror/spp_mirror.c                       |  43 ----
>   src/pcap/Makefile                             |   2 -
>   src/pcap/spp_pcap.c                           |   8 -
>   .../secondary/spp_worker_th/cmd_utils.h       |   3 -
>   .../secondary/spp_worker_th/latency_stats.c   | 240 ------------------
>   .../secondary/spp_worker_th/latency_stats.h   | 167 ------------
>   .../secondary/spp_worker_th/port_capability.c |  47 ----
>   src/vf/Makefile                               |   6 -
>   src/vf/classifier.c                           |  19 +-
>   src/vf/forwarder.c                            |  19 +-
>   src/vf/spp_vf.c                               |  27 --
>   12 files changed, 8 insertions(+), 579 deletions(-)
>   delete mode 100644 src/shared/secondary/spp_worker_th/latency_stats.c
>   delete mode 100644 src/shared/secondary/spp_worker_th/latency_stats.h
> 

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [spp] [PATCH 0/5] remove ringlatency stats functionality
  2020-07-02  0:31 ` Yasufumi Ogawa
@ 2020-07-09  4:28   ` Yasufumi Ogawa
  0 siblings, 0 replies; 16+ messages in thread
From: Yasufumi Ogawa @ 2020-07-09  4:28 UTC (permalink / raw)
  To: x-fn-spp-ml; +Cc: spp

Any updates?

On 2020/07/02 9:31, Yasufumi Ogawa wrote:
>> From: Hideyuki Yamashita <yamashita.hideyuki@ntt-tx.co.jp>
>>
>> This patch set removes 'ringlatency stats'
>> functionality which is not used anymore.
>>
>> Hideyuki Yamashita (5):
>>    Makefile: remove ringlatency stats functionality
>>    shared: remove ringlatency stats functionality
>>    vf: remove ringlatency stats functionality
>>    pcap: remove ringlatency stats functionality
>>    mirror: remove ringlatency stats functionality
> All of tag names are inappropriate. Please find names from `git log 
> --oneline` and collect them. The reason why `shared:` not appropriate is 
> because all changes in this patch is only for `shared/secondary`, so tag 
> name should be `shared/sec:`.
> 
> Thanks
> 
>>
>>   src/mirror/Makefile                           |   6 -
>>   src/mirror/spp_mirror.c                       |  43 ----
>>   src/pcap/Makefile                             |   2 -
>>   src/pcap/spp_pcap.c                           |   8 -
>>   .../secondary/spp_worker_th/cmd_utils.h       |   3 -
>>   .../secondary/spp_worker_th/latency_stats.c   | 240 ------------------
>>   .../secondary/spp_worker_th/latency_stats.h   | 167 ------------
>>   .../secondary/spp_worker_th/port_capability.c |  47 ----
>>   src/vf/Makefile                               |   6 -
>>   src/vf/classifier.c                           |  19 +-
>>   src/vf/forwarder.c                            |  19 +-
>>   src/vf/spp_vf.c                               |  27 --
>>   12 files changed, 8 insertions(+), 579 deletions(-)
>>   delete mode 100644 src/shared/secondary/spp_worker_th/latency_stats.c
>>   delete mode 100644 src/shared/secondary/spp_worker_th/latency_stats.h
>>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [spp] [PATCH v2 0/5] remove ringlatency stats functionality
  2020-06-22  1:18 [spp] [PATCH 0/5] remove ringlatency stats functionality x-fn-spp-ml
                   ` (6 preceding siblings ...)
  2020-07-02  0:31 ` Yasufumi Ogawa
@ 2020-07-09  5:30 ` " x-fn-spp-ml
  2020-07-10  5:46   ` Yasufumi Ogawa
  2020-07-09  5:30 ` [spp] [PATCH v2 1/5] makefile: " x-fn-spp-ml
                   ` (4 subsequent siblings)
  12 siblings, 1 reply; 16+ messages in thread
From: x-fn-spp-ml @ 2020-07-09  5:30 UTC (permalink / raw)
  To: spp, yasufum.o

From: Hideyuki Yamashita <yamashita.hideyuki@ntt-tx.co.jp>

v2:
* change tag name of each patch to appropriate ones.

Hideyuki Yamashita (5):
  makefile: remove ringlatency stats functionality
  shared/sec: remove ringlatency stats functionality
  spp_pcap: remove ringlatency stats functionality
  spp_vf: remove ringlatency stats functionality
  spp_mirror: remove ringlatency stats functionality

 src/mirror/Makefile                           |   6 -
 src/mirror/spp_mirror.c                       |  43 ----
 src/pcap/Makefile                             |   2 -
 src/pcap/spp_pcap.c                           |   8 -
 .../secondary/spp_worker_th/cmd_utils.h       |   3 -
 .../secondary/spp_worker_th/latency_stats.c   | 240 ------------------
 .../secondary/spp_worker_th/latency_stats.h   | 167 ------------
 .../secondary/spp_worker_th/port_capability.c |  47 ----
 src/vf/Makefile                               |   6 -
 src/vf/classifier.c                           |  19 +-
 src/vf/forwarder.c                            |  19 +-
 src/vf/spp_vf.c                               |  27 --
 12 files changed, 8 insertions(+), 579 deletions(-)
 delete mode 100644 src/shared/secondary/spp_worker_th/latency_stats.c
 delete mode 100644 src/shared/secondary/spp_worker_th/latency_stats.h

-- 
2.17.1


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [spp] [PATCH v2 1/5] makefile: remove ringlatency stats functionality
  2020-06-22  1:18 [spp] [PATCH 0/5] remove ringlatency stats functionality x-fn-spp-ml
                   ` (7 preceding siblings ...)
  2020-07-09  5:30 ` [spp] [PATCH v2 " x-fn-spp-ml
@ 2020-07-09  5:30 ` " x-fn-spp-ml
  2020-07-09  5:30 ` [spp] [PATCH v2 2/5] shared/sec: " x-fn-spp-ml
                   ` (3 subsequent siblings)
  12 siblings, 0 replies; 16+ messages in thread
From: x-fn-spp-ml @ 2020-07-09  5:30 UTC (permalink / raw)
  To: spp, yasufum.o

From: Hideyuki Yamashita <yamashita.hideyuki@ntt-tx.co.jp>

This patch tries to remove ringlatency stats functionality.

Signed-off-by: Hideyuki Yamashita <yamashita.hideyuki@ntt-tx.co.jp>
Signed-off-by: Naoki Takada <ntakada14@gmail.com>
---
 src/mirror/Makefile | 6 ------
 src/pcap/Makefile   | 2 --
 src/vf/Makefile     | 6 ------
 3 files changed, 14 deletions(-)

diff --git a/src/mirror/Makefile b/src/mirror/Makefile
index e878c89..6cc960c 100644
--- a/src/mirror/Makefile
+++ b/src/mirror/Makefile
@@ -26,7 +26,6 @@ SRCS-y += $(SPP_WKT_DIR)/port_capability.c
 SRCS-y += $(SPP_WKT_DIR)/conn_spp_ctl.c
 SRCS-y += $(SPP_WKT_DIR)/cmd_parser.c
 SRCS-y += $(SPP_WKT_DIR)/cmd_runner.c
-SRCS-y += $(SPP_WKT_DIR)/latency_stats.c
 SRCS-y += $(SPP_WKT_DIR)/cmd_res_formatter.c
 
 CFLAGS += -DALLOW_EXPERIMENTAL_API
@@ -43,11 +42,6 @@ CFLAGS += -DSPP_MIRROR_SHALLOWCOPY
 # Optional Settings
 #CFLAGS += -DSPP_DEMONIZE
 
-# TODO(Hideyuki Yamashita) ringlatencystats cannot run because a fatal
-# bug in initialization of this feature. So you should not use it until
-# this fatal bug is fixed.
-#CFLAGS += -DSPP_RINGLATENCYSTATS_ENABLE
-
 ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
 LDLIBS += -lrte_pmd_ring
 LDLIBS += -lrte_pmd_vhost
diff --git a/src/pcap/Makefile b/src/pcap/Makefile
index 4e53952..6da03f6 100644
--- a/src/pcap/Makefile
+++ b/src/pcap/Makefile
@@ -24,7 +24,6 @@ SRCS-y += $(SPP_SEC_DIR)/utils.c
 SRCS-y += $(SPP_SEC_DIR)/string_buffer.c
 SRCS-y += $(SPP_WKT_DIR)/conn_spp_ctl.c
 SRCS-y += $(SPP_WKT_DIR)/port_capability.c
-SRCS-y += $(SPP_WKT_DIR)/latency_stats.c
 
 CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += $(WERROR_FLAGS) -O3 -MMD
@@ -34,7 +33,6 @@ CFLAGS += -I$(SRCDIR)/../shared
 
 # Optional Settings
 #CFLAGS += -DSPP_DEMONIZE
-#CFLAGS += -DSPP_RINGLATENCYSTATS_ENABLE
 
 LDLIBS += -llz4
 
diff --git a/src/vf/Makefile b/src/vf/Makefile
index 1daddb6..ebaed37 100644
--- a/src/vf/Makefile
+++ b/src/vf/Makefile
@@ -20,7 +20,6 @@ SRCS-y += $(SPP_SEC_DIR)/string_buffer.c
 SRCS-y += $(SPP_SEC_DIR)/json_helper.c
 SRCS-y += $(SPP_SEC_DIR)/common.c
 SRCS-y += $(SPP_SEC_DIR)/utils.c $(SPP_SEC_DIR)/add_port.c
-SRCS-y += $(SPP_WKT_DIR)/latency_stats.c
 SRCS-y += $(SPP_WKT_DIR)/port_capability.c
 SRCS-y += $(SPP_WKT_DIR)/conn_spp_ctl.c
 SRCS-y += $(SPP_WKT_DIR)/cmd_parser.c
@@ -38,11 +37,6 @@ CFLAGS += -DSPP_VF_MODULE
 # Optional Settings
 #CFLAGS += -DSPP_DEMONIZE
 
-# TODO(Hideyuki Yamashita) ringlatencystats cannot run because a fatal
-# bug in initialization of this feature. So you should not use it until
-# this fatal bug is fixed.
-#CFLAGS += -DSPP_RINGLATENCYSTATS_ENABLE
-
 ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
 LDLIBS += -lrte_pmd_ring
 LDLIBS += -lrte_pmd_vhost
-- 
2.17.1


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [spp] [PATCH v2 2/5] shared/sec: remove ringlatency stats functionality
  2020-06-22  1:18 [spp] [PATCH 0/5] remove ringlatency stats functionality x-fn-spp-ml
                   ` (8 preceding siblings ...)
  2020-07-09  5:30 ` [spp] [PATCH v2 1/5] makefile: " x-fn-spp-ml
@ 2020-07-09  5:30 ` " x-fn-spp-ml
  2020-07-09  5:30 ` [spp] [PATCH v2 3/5] spp_pcap: " x-fn-spp-ml
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 16+ messages in thread
From: x-fn-spp-ml @ 2020-07-09  5:30 UTC (permalink / raw)
  To: spp, yasufum.o

From: Hideyuki Yamashita <yamashita.hideyuki@ntt-tx.co.jp>

This patch tries to remove ringlatency stats functionality.

Signed-off-by: Hideyuki Yamashita <yamashita.hideyuki@ntt-tx.co.jp>
Signed-off-by: Naoki Takada <ntakada14@gmail.com>
---
 .../secondary/spp_worker_th/cmd_utils.h       |   3 -
 .../secondary/spp_worker_th/latency_stats.c   | 240 ------------------
 .../secondary/spp_worker_th/latency_stats.h   | 167 ------------
 .../secondary/spp_worker_th/port_capability.c |  47 ----
 4 files changed, 457 deletions(-)
 delete mode 100644 src/shared/secondary/spp_worker_th/latency_stats.c
 delete mode 100644 src/shared/secondary/spp_worker_th/latency_stats.h

diff --git a/src/shared/secondary/spp_worker_th/cmd_utils.h b/src/shared/secondary/spp_worker_th/cmd_utils.h
index eda55c6..3c4bec9 100644
--- a/src/shared/secondary/spp_worker_th/cmd_utils.h
+++ b/src/shared/secondary/spp_worker_th/cmd_utils.h
@@ -51,9 +51,6 @@
  */
 #define CLS_DUMMY_ADDR_STR "00:00:00:00:00:01"
 
-/* Sampling interval timer for latency evaluation */
-#define SPP_RING_LATENCY_STATS_SAMPLING_INTERVAL 1000000
-
 /**
  * TODO(Yamashita) change type names.
  *  "merge" -> "merger", "forward" -> "forwarder".
diff --git a/src/shared/secondary/spp_worker_th/latency_stats.c b/src/shared/secondary/spp_worker_th/latency_stats.c
deleted file mode 100644
index d43f6a8..0000000
--- a/src/shared/secondary/spp_worker_th/latency_stats.c
+++ /dev/null
@@ -1,240 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2017-2018 Nippon Telegraph and Telephone Corporation
- */
-
-#include <unistd.h>
-#include <sys/types.h>
-#include <stdio.h>
-#include <stddef.h>
-#include <math.h>
-
-#include <rte_mbuf.h>
-#include <rte_log.h>
-#include <rte_cycles.h>
-#include <rte_malloc.h>
-#include <rte_memcpy.h>
-
-#include "latency_stats.h"
-#include "cmd_utils.h"
-#include "port_capability.h"
-#include "../return_codes.h"
-
-#define NS_PER_SEC 1E9
-
-#define RTE_LOGTYPE_SPP_RING_LATENCY_STATS RTE_LOGTYPE_USER1
-
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-
-/** ring latency statistics information */
-struct ring_latency_stats_info {
-	uint64_t timer_tsc;  /**< sampling interval */
-	uint64_t prev_tsc;   /**< previous time */
-	struct ring_latency_stats_t stats;  /**< list of stats */
-};
-
-/** sampling interval */
-static uint64_t g_samp_intvl;
-
-/** ring latency statistics information instance */
-static struct ring_latency_stats_info *g_stats_info;
-
-/** number of ring latency statistics */
-static uint16_t g_stats_count;
-
-/* clock cycles per nano second */
-static inline uint64_t
-cycles_per_ns(void)
-{
-	return rte_get_timer_hz() / NS_PER_SEC;
-}
-
-/**
- * TODO(Hideyuki Yamashita) This function has a fatal bug in rte_zmalloc()
- * for `g_stats_info` and should be fixed. rte_zmalloc() returns NULL for
- * unknow reason.
- */
-int
-sppwk_init_ring_latency_stats(uint64_t samp_intvl, uint16_t stats_count)
-{
-	/* allocate memory for ring latency statistics information */
-	g_stats_info = rte_zmalloc(
-			"global ring_latency_stats_info",
-			sizeof(struct ring_latency_stats_info) * stats_count,
-			0);
-	if (unlikely(g_stats_info == NULL)) {
-		RTE_LOG(ERR, SPP_RING_LATENCY_STATS, "Cannot allocate memory "
-				"for ring latency stats info\n");
-		return SPPWK_RET_NG;
-	}
-
-	/* store global information for ring latency statistics */
-	g_samp_intvl = samp_intvl * cycles_per_ns();
-	g_stats_count = stats_count;
-
-	RTE_LOG(DEBUG, SPP_RING_LATENCY_STATS,
-			"g_samp_intvl=%lu, g_stats_count=%hu, "
-			"cpns=%lu, NS_PER_SEC=%f\n",
-			g_samp_intvl, g_stats_count,
-			cycles_per_ns(), NS_PER_SEC);
-
-	return SPPWK_RET_OK;
-}
-
-void
-sppwk_clean_ring_latency_stats(void)
-{
-	/* free memory for ring latency statistics information */
-	if (likely(g_stats_info != NULL)) {
-		rte_free(g_stats_info);
-		g_stats_count = 0;
-	}
-}
-
-void
-sppwk_add_ring_latency_time(int ring_id,
-		struct rte_mbuf **pkts, uint16_t nb_pkts)
-{
-	unsigned int i;
-	uint64_t diff_tsc, now;
-	struct ring_latency_stats_info *stats_info = &g_stats_info[ring_id];
-
-	for (i = 0; i < nb_pkts; i++) {
-
-		/* get tsc now */
-		now = rte_rdtsc();
-
-		/* calculate difference from the previous processing time */
-		diff_tsc = now - stats_info->prev_tsc;
-		stats_info->timer_tsc += diff_tsc;
-
-		/* set tsc to mbuf timestamp if it is over sampling interval. */
-		if (unlikely(stats_info->timer_tsc >= g_samp_intvl)) {
-			RTE_LOG(DEBUG, SPP_RING_LATENCY_STATS,
-					"Set timestamp. ring_id=%d, "
-					"pkts_index=%u, timestamp=%lu\n",
-					ring_id, i, now);
-			pkts[i]->timestamp = now;
-			stats_info->timer_tsc = 0;
-		}
-
-		/* update previous tsc */
-		stats_info->prev_tsc = now;
-	}
-}
-
-void
-sppwk_calc_ring_latency(int ring_id,
-		struct rte_mbuf **pkts, uint16_t nb_pkts)
-{
-	unsigned int i;
-	uint64_t now;
-	int64_t latency;
-	struct ring_latency_stats_info *stats_info = &g_stats_info[ring_id];
-
-	now = rte_rdtsc();
-	for (i = 0; i < nb_pkts; i++) {
-		if (likely(pkts[i]->timestamp == 0))
-			continue;
-
-		/* calc latency if mbuf `timestamp` is non-zero. */
-		latency = (uint64_t)floor((now - pkts[i]->timestamp) /
-				cycles_per_ns());
-		if (likely(latency < TOTAL_LATENCY_ENT-1))
-			stats_info->stats.distr[latency]++;
-		else
-			stats_info->stats.distr[TOTAL_LATENCY_ENT-1]++;
-	}
-}
-
-int
-sppwk_get_ring_latency_stats_count(void)
-{
-	return g_stats_count;
-}
-
-void
-sppwk_get_ring_latency_stats(int ring_id,
-		struct ring_latency_stats_t *stats)
-{
-	struct ring_latency_stats_info *stats_info = &g_stats_info[ring_id];
-
-	rte_memcpy(stats, &stats_info->stats,
-			sizeof(struct ring_latency_stats_t));
-}
-
-/* Print statistics of time for packet processing in ring interface */
-void
-print_ring_latency_stats(struct iface_info *if_info)
-{
-	/* Clear screen and move cursor to top left */
-	const char topLeft[] = { 27, '[', '1', ';', '1', 'H', '\0' };
-	const char clr[] = { 27, '[', '2', 'J', '\0' };
-	printf("%s%s", clr, topLeft);
-
-	int ring_cnt, stats_cnt;
-	struct ring_latency_stats_t stats[RTE_MAX_ETHPORTS];
-	memset(&stats, 0x00, sizeof(stats));
-
-	printf("RING Latency\n");
-	printf(" RING");
-	for (ring_cnt = 0; ring_cnt < RTE_MAX_ETHPORTS; ring_cnt++) {
-		if (if_info->ring[ring_cnt].iface_type == UNDEF)
-			continue;
-
-		sppwk_get_ring_latency_stats(ring_cnt, &stats[ring_cnt]);
-		printf(", %-18d", ring_cnt);
-	}
-	printf("\n");
-
-	for (stats_cnt = 0; stats_cnt < TOTAL_LATENCY_ENT;
-			stats_cnt++) {
-		printf("%3dns", stats_cnt);
-		for (ring_cnt = 0; ring_cnt < RTE_MAX_ETHPORTS; ring_cnt++) {
-			if (if_info->ring[ring_cnt].iface_type == UNDEF)
-				continue;
-
-			printf(", 0x%-16lx", stats[ring_cnt].distr[stats_cnt]);
-		}
-		printf("\n");
-	}
-}
-
-/* Wrapper function for rte_eth_rx_burst() with calc ring latency. */
-uint16_t
-sppwk_eth_ring_stats_rx_burst(uint16_t port_id,
-		enum port_type iface_type,
-		int iface_no,
-		uint16_t queue_id  __attribute__ ((unused)),
-		struct rte_mbuf **rx_pkts, const uint16_t nb_pkts)
-{
-	uint16_t nb_rx;
-
-	nb_rx = rte_eth_rx_burst(port_id, 0, rx_pkts, nb_pkts);
-
-	/* TODO(yasufum) confirm why it returns SPPWK_RET_OK. */
-	if (unlikely(nb_rx == 0))
-		return SPPWK_RET_OK;
-
-	if (iface_type == RING)
-		sppwk_calc_ring_latency(iface_no, rx_pkts, nb_pkts);
-	return nb_rx;
-}
-
-/* Wrapper function for rte_eth_tx_burst() with calc ring latency. */
-uint16_t
-sppwk_eth_ring_stats_tx_burst(uint16_t port_id,
-		enum port_type iface_type,
-		int iface_no,
-		uint16_t queue_id __attribute__ ((unused)),
-		struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
-{
-	uint16_t nb_tx;
-
-	nb_tx = rte_eth_tx_burst(port_id, 0, tx_pkts, nb_pkts);
-
-	if (iface_type == RING)
-		sppwk_add_ring_latency_time(iface_no, tx_pkts, nb_pkts);
-	return nb_tx;
-}
-
-#endif /* SPP_RINGLATENCYSTATS_ENABLE */
diff --git a/src/shared/secondary/spp_worker_th/latency_stats.h b/src/shared/secondary/spp_worker_th/latency_stats.h
deleted file mode 100644
index 1857672..0000000
--- a/src/shared/secondary/spp_worker_th/latency_stats.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2017-2018 Nippon Telegraph and Telephone Corporation
- */
-
-#ifndef _RINGLATENCYSTATS_H_
-#define _RINGLATENCYSTATS_H_
-
-/**
- * @file
- * SPP RING latency statistics
- *
- * Util functions for measuring latency of ring-PMD.
- */
-
-#include <rte_mbuf.h>
-#include "cmd_utils.h"
-
-/**
- * Statistics of latency of ring is counted with histgram like data structure.
- * To count frequency of each of time in nano sec, this data is implemented as
- * an array in which frequency counts of 1-100[ns] are contained. If the
- * latency is larger than 100[ns], it is added to the last entry. It means
- * this array has 101 entries, 100 entries for 1-100[ns] and 1 entry for over
- * 100[ns].
- */
-#define TOTAL_LATENCY_ENT 101
-
-/** statistics of latency of ring */
-struct ring_latency_stats_t {
-	uint64_t distr[TOTAL_LATENCY_ENT]; /* distribution of time */
-};
-
-
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-/**
- * initialize ring latency statistics.
- *
- * @param samp_intvl
- *  The interval timer(ns) to refer the counter.
- * @param stats_count
- *  The number of ring to be measured.
- *
- * @retval SPPWK_RET_OK: succeeded.
- * @retval SPPWK_RET_NG: failed.
- */
-int sppwk_init_ring_latency_stats(uint64_t samp_intvl, uint16_t stats_count);
-
-void sppwk_clean_ring_latency_stats(void);
-
-/**
- * add time-stamp to mbuf's member.
- *
- * @note call at enqueue.
- *
- * @param ring_id Ring id.
- * @param pkts Pointer to nb_pkts rte_mbuf containing packets.
- * @param nb_pkts Maximum number of packets to be measured.
- */
-void sppwk_add_ring_latency_time(int ring_id,
-		struct rte_mbuf **pkts, uint16_t nb_pkts);
-
-/**
- * calculate latency of ring.
- *
- * @note call at dequeue.
- *
- * @param ring_id ring id.
- * @param pkts Pointer to nb_pkts to containing packets.
- * @param nb_pkts Max number of packets to be measured.
- */
-void sppwk_calc_ring_latency(int ring_id,
-		struct rte_mbuf **pkts, uint16_t nb_pkts);
-
-/**
- * get number of ring latency statistics.
- *
- * @return sppwk_init_ring_latency_stats's parameter "stats_count"
- */
-int sppwk_get_ring_latency_stats_count(void);
-
-/**
- *get specific ring latency statistics.
- *
- * @param ring_id
- *  The ring id.
- * @param stats
- *  The statistics values.
- */
-void sppwk_get_ring_latency_stats(int ring_id,
-		struct ring_latency_stats_t *stats);
-
-/* Print statistics of time for packet processing in ring interface */
-void print_ring_latency_stats(struct iface_info *if_info);
-
-/**
- * Wrapper function for rte_eth_rx_burst() with ring latency feature.
- *
- * @param[in] port_id Etherdev ID.
- * @param[in] queue_id RX queue ID, but fixed value 0 in SPP.
- * @param[in] rx_pkts Pointers to mbuf should be enough to store nb_pkts.
- * @param nb_pkts Maximum number of RX packets.
- * @return Number of RX packets as number of pointers to mbuf.
- */
-uint16_t sppwk_eth_ring_stats_rx_burst(uint16_t port_id,
-		enum port_type iface_type,
-		int iface_no, uint16_t queue_id,
-		struct rte_mbuf **rx_pkts, const uint16_t nb_pkts);
-
-/**
- * Wrapper function for rte_eth_tx_burst() with ring latency feature.
- *
- * @param port_id Etherdev ID.
- * @param[in] queue_id TX queue ID, but fixed value 0 in SPP.
- * @param[in] tx_pkts Pointers to mbuf should be enough to store nb_pkts.
- * @param nb_pkts Maximum number of TX packets.
- * @return Number of TX packets as number of pointers to mbuf.
- */
-uint16_t sppwk_eth_ring_stats_tx_burst(uint16_t port_id,
-		enum port_type iface_type,
-		int iface_no, uint16_t queue_id,
-		struct rte_mbuf **tx_pkts, uint16_t nb_pkts);
-
-/**
- * Wrapper function for rte_eth_rx_burst() with VLAN and ring latency feature.
- *
- * @param[in] port_id Etherdev ID.
- * @param[in] queue_id RX queue ID, but fixed value 0 in SPP.
- * @param[in] rx_pkts Pointers to mbuf should be enough to store nb_pkts.
- * @param nb_pkts Maximum number of RX packets.
- * @return Number of RX packets as number of pointers to mbuf.
- */
-uint16_t sppwk_eth_vlan_ring_stats_rx_burst(uint16_t port_id,
-		enum port_type iface_type,
-		int iface_no, uint16_t queue_id,
-		struct rte_mbuf **rx_pkts, const uint16_t nb_pkts);
-
-/**
- * Wrapper function for rte_eth_tx_burst() with VLAN and ring latency feature.
- *
- * @param port_id Etherdev ID.
- * @param[in] queue_id TX queue ID, but fixed value 0 in SPP.
- * @param[in] tx_pkts Pointers to mbuf should be enough to store nb_pkts.
- * @param nb_pkts Maximum number of TX packets.
- * @return Number of TX packets as number of pointers to mbuf.
- */
-uint16_t sppwk_eth_vlan_ring_stats_tx_burst(uint16_t port_id,
-		enum port_type iface_type,
-		int iface_no, uint16_t queue_id,
-		struct rte_mbuf **tx_pkts, uint16_t nb_pkts);
-
-#else
-
-#define sppwk_init_ring_latency_stats(arg1, arg2) 0
-#define sppwk_clean_ring_latency_stats()
-#define sppwk_add_ring_latency_time(arg1, arg2, arg3)
-#define sppwk_calc_ring_latency(arg1, arg2, arg3)
-#define sppwk_get_ring_latency_stats_count() 0
-#define sppwk_get_ring_latency_stats(arg1, arg2)
-#define print_ringlatencystats_stats(arg)
-#define sppwk_eth_ring_stats_rx_burst(arg1, arg2, arg3, arg4, arg5, arg6)
-#define sppwk_eth_ring_stats_tx_burst(arg1, arg2, arg3, arg4, arg5, arg6)
-#define sppwk_eth_vlan_ring_stats_rx_burst(arg1, arg2, arg3, arg4, arg5, arg6)
-#define sppwk_eth_vlan_ring_stats_tx_burst(arg1, arg2, arg3, arg4, arg5, arg6)
-
-#endif /* SPP_RINGLATENCYSTATS_ENABLE */
-
-#endif /* _RINGLATENCYSTATS_H_ */
diff --git a/src/shared/secondary/spp_worker_th/port_capability.c b/src/shared/secondary/spp_worker_th/port_capability.c
index 5bd759f..cced906 100644
--- a/src/shared/secondary/spp_worker_th/port_capability.c
+++ b/src/shared/secondary/spp_worker_th/port_capability.c
@@ -11,9 +11,6 @@
 #include "port_capability.h"
 #include "shared/secondary/return_codes.h"
 
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-#include "latency_stats.h"
-#endif
 
 /**
  * TODO(yasufum) This `port capability` is intended to be used mainly for VLAN
@@ -407,47 +404,3 @@ sppwk_eth_vlan_tx_burst(uint16_t port_id,
 	return rte_eth_tx_burst(port_id, queue_id, tx_pkts, nb_tx);
 }
 
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-
-/* Wrapper function for rte_eth_rx_burst() with VLAN feature. */
-uint16_t
-sppwk_eth_vlan_ring_stats_rx_burst(uint16_t port_id,
-		enum port_type iface_type, int iface_no,
-		uint16_t queue_id __attribute__ ((unused)),
-		struct rte_mbuf **rx_pkts, const uint16_t nb_pkts)
-{
-	uint16_t nb_rx;
-	nb_rx = rte_eth_rx_burst(port_id, 0, rx_pkts, nb_pkts);
-	if (unlikely(nb_rx == 0))
-		return SPPWK_RET_OK;
-
-	if (iface_type == RING)
-		sppwk_calc_ring_latency(iface_no, rx_pkts, nb_pkts);
-
-	/* Add or delete VLAN tag. */
-	return vlan_operation(port_id, rx_pkts, nb_rx, SPPWK_PORT_DIR_RX);
-}
-
-/* Wrapper function for rte_eth_tx_burst() with VLAN feature. */
-uint16_t
-sppwk_eth_vlan_ring_stats_tx_burst(uint16_t port_id,
-		enum port_type iface_type, int iface_no,
-		uint16_t queue_id __attribute__ ((unused)),
-		struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
-{
-	uint16_t nb_tx;
-
-	/* Add or delete VLAN tag. */
-	nb_tx = vlan_operation(port_id, tx_pkts, nb_pkts, SPPWK_PORT_DIR_TX);
-
-	if (unlikely(nb_tx == 0))
-		return SPPWK_RET_OK;
-
-	if (iface_type == RING) {
-		sppwk_add_ring_latency_time(iface_no, tx_pkts, nb_pkts);
-	}
-
-	return rte_eth_tx_burst(port_id, 0, tx_pkts, nb_tx);
-}
-
-#endif /* SPP_RINGLATENCYSTATS_ENABLE */
-- 
2.17.1


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [spp] [PATCH v2 3/5] spp_pcap: remove ringlatency stats functionality
  2020-06-22  1:18 [spp] [PATCH 0/5] remove ringlatency stats functionality x-fn-spp-ml
                   ` (9 preceding siblings ...)
  2020-07-09  5:30 ` [spp] [PATCH v2 2/5] shared/sec: " x-fn-spp-ml
@ 2020-07-09  5:30 ` " x-fn-spp-ml
  2020-07-09  5:30 ` [spp] [PATCH v2 4/5] spp_vf: " x-fn-spp-ml
  2020-07-09  5:30 ` [spp] [PATCH v2 5/5] spp_mirror: " x-fn-spp-ml
  12 siblings, 0 replies; 16+ messages in thread
From: x-fn-spp-ml @ 2020-07-09  5:30 UTC (permalink / raw)
  To: spp, yasufum.o

From: Hideyuki Yamashita <yamashita.hideyuki@ntt-tx.co.jp>

This patch tries to remove ringlatency stats functionality.

Signed-off-by: Hideyuki Yamashita <yamashita.hideyuki@ntt-tx.co.jp>
Signed-off-by: Naoki Takada <ntakada14@gmail.com>
---
 src/pcap/spp_pcap.c | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/src/pcap/spp_pcap.c b/src/pcap/spp_pcap.c
index 1f20e1e..5bb987f 100644
--- a/src/pcap/spp_pcap.c
+++ b/src/pcap/spp_pcap.c
@@ -23,9 +23,6 @@
 #include "shared/secondary/utils.h"
 #include "shared/secondary/spp_worker_th/port_capability.h"
 
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-#include "shared/secondary/spp_worker_th/latency_stats.h"
-#endif
 
 /* Declare global variables */
 #define RTE_LOGTYPE_SPP_PCAP RTE_LOGTYPE_USER2
@@ -847,13 +844,8 @@ static int pcap_proc_receive(int lcore_id)
 
 	/* Receive packets */
 	rx = &g_pcap_option.port_cap;
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-	nb_rx = sppwk_eth_ring_stats_rx_burst(rx->ethdev_port_id,
-			rx->iface_type, rx->iface_no, 0, bufs, MAX_PCAP_BURST);
-#else
 	nb_rx = rte_eth_rx_burst(rx->ethdev_port_id, rx->queue_no, bufs,
 			MAX_PCAP_BURST);
-#endif
 	if (unlikely(nb_rx == 0))
 		return SPPWK_RET_OK;
 
-- 
2.17.1


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [spp] [PATCH v2 4/5] spp_vf: remove ringlatency stats functionality
  2020-06-22  1:18 [spp] [PATCH 0/5] remove ringlatency stats functionality x-fn-spp-ml
                   ` (10 preceding siblings ...)
  2020-07-09  5:30 ` [spp] [PATCH v2 3/5] spp_pcap: " x-fn-spp-ml
@ 2020-07-09  5:30 ` " x-fn-spp-ml
  2020-07-09  5:30 ` [spp] [PATCH v2 5/5] spp_mirror: " x-fn-spp-ml
  12 siblings, 0 replies; 16+ messages in thread
From: x-fn-spp-ml @ 2020-07-09  5:30 UTC (permalink / raw)
  To: spp, yasufum.o

From: Hideyuki Yamashita <yamashita.hideyuki@ntt-tx.co.jp>

This patch tries to remove ringlatency stats functionality.

Signed-off-by: Hideyuki Yamashita <yamashita.hideyuki@ntt-tx.co.jp>
Signed-off-by: Naoki Takada <ntakada14@gmail.com>
---
 src/vf/classifier.c | 19 ++++---------------
 src/vf/forwarder.c  | 19 ++++---------------
 src/vf/spp_vf.c     | 27 ---------------------------
 3 files changed, 8 insertions(+), 57 deletions(-)

diff --git a/src/vf/classifier.c b/src/vf/classifier.c
index 2d95289..58d0f03 100644
--- a/src/vf/classifier.c
+++ b/src/vf/classifier.c
@@ -29,9 +29,6 @@
 #include "shared/secondary/spp_worker_th/vf_deps.h"
 #include "shared/secondary/spp_worker_th/port_capability.h"
 
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-#include "shared/secondary/spp_worker_th/latency_stats.h"
-#endif
 
 #define RTE_LOGTYPE_VF_CLS RTE_LOGTYPE_USER1
 
@@ -424,15 +421,11 @@ transmit_packets(struct cls_port_info *clsd_data)
 	uint16_t n_tx;
 
 	/* transmit packets */
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-	n_tx = sppwk_eth_vlan_ring_stats_tx_burst(clsd_data->ethdev_port_id,
-			clsd_data->iface_type, clsd_data->iface_no,
-			0, clsd_data->pkts, clsd_data->nof_pkts);
-#else
+
 	n_tx = sppwk_eth_vlan_tx_burst(clsd_data->ethdev_port_id,
 			clsd_data->queue_no, clsd_data->pkts,
 			clsd_data->nof_pkts);
-#endif
+
 
 	/* free cannot transmit packets */
 	if (unlikely(n_tx != clsd_data->nof_pkts)) {
@@ -758,14 +751,10 @@ classify_packets(int comp_id)
 		return SPPWK_RET_OK;
 
 	/* Retrieve packets */
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-	n_rx = sppwk_eth_vlan_ring_stats_rx_burst(clsd_data_rx->ethdev_port_id,
-			clsd_data_rx->iface_type, clsd_data_rx->iface_no,
-			0, rx_pkts, MAX_PKT_BURST);
-#else
+
 	n_rx = sppwk_eth_vlan_rx_burst(clsd_data_rx->ethdev_port_id,
 			clsd_data_rx->queue_no, rx_pkts, MAX_PKT_BURST);
-#endif
+
 	if (unlikely(n_rx == 0))
 		return SPPWK_RET_OK;
 
diff --git a/src/vf/forwarder.c b/src/vf/forwarder.c
index 66e1682..a95d472 100644
--- a/src/vf/forwarder.c
+++ b/src/vf/forwarder.c
@@ -9,9 +9,6 @@
 #include "shared/secondary/spp_worker_th/vf_deps.h"
 #include "shared/secondary/spp_worker_th/port_capability.h"
 
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-#include "shared/secondary/spp_worker_th/latency_stats.h"
-#endif
 
 #define RTE_LOGTYPE_FORWARD RTE_LOGTYPE_USER1
 
@@ -214,27 +211,19 @@ forward_packets(int id)
 		rx = &path->ports[cnt].rx;
 		tx = &path->ports[cnt].tx;
 
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-		nb_rx = sppwk_eth_vlan_ring_stats_rx_burst(rx->ethdev_port_id,
-				rx->iface_type, rx->iface_no, 0,
-				bufs, MAX_PKT_BURST);
-#else
+
 		nb_rx = sppwk_eth_vlan_rx_burst(rx->ethdev_port_id,
 				rx->queue_no, bufs, MAX_PKT_BURST);
-#endif
+
 		if (unlikely(nb_rx == 0))
 			continue;
 
 		/* Send packets */
 		if (tx->ethdev_port_id >= 0)
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-			nb_tx = sppwk_eth_vlan_ring_stats_tx_burst(
-					tx->ethdev_port_id, tx->iface_type,
-					tx->iface_no, 0, bufs, nb_rx);
-#else
+
 			nb_tx = sppwk_eth_vlan_tx_burst(tx->ethdev_port_id,
 					tx->queue_no, bufs, nb_rx);
-#endif
+
 
 		/* Discard remained packets to release mbuf */
 		if (unlikely(nb_tx < nb_rx)) {
diff --git a/src/vf/spp_vf.c b/src/vf/spp_vf.c
index ab2e9f2..c2cc795 100644
--- a/src/vf/spp_vf.c
+++ b/src/vf/spp_vf.c
@@ -19,9 +19,6 @@
 
 #define RTE_LOGTYPE_SPP_VF RTE_LOGTYPE_USER1
 
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-#include "shared/secondary/spp_worker_th/latency_stats.h"
-#endif
 
 /* getopt_long return value for long option */
 enum SPP_LONGOPT_RETVAL {
@@ -280,24 +277,6 @@ main(int argc, char *argv[])
 		if (unlikely(ret != SPPWK_RET_OK))
 			break;
 
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-		int port_type, port_id;
-		char dev_name[RTE_DEV_NAME_MAX_LEN] = { 0 };
-		int nof_rings = 0;
-		for (int i = 0; i < RTE_MAX_ETHPORTS; i++) {
-			if (!rte_eth_dev_is_valid_port(i))
-				continue;
-			rte_eth_dev_get_name_by_port(i, dev_name);
-			ret = parse_dev_name(dev_name, &port_type, &port_id);
-			if (port_type == RING)
-				nof_rings++;
-		}
-		ret = sppwk_init_ring_latency_stats(
-				SPP_RING_LATENCY_STATS_SAMPLING_INTERVAL,
-				nof_rings);
-		if (unlikely(ret != SPPWK_RET_OK))
-			break;
-#endif /* SPP_RINGLATENCYSTATS_ENABLE */
 
 		/* Start worker threads of classifier and forwarder */
 		RTE_LCORE_FOREACH_SLAVE(lcore_id) {
@@ -332,9 +311,6 @@ main(int argc, char *argv[])
 			*/
 			usleep(100);
 
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-			print_ring_latency_stats(&g_iface_info);
-#endif /* SPP_RINGLATENCYSTATS_ENABLE */
 		}
 
 		if (unlikely(ret != SPPWK_RET_OK)) {
@@ -358,9 +334,6 @@ main(int argc, char *argv[])
 	 */
 	del_vhost_sockfile(g_iface_info.vhost);
 
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-	sppwk_clean_ring_latency_stats();
-#endif /* SPP_RINGLATENCYSTATS_ENABLE */
 
 	RTE_LOG(INFO, SPP_VF, "Exit spp_vf.\n");
 	return ret;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [spp] [PATCH v2 5/5] spp_mirror: remove ringlatency stats functionality
  2020-06-22  1:18 [spp] [PATCH 0/5] remove ringlatency stats functionality x-fn-spp-ml
                   ` (11 preceding siblings ...)
  2020-07-09  5:30 ` [spp] [PATCH v2 4/5] spp_vf: " x-fn-spp-ml
@ 2020-07-09  5:30 ` " x-fn-spp-ml
  12 siblings, 0 replies; 16+ messages in thread
From: x-fn-spp-ml @ 2020-07-09  5:30 UTC (permalink / raw)
  To: spp, yasufum.o

From: Hideyuki Yamashita <yamashita.hideyuki@ntt-tx.co.jp>

This patch tries to remove ringlatency stats functionality.

Signed-off-by: Hideyuki Yamashita <yamashita.hideyuki@ntt-tx.co.jp>
Signed-off-by: Naoki Takada <ntakada14@gmail.com>
---
 src/mirror/spp_mirror.c | 43 -----------------------------------------
 1 file changed, 43 deletions(-)

diff --git a/src/mirror/spp_mirror.c b/src/mirror/spp_mirror.c
index 2bfbf66..a2925f3 100644
--- a/src/mirror/spp_mirror.c
+++ b/src/mirror/spp_mirror.c
@@ -20,9 +20,6 @@
 #include "shared/secondary/spp_worker_th/cmd_utils.h"
 #include "shared/secondary/spp_worker_th/port_capability.h"
 
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-#include "shared/secondary/spp_worker_th/latency_stats.h"
-#endif
 
 /* Declare global variables */
 #define RTE_LOGTYPE_MIRROR RTE_LOGTYPE_USER1
@@ -336,13 +333,8 @@ mirror_proc(int id)
 
 	rx = &path->ports[0].rx;
 
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-	nb_rx = sppwk_eth_ring_stats_rx_burst(rx->ethdev_port_id,
-			rx->iface_type, rx->iface_no, 0, bufs, MAX_PKT_BURST);
-#else
 	nb_rx = rte_eth_rx_burst(rx->ethdev_port_id, rx->queue_no, bufs,
 			MAX_PKT_BURST);
-#endif
 
 	if (unlikely(nb_rx == 0))
 		return SPPWK_RET_OK;
@@ -399,26 +391,15 @@ mirror_proc(int id)
 		}
 
 		if (cnt != 0)
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-			nb_tx2 = sppwk_eth_ring_stats_tx_burst(
-					tx->ethdev_port_id, tx->iface_type,
-					tx->iface_no, 0, copybufs, cnt);
-#else
 			nb_tx2 = rte_eth_tx_burst(tx->ethdev_port_id,
 					tx->queue_no, copybufs, cnt);
-#endif
 	}
 
 	/* orginal */
 	tx = &path->ports[0].tx;
 	if (tx->ethdev_port_id >= 0)
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-		nb_tx1 = sppwk_eth_ring_stats_tx_burst(tx->ethdev_port_id,
-				tx->iface_type, tx->iface_no, 0, bufs, nb_rx);
-#else
 		nb_tx1 = rte_eth_tx_burst(tx->ethdev_port_id, tx->queue_no,
 				bufs, nb_rx);
-#endif
 	nb_tx = nb_tx1;
 
 	if (nb_tx1 != nb_tx2)
@@ -570,24 +551,6 @@ main(int argc, char *argv[])
 		if (unlikely(ret_cmd_init != SPPWK_RET_OK))
 			break;
 
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-		int port_type, port_id;
-		char dev_name[RTE_DEV_NAME_MAX_LEN] = { 0 };
-		int nof_rings = 0;
-		for (int i = 0; i < RTE_MAX_ETHPORTS; i++) {
-			if (!rte_eth_dev_is_valid_port(i))
-				continue;
-			rte_eth_dev_get_name_by_port(i, dev_name);
-			ret = parse_dev_name(dev_name, &port_type, &port_id);
-			if (port_type == RING)
-				nof_rings++;
-		}
-		int ret_ringlatency = sppwk_init_ring_latency_stats(
-				SPP_RING_LATENCY_STATS_SAMPLING_INTERVAL,
-				nof_rings);
-		if (unlikely(ret_ringlatency != SPPWK_RET_OK))
-			break;
-#endif /* SPP_RINGLATENCYSTATS_ENABLE */
 
 		/* Start worker threads of classifier and forwarder */
 		lcore_id = 0;
@@ -630,9 +593,6 @@ main(int argc, char *argv[])
 			 */
 			usleep(100);
 
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-			print_ring_latency_stats(&g_iface_info);
-#endif /* SPP_RINGLATENCYSTATS_ENABLE */
 		}
 
 		if (unlikely(ret_do != SPPWK_RET_OK)) {
@@ -653,9 +613,6 @@ main(int argc, char *argv[])
 	 /* Remove vhost sock file if not running in vhost-client mode. */
 	del_vhost_sockfile(g_iface_info.vhost);
 
-#ifdef SPP_RINGLATENCYSTATS_ENABLE
-	sppwk_clean_ring_latency_stats();
-#endif /* SPP_RINGLATENCYSTATS_ENABLE */
 
 	RTE_LOG(INFO, MIRROR, "Exit spp_mirror.\n");
 	return ret;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [spp] [PATCH v2 0/5] remove ringlatency stats functionality
  2020-07-09  5:30 ` [spp] [PATCH v2 " x-fn-spp-ml
@ 2020-07-10  5:46   ` Yasufumi Ogawa
  0 siblings, 0 replies; 16+ messages in thread
From: Yasufumi Ogawa @ 2020-07-10  5:46 UTC (permalink / raw)
  To: x-fn-spp-ml; +Cc: spp

> From: Hideyuki Yamashita <yamashita.hideyuki@ntt-tx.co.jp>
> 
> v2:
> * change tag name of each patch to appropriate ones.
> 
> Hideyuki Yamashita (5):
>    makefile: remove ringlatency stats functionality
>    shared/sec: remove ringlatency stats functionality
>    spp_pcap: remove ringlatency stats functionality
>    spp_vf: remove ringlatency stats functionality
>    spp_mirror: remove ringlatency stats functionality
> 
>   src/mirror/Makefile                           |   6 -
>   src/mirror/spp_mirror.c                       |  43 ----
>   src/pcap/Makefile                             |   2 -
>   src/pcap/spp_pcap.c                           |   8 -
>   .../secondary/spp_worker_th/cmd_utils.h       |   3 -
>   .../secondary/spp_worker_th/latency_stats.c   | 240 ------------------
>   .../secondary/spp_worker_th/latency_stats.h   | 167 ------------
>   .../secondary/spp_worker_th/port_capability.c |  47 ----
>   src/vf/Makefile                               |   6 -
>   src/vf/classifier.c                           |  19 +-
>   src/vf/forwarder.c                            |  19 +-
>   src/vf/spp_vf.c                               |  27 --
>   12 files changed, 8 insertions(+), 579 deletions(-)
>   delete mode 100644 src/shared/secondary/spp_worker_th/latency_stats.c
>   delete mode 100644 src/shared/secondary/spp_worker_th/latency_stats.h
> 
Applied, thanks!

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, back to index

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-22  1:18 [spp] [PATCH 0/5] remove ringlatency stats functionality x-fn-spp-ml
2020-06-22  1:18 ` [spp] [PATCH 1/5] Makefile: " x-fn-spp-ml
2020-06-22  1:18 ` [spp] [PATCH 2/5] shared: " x-fn-spp-ml
2020-06-22  1:18 ` [spp] [PATCH 3/5] vf: " x-fn-spp-ml
2020-06-22  1:18 ` [spp] [PATCH 4/5] pcap: " x-fn-spp-ml
2020-06-22  1:18 ` [spp] [PATCH 5/5] mirror: " x-fn-spp-ml
2020-06-22  4:57 ` [spp] [PATCH 0/5] " Itsuro ODA
2020-07-02  0:31 ` Yasufumi Ogawa
2020-07-09  4:28   ` Yasufumi Ogawa
2020-07-09  5:30 ` [spp] [PATCH v2 " x-fn-spp-ml
2020-07-10  5:46   ` Yasufumi Ogawa
2020-07-09  5:30 ` [spp] [PATCH v2 1/5] makefile: " x-fn-spp-ml
2020-07-09  5:30 ` [spp] [PATCH v2 2/5] shared/sec: " x-fn-spp-ml
2020-07-09  5:30 ` [spp] [PATCH v2 3/5] spp_pcap: " x-fn-spp-ml
2020-07-09  5:30 ` [spp] [PATCH v2 4/5] spp_vf: " x-fn-spp-ml
2020-07-09  5:30 ` [spp] [PATCH v2 5/5] spp_mirror: " x-fn-spp-ml

Soft Patch Panel

Archives are clonable:
	git clone --mirror http://inbox.dpdk.org/spp/0 spp/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 spp spp/ http://inbox.dpdk.org/spp \
		spp@dpdk.org
	public-inbox-index spp


Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.spp


AGPL code for this site: git clone https://public-inbox.org/ public-inbox