diff options
| author | songyanchao <[email protected]> | 2024-03-12 14:56:47 +0800 |
|---|---|---|
| committer | songyanchao <[email protected]> | 2024-03-12 14:58:52 +0800 |
| commit | 616588a2e35e4fac7fc0fd26fb92af386ba9c5fa (patch) | |
| tree | 4658be2c939b797cb59ee98a2eaa1e1e8d5e066c /service/include | |
| parent | 4a21f4430a5b6b500591e2265c07e49b4663e05b (diff) | |
🎈 perf(TSG-19602): Enhance node trace information for 'classifier'.
Enhance node trace information for 'classifier'.
Diffstat (limited to 'service/include')
| -rw-r--r-- | service/include/sc_classifier_rule_parser.h | 1 | ||||
| -rw-r--r-- | service/include/sc_trace.h | 22 |
2 files changed, 18 insertions, 5 deletions
diff --git a/service/include/sc_classifier_rule_parser.h b/service/include/sc_classifier_rule_parser.h index 8aa4d1b..2e8fe9f 100644 --- a/service/include/sc_classifier_rule_parser.h +++ b/service/include/sc_classifier_rule_parser.h @@ -32,6 +32,7 @@ struct adapter_info struct action { enum action_type type; + uint16_t rule_index; union { uint16_t sid; uint16_t data; diff --git a/service/include/sc_trace.h b/service/include/sc_trace.h index 80dfc37..89ad87e 100644 --- a/service/include/sc_trace.h +++ b/service/include/sc_trace.h @@ -1,4 +1,5 @@ #pragma once +#include <rte_branch_prediction.h> #include <rte_graph.h> #include <rte_graph_worker.h> @@ -24,12 +25,14 @@ static inline void gen_store_trace_info_pkt_parser(struct rte_node * node, struc /* Populate the pkt parser information */ char str_record[MR_STRING_MAX]; uint8_t nr_layers = pkt_parser_result->nr_layers; - int len = snprintf(str_record, sizeof(str_record), "pkt parser:%u layers, layer_type_ids:[", nr_layers); + int len = snprintf(str_record, sizeof(str_record), "pkt parser:%u layers, [", nr_layers); for (unsigned int i = 0; i < nr_layers; i++) { struct pkt_layer_result * layer_result = &pkt_parser_result->layers[i]; - len += snprintf(str_record + len, sizeof(str_record) - len, "%u,", layer_result->type_id); + len += snprintf(str_record + len, sizeof(str_record) - len, "%u", layer_result->type_id); + if (i < nr_layers - 1) + len += snprintf(str_record + len, sizeof(str_record) - len, ","); } len += snprintf(str_record + len, sizeof(str_record) - len, "]"); @@ -71,11 +74,13 @@ static inline void gen_store_trace_info_sid_list(struct rte_node * node, struct int nr_sids = sid_list_get(&mrb_meta->sid_list, sids, RTE_DIM(mrb_meta->sid_list.sids)); char str_record[MR_STRING_MAX]; - int len = snprintf(str_record, sizeof(str_record), "nr_sids:%u, sid list:[", nr_sids); + int len = snprintf(str_record, sizeof(str_record), "nr:%u, sids:[", nr_sids); for (int i = 0; i < nr_sids; i++) { - len += snprintf(str_record + len, sizeof(str_record) - len, "%u,", sids[i]); + len += snprintf(str_record + len, sizeof(str_record) - len, "%u", sids[i]); + if (i < nr_sids -1) + len += snprintf(str_record + len, sizeof(str_record) - len, ","); } len += snprintf(str_record + len, sizeof(str_record) - len, "]"); @@ -104,6 +109,13 @@ static inline void gen_store_trace_info_rx(struct rte_node * node, struct rte_mb /* Populate the hash information */ len += snprintf(str_record + len, sizeof(str_record) - len, ", hash:%u", mbuf->hash.usr); + /* Populate the nf create infomation */ + struct mrb_metadata * mrb_meta = mrbuf_cz_data(mbuf, MR_NODE_CTRLZONE_ID); + if (unlikely(mrb_meta->packet_create_from_nf)) + { + len += snprintf(str_record + len, sizeof(str_record) - len, ", nf cr:%u", mrb_meta->packet_create_from_nf); + } + /* Emit the trace record */ dp_trace_record_emit_str(sc_main_get()->trace, mbuf, &meta, str_record); } @@ -117,7 +129,7 @@ static inline void gen_store_trace_info_tx(struct rte_node * node, struct rte_mb /* Populate the port information */ char str_record[MR_STRING_MAX]; - int len = snprintf(str_record, sizeof(str_record), "tx_port:%u,%s", dev_desc->port_id, dev_desc->symbol); + int len = snprintf(str_record, sizeof(str_record), "tx:%u,%s", dev_desc->port_id, dev_desc->symbol); /* Populate the core id information */ len += snprintf(str_record + len, sizeof(str_record) - len, ", core:%u", rte_lcore_id()); |
