diff options
| author | tongzongzhen <[email protected]> | 2024-09-14 15:24:20 +0800 |
|---|---|---|
| committer | tongzongzhen <[email protected]> | 2024-09-14 15:24:20 +0800 |
| commit | 314626bba866e556711bbc2f914d01d6feb373b9 (patch) | |
| tree | 296b57d264b55384df3c7f353313b2a8fb30c486 | |
| parent | b5c25fc2042bed408b0e11de9558f20a3fc3fb8e (diff) | |
When nf reset private zoom, keep the sending timestatistics_nf_delay
| -rw-r--r-- | app/src/mrb.c | 6 | ||||
| -rw-r--r-- | service/include/sc_devmgr.h | 2 | ||||
| -rw-r--r-- | service/src/node_shmdev.c | 13 |
3 files changed, 12 insertions, 9 deletions
diff --git a/app/src/mrb.c b/app/src/mrb.c index ea852c3..9afa59d 100644 --- a/app/src/mrb.c +++ b/app/src/mrb.c @@ -1,11 +1,11 @@ #include <assert.h> +#include <dp_trace.h> #include <marsio.h> #include <metadata_define.h> #include <mrapp.h> #include <mrb_define.h> #include <mrdp_trace.h> #include <protect.h> -#include <dp_trace.h> #include <rte_common.h> #include <rte_malloc.h> @@ -30,12 +30,14 @@ void marsio_buff_ctrlzone_reset(marsio_buff_t * mr_buff) { struct mrb_metadata * mrb_meta = mrbuf_cz_data(mr_buff, MR_NODE_CTRLZONE_ID); struct dp_trace_buffer * dp_trace_buffer_ptr = mrb_meta->dp_trace_buffer; - int8_t measurement_type = mrb_meta->measurement_type; + uint8_t measurement_type = mrb_meta->measurement_type; + struct timespec send_to_nf = mrb_meta->send_to_nf; /* reset the ctrlzone but not dp_trace_buffer */ memset(mrbuf_cz_data(mr_buff, MR_NODE_CTRLZONE_ID), 0, sizeof(struct mrb_metadata)); mrb_meta->dp_trace_buffer = dp_trace_buffer_ptr; mrb_meta->measurement_type = measurement_type; + mrb_meta->send_to_nf = send_to_nf; } void * mr_buffer_ctrlzone(struct rte_mbuf * mr_buff, uint8_t id) diff --git a/service/include/sc_devmgr.h b/service/include/sc_devmgr.h index 4e204af..7b3fd8f 100644 --- a/service/include/sc_devmgr.h +++ b/service/include/sc_devmgr.h @@ -292,7 +292,7 @@ void dpdk_dev_stat_get(struct dpdk_dev * dev, struct dpdk_dev_stats * dpdk_dev_s void dpdk_dev_stat_last_save(struct dpdk_dev * dev, struct dpdk_dev_stats * dpdk_dev_stat_last); void dpdk_dev_stat_last_get(struct dpdk_dev * dev, struct dpdk_dev_stats * dpdk_dev_stat_last); -static inline uint16_t dev_status_get(struct mr_dev_desc * dev_desc) +static inline uint16_t dev_status_get(const struct mr_dev_desc * dev_desc) { uint16_t link_status; diff --git a/service/src/node_shmdev.c b/service/src/node_shmdev.c index 52a4e5f..ed9b65c 100644 --- a/service/src/node_shmdev.c +++ b/service/src/node_shmdev.c @@ -121,8 +121,8 @@ uint16_t shmdev_rx_node_process(struct rte_graph * graph, struct rte_node * node /* record delay */ if (likely(mrb_meta->packet_create_from_nf == 0)) { - clock_gettime(CLOCK_MONOTONIC, &cur_time); struct mrb_metadata * mrb_meta = rte_mbuf_to_priv(mbuf0); + clock_gettime(CLOCK_MONOTONIC, &cur_time); uint64_t cur_time_ns = cur_time.tv_sec * NSEC_PER_SEC + cur_time.tv_nsec; uint64_t send_to_nf_time_ns = mrb_meta->send_to_nf.tv_sec * NSEC_PER_SEC + mrb_meta->send_to_nf.tv_nsec; uint64_t delay_ns = cur_time_ns - send_to_nf_time_ns; @@ -292,11 +292,11 @@ cJSON * shmdev_rx_node_monit_loop(struct sc_main * sc) cJSON * shmdev_delay_monit_loop(struct sc_main * sc) { - unsigned int nr_graphs = sc->nr_io_thread; + const unsigned int nr_graphs = sc->nr_io_thread; cJSON * json_root = cJSON_CreateObject(); unsigned int dev_desc_iterator = 0; - struct mr_dev_desc * dev_desc = NULL; + const struct mr_dev_desc * dev_desc = NULL; while ((dev_desc = mr_dev_desc_iterate(sc_main_get()->devmgr_main, &dev_desc_iterator)) != NULL) { @@ -310,14 +310,15 @@ cJSON * shmdev_delay_monit_loop(struct sc_main * sc) continue; } - uint64_t dev_delay = 0; + uint64_t dev_delay[nr_graphs]; for (uint32_t graph_id = 0; graph_id < nr_graphs; graph_id++) { struct shmdev_delay * cur_shmdev_delay_stat = &shmdev_delay_stat[graph_id][dev_desc->port_id]; - dev_delay += cur_shmdev_delay_stat->delay_ns; + dev_delay[graph_id] = cur_shmdev_delay_stat->delay_ns; } - cJSON_AddItemToObject(json_root, dev_desc->symbol, cJSON_CreateNumber(dev_delay)); + cJSON * json_to_dev_delay = create_uint64_array(dev_delay, nr_graphs); + cJSON_AddItemToObject(json_root, dev_desc->symbol, json_to_dev_delay); } return json_root; } |
