diff options
| author | songyanchao <[email protected]> | 2024-04-26 05:44:04 +0000 |
|---|---|---|
| committer | songyanchao <[email protected]> | 2024-04-26 06:02:02 +0000 |
| commit | 17ae661f46724eb427c141e7b54f9da3fa30dcf9 (patch) | |
| tree | 307ad7b91eee0307f447f53c548723a8ad02602f | |
| parent | 37f1c598cbeba64476c387417d6738c54105763d (diff) | |
🎈 perf(TSG-20741): Adapt new dp_trace_record_meta structure and api.feat-integrate-new-api-dp-trace
Adapt new dp_trace_record_meta structure and api.
| -rw-r--r-- | service/include/sc_trace.h | 21 | ||||
| -rw-r--r-- | service/src/node_bfd.c | 3 | ||||
| -rw-r--r-- | service/src/node_bridge.c | 6 | ||||
| -rw-r--r-- | service/src/node_classifier.c | 3 | ||||
| -rw-r--r-- | service/src/node_eth_egress.c | 3 | ||||
| -rw-r--r-- | service/src/node_eth_ingress.c | 3 | ||||
| -rw-r--r-- | service/src/node_etherfabric.c | 9 | ||||
| -rw-r--r-- | service/src/node_forwarder.c | 3 | ||||
| -rw-r--r-- | service/src/node_health_check.c | 6 | ||||
| -rw-r--r-- | service/src/node_lb.c | 3 | ||||
| -rw-r--r-- | service/src/node_phydev.c | 6 | ||||
| -rw-r--r-- | service/src/node_shmdev.c | 3 | ||||
| -rw-r--r-- | service/src/node_tera.c | 6 | ||||
| -rw-r--r-- | service/src/node_vwire.c | 11 |
14 files changed, 39 insertions, 47 deletions
diff --git a/service/include/sc_trace.h b/service/include/sc_trace.h index 7effd13..0db254b 100644 --- a/service/include/sc_trace.h +++ b/service/include/sc_trace.h @@ -38,8 +38,7 @@ static inline void gen_store_trace_info_pkt_parser(struct rte_node * node, struc len += snprintf(str_record + len, sizeof(str_record) - len, "]"); /* Emit the trace record */ - struct dp_trace_record_meta meta = { - .type = DP_TRACE_MEASUREMENT_TYPE_TRACE, .appsym = MR_TRACE_APPSYM, .module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; dp_trace_record_emit_str(sc_main_get()->trace, mbuf, rte_lcore_id(), &meta, str_record); } @@ -58,8 +57,7 @@ static inline void gen_store_trace_info_rte_mbuf(struct rte_node * node, struct #endif /* Emit the trace record */ - struct dp_trace_record_meta meta = { - .type = DP_TRACE_MEASUREMENT_TYPE_TRACE, .appsym = MR_TRACE_APPSYM, .module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; dp_trace_record_emit_str(sc_main_get()->trace, mbuf, rte_lcore_id(), &meta, str_record); } @@ -84,8 +82,7 @@ static inline void gen_store_trace_info_sid_list(struct rte_node * node, struct len += snprintf(str_record + len, sizeof(str_record) - len, "]]"); /* Emit the trace record */ - struct dp_trace_record_meta meta = { - .type = DP_TRACE_MEASUREMENT_TYPE_TRACE, .appsym = MR_TRACE_APPSYM, .module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; dp_trace_record_emit_str(sc_main_get()->trace, mbuf, rte_lcore_id(), &meta, str_record); } @@ -127,8 +124,7 @@ static inline void gen_store_trace_info_rx(struct rte_node * node, struct rte_mb } /* Emit the trace record */ - struct dp_trace_record_meta meta = { - .type = DP_TRACE_MEASUREMENT_TYPE_TRACE, .appsym = MR_TRACE_APPSYM, .module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; dp_trace_record_emit_str(sc_main_get()->trace, mbuf, rte_lcore_id(), &meta, str_record); } @@ -141,7 +137,7 @@ static inline void gen_store_telemetry_info_rx(struct rte_node * node, struct rt snprintf(str_record, sizeof(str_record), "interface(rx) = %s, qid = %u", dev_desc->symbol, queue_id); /* Emit the trace record */ - struct dp_trace_record_meta meta = {.type = DP_TRACE_MEASUREMENT_TYPE_TELEMETRY, .appsym = MR_TRACE_APPSYM}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM}; dp_trace_record_emit_str(sc_main_get()->trace, mbuf, rte_lcore_id(), &meta, str_record); } @@ -155,8 +151,7 @@ static inline void gen_store_trace_info_tx(struct rte_node * node, struct rte_mb rte_lcore_id(), queue_id, mbuf->hash.usr); /* Emit the trace record */ - struct dp_trace_record_meta meta = { - .type = DP_TRACE_MEASUREMENT_TYPE_TRACE, .appsym = MR_TRACE_APPSYM, .module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; dp_trace_record_emit_str(sc_main_get()->trace, mbuf, rte_lcore_id(), &meta, str_record); } @@ -169,7 +164,7 @@ static inline void gen_store_telemetry_info_tx(struct rte_node * node, struct rt snprintf(str_record, sizeof(str_record), "interface(tx) = %s, qid = %u", dev_desc->symbol, queue_id); /* Emit the trace record */ - struct dp_trace_record_meta meta = {.type = DP_TRACE_MEASUREMENT_TYPE_TELEMETRY, .appsym = MR_TRACE_APPSYM}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM}; dp_trace_record_emit_str(sc_main_get()->trace, mbuf, rte_lcore_id(), &meta, str_record); } @@ -193,6 +188,6 @@ static __rte_always_inline void gen_store_telemetry_info_adapter(struct rte_mbuf } /* Emit the trace record */ - struct dp_trace_record_meta meta = {.type = DP_TRACE_MEASUREMENT_TYPE_TELEMETRY, .appsym = MR_TRACE_APPSYM}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM}; dp_trace_record_emit_str(sc_main_get()->trace, mbuf, rte_lcore_id(), &meta, str_record); } diff --git a/service/src/node_bfd.c b/service/src/node_bfd.c index 4553938..c254846 100644 --- a/service/src/node_bfd.c +++ b/service/src/node_bfd.c @@ -173,8 +173,7 @@ static __rte_always_inline void gen_store_trace_info(struct rte_node * node, str len += snprintf(str_record + len, sizeof(str_record) - len, ", bfd state:%u", bfd_state); /* Emit the trace record */ - struct dp_trace_record_meta meta = { - .type = DP_TRACE_MEASUREMENT_TYPE_TRACE, .appsym = MR_TRACE_APPSYM, .module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; dp_trace_record_emit_str(sc_main_get()->trace, mbuf, rte_lcore_id(), &meta, str_record); } diff --git a/service/src/node_bridge.c b/service/src/node_bridge.c index 602c2df..1068e99 100644 --- a/service/src/node_bridge.c +++ b/service/src/node_bridge.c @@ -238,8 +238,7 @@ static __rte_always_inline void gen_store_trace_info_original(struct rte_node * } /* Emit the trace record */ - struct dp_trace_record_meta meta = { - .type = DP_TRACE_MEASUREMENT_TYPE_TRACE, .appsym = MR_TRACE_APPSYM, .module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; dp_trace_record_emit_str(sc_main_get()->trace, mbuf, rte_lcore_id(), &meta, str_record); } @@ -255,8 +254,7 @@ static __rte_always_inline void gen_store_trace_info_clone(struct rte_node * nod node->nodes[next_node_index]->name, mrb_meta->port_egress); /* Emit the trace record */ - struct dp_trace_record_meta meta = { - .type = DP_TRACE_MEASUREMENT_TYPE_TRACE, .appsym = MR_TRACE_APPSYM, .module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; dp_trace_record_emit_str(sc_main_get()->trace, mbuf, rte_lcore_id(), &meta, str_record); } diff --git a/service/src/node_classifier.c b/service/src/node_classifier.c index b96138a..c5fc238 100644 --- a/service/src/node_classifier.c +++ b/service/src/node_classifier.c @@ -399,8 +399,7 @@ static __rte_always_inline void gen_store_trace_info(struct rte_node * node, str } /* Emit the trace record */ - struct dp_trace_record_meta meta = { - .type = DP_TRACE_MEASUREMENT_TYPE_TRACE, .appsym = MR_TRACE_APPSYM, .module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; dp_trace_record_emit_str(sc_main_get()->trace, mbuf, rte_lcore_id(), &meta, str_record); } diff --git a/service/src/node_eth_egress.c b/service/src/node_eth_egress.c index 9196c53..dd77595 100644 --- a/service/src/node_eth_egress.c +++ b/service/src/node_eth_egress.c @@ -88,8 +88,7 @@ static __rte_always_inline void gen_store_trace_info_egress(struct rte_node * no mrb_meta->port_egress); /* Emit the trace record */ - struct dp_trace_record_meta meta = { - .type = DP_TRACE_MEASUREMENT_TYPE_TRACE, .appsym = MR_TRACE_APPSYM, .module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; dp_trace_record_emit_str(sc_main_get()->trace, mbuf, rte_lcore_id(), &meta, str_record); } diff --git a/service/src/node_eth_ingress.c b/service/src/node_eth_ingress.c index 806d46e..fc4b2b2 100644 --- a/service/src/node_eth_ingress.c +++ b/service/src/node_eth_ingress.c @@ -453,8 +453,7 @@ static __rte_always_inline void gen_store_trace_info_ingress(struct rte_node * n } /* Emit the trace record */ - struct dp_trace_record_meta meta = { - .type = DP_TRACE_MEASUREMENT_TYPE_TRACE, .appsym = MR_TRACE_APPSYM, .module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; dp_trace_record_emit_str(sc_main_get()->trace, mbuf, rte_lcore_id(), &meta, str_record); } diff --git a/service/src/node_etherfabric.c b/service/src/node_etherfabric.c index 14ae9b2..74865e1 100644 --- a/service/src/node_etherfabric.c +++ b/service/src/node_etherfabric.c @@ -520,8 +520,7 @@ static __rte_always_inline void gen_store_trace_info_ingress(struct rte_node * n } /* Emit the trace record */ - struct dp_trace_record_meta meta = { - .type = DP_TRACE_MEASUREMENT_TYPE_TRACE, .appsym = MR_TRACE_APPSYM, .module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; dp_trace_record_emit_str(sc_main_get()->trace, mbuf, rte_lcore_id(), &meta, str_record); } @@ -776,8 +775,7 @@ static __rte_always_inline void gen_store_trace_info_egress(struct rte_node * no } /* Emit the trace record */ - struct dp_trace_record_meta meta = { - .type = DP_TRACE_MEASUREMENT_TYPE_TRACE, .appsym = MR_TRACE_APPSYM, .module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; dp_trace_record_emit_str(sc_main_get()->trace, mbuf, rte_lcore_id(), &meta, str_record); } @@ -865,7 +863,10 @@ static __rte_always_inline uint16_t ef_egress_node_process(struct rte_graph * gr { gen_store_trace_info_egress(node, mbuf, next_node_index, drop_reason); // gen_store_trace_info_rte_mbuf(node, mbuf); + } + if (unlikely(dp_trace_record_can_emit(mbuf, DP_TRACE_MEASUREMENT_TYPE_TELEMETRY))) + { gen_store_telemetry_info_adapter(mbuf); } diff --git a/service/src/node_forwarder.c b/service/src/node_forwarder.c index 58cf11a..73032bd 100644 --- a/service/src/node_forwarder.c +++ b/service/src/node_forwarder.c @@ -128,8 +128,7 @@ static __rte_always_inline void gen_store_trace_info(struct rte_node * node, str len += embed_sid_info(mbuf, str_record + len, sizeof(str_record) - len); /* Emit the trace record */ - struct dp_trace_record_meta meta = { - .type = DP_TRACE_MEASUREMENT_TYPE_TRACE, .appsym = MR_TRACE_APPSYM, .module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; dp_trace_record_emit_str(sc_main_get()->trace, mbuf, rte_lcore_id(), &meta, str_record); } diff --git a/service/src/node_health_check.c b/service/src/node_health_check.c index c93bb1d..8db9a9f 100644 --- a/service/src/node_health_check.c +++ b/service/src/node_health_check.c @@ -655,8 +655,7 @@ static __rte_always_inline void gen_store_trace_info_ask_node(struct rte_node * node->nodes[next_node_index]->name, rte_lcore_id(), session->name, session->port_id, session->device); /* Emit the trace record */ - struct dp_trace_record_meta meta = { - .type = DP_TRACE_MEASUREMENT_TYPE_TRACE, .appsym = MR_TRACE_APPSYM, .module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; dp_trace_record_emit_str(sc_main_get()->trace, mbuf, rte_lcore_id(), &meta, str_record); } @@ -779,8 +778,7 @@ static __rte_always_inline void gen_store_trace_info_answer_node(struct rte_node } /* Emit the trace record */ - struct dp_trace_record_meta meta = { - .type = DP_TRACE_MEASUREMENT_TYPE_TRACE, .appsym = MR_TRACE_APPSYM, .module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; dp_trace_record_emit_str(sc_main_get()->trace, mbuf, rte_lcore_id(), &meta, str_record); } diff --git a/service/src/node_lb.c b/service/src/node_lb.c index 53e528e..79058b6 100644 --- a/service/src/node_lb.c +++ b/service/src/node_lb.c @@ -476,8 +476,7 @@ static __rte_always_inline void gen_store_trace_info(struct rte_node * node, str snprintf(str_record + len, sizeof(str_record) - len, ", cur sid:%u, lb id:%u", lb_group->sid, lb_group->index); /* Emit the trace record */ - struct dp_trace_record_meta meta = { - .type = DP_TRACE_MEASUREMENT_TYPE_TRACE, .appsym = MR_TRACE_APPSYM, .module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; dp_trace_record_emit_str(sc_main_get()->trace, mbuf, rte_lcore_id(), &meta, str_record); } diff --git a/service/src/node_phydev.c b/service/src/node_phydev.c index 892793d..39c16f0 100644 --- a/service/src/node_phydev.c +++ b/service/src/node_phydev.c @@ -535,7 +535,10 @@ static __rte_always_inline uint16_t dpdk_dev_rx_node_process(struct rte_graph * { gen_store_trace_info_rx(node, mbuf, dev_desc, qid); gen_store_trace_info_pkt_parser(node, mbuf); + } + if (unlikely(dp_trace_record_can_emit(mbuf, DP_TRACE_MEASUREMENT_TYPE_TELEMETRY))) + { gen_store_telemetry_info_rx(node, mbuf, dev_desc, qid); } } @@ -654,7 +657,10 @@ static __rte_always_inline uint16_t dpdk_dev_tx_node_process(struct rte_graph * { gen_store_trace_info_tx(node, mbuf, dev_desc, graph->id); // gen_store_trace_info_rte_mbuf(node, mbuf); + } + if (unlikely(dp_trace_record_can_emit(mbuf, DP_TRACE_MEASUREMENT_TYPE_TELEMETRY))) + { gen_store_telemetry_info_tx(node, mbuf, dev_desc, graph->id); } dp_trace_record_write(sc_main_get()->trace, mbuf, rte_lcore_id()); diff --git a/service/src/node_shmdev.c b/service/src/node_shmdev.c index fd83151..d840866 100644 --- a/service/src/node_shmdev.c +++ b/service/src/node_shmdev.c @@ -55,8 +55,7 @@ static __rte_always_inline void gen_store_trace_info(struct rte_node * node, str } /* Emit the trace record */ - struct dp_trace_record_meta meta = { - .type = DP_TRACE_MEASUREMENT_TYPE_TRACE, .appsym = MR_TRACE_APPSYM, .module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; dp_trace_record_emit_str(sc_main_get()->trace, mbuf, rte_lcore_id(), &meta, str_record); } diff --git a/service/src/node_tera.c b/service/src/node_tera.c index 35f0f07..85abf1e 100644 --- a/service/src/node_tera.c +++ b/service/src/node_tera.c @@ -351,8 +351,7 @@ static __rte_always_inline void gen_store_trace_info_ingress(struct rte_node * n } /* Emit the trace record */ - struct dp_trace_record_meta meta = { - .type = DP_TRACE_MEASUREMENT_TYPE_TRACE, .appsym = MR_TRACE_APPSYM, .module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; dp_trace_record_emit_str(sc_main_get()->trace, mbuf, rte_lcore_id(), &meta, str_record); } @@ -528,8 +527,7 @@ static __rte_always_inline void gen_store_trace_info_egress(struct rte_node * no mrb_meta->adapter_id, mrb_meta->port_egress); /* Emit the trace record */ - struct dp_trace_record_meta meta = { - .type = DP_TRACE_MEASUREMENT_TYPE_TRACE, .appsym = MR_TRACE_APPSYM, .module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; dp_trace_record_emit_str(sc_main_get()->trace, mbuf, rte_lcore_id(), &meta, str_record); } diff --git a/service/src/node_vwire.c b/service/src/node_vwire.c index 0c17414..25decc8 100644 --- a/service/src/node_vwire.c +++ b/service/src/node_vwire.c @@ -1,5 +1,6 @@ #include "sc_trace.h" #include <cJSON.h> +#include <rte_branch_prediction.h> #include <rte_debug.h> #include <rte_ethdev.h> #include <rte_ether.h> @@ -131,8 +132,7 @@ static __rte_always_inline void gen_store_trace_info_ingress(struct rte_node * n } /* Emit the trace record */ - struct dp_trace_record_meta meta = { - .type = DP_TRACE_MEASUREMENT_TYPE_TRACE, .appsym = MR_TRACE_APPSYM, .module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; dp_trace_record_emit_str(sc_main_get()->trace, mbuf, rte_lcore_id(), &meta, str_record); } @@ -204,6 +204,10 @@ static __rte_always_inline uint16_t vwire_ingress_node_process(struct rte_graph { gen_store_trace_info_ingress(node, mbuf0, next0, prepend_sid); // gen_store_trace_info_sid_list(node, mbuf0); + } + + if (unlikely(dp_trace_record_can_emit(mbuf0, DP_TRACE_MEASUREMENT_TYPE_TELEMETRY))) + { gen_store_telemetry_info_adapter(mbuf0); } @@ -267,8 +271,7 @@ static __rte_always_inline void gen_store_trace_info_egress(struct rte_node * no } /* Emit the trace record */ - struct dp_trace_record_meta meta = { - .type = DP_TRACE_MEASUREMENT_TYPE_TRACE, .appsym = MR_TRACE_APPSYM, .module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; dp_trace_record_emit_str(sc_main_get()->trace, mbuf, rte_lcore_id(), &meta, str_record); } |
