Skip to content

Commit 3feac50

Browse files
Geetha sowjanyadavem330
authored andcommitted
octeontx2-af: cn10k: Update NIX and NPA context in debugfs
On CN10K platform NPA and NIX context structure bit fields had changed to support new features like bandwidth steering etc. This patch dumps approprate context for CN10K platform. Signed-off-by: Geetha sowjanya <[email protected]> Signed-off-by: Sunil Goutham <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 30077d2 commit 3feac50

File tree

1 file changed

+175
-2
lines changed

1 file changed

+175
-2
lines changed

drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c

Lines changed: 175 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -449,6 +449,7 @@ RVU_DEBUG_SEQ_FOPS(npa_qsize, npa_qsize_display, npa_qsize_write);
449449
static void print_npa_aura_ctx(struct seq_file *m, struct npa_aq_enq_rsp *rsp)
450450
{
451451
struct npa_aura_s *aura = &rsp->aura;
452+
struct rvu *rvu = m->private;
452453

453454
seq_printf(m, "W0: Pool addr\t\t%llx\n", aura->pool_addr);
454455

@@ -468,6 +469,9 @@ static void print_npa_aura_ctx(struct seq_file *m, struct npa_aq_enq_rsp *rsp)
468469

469470
seq_printf(m, "W3: limit\t\t%llu\nW3: bp\t\t\t%d\nW3: fc_ena\t\t%d\n",
470471
(u64)aura->limit, aura->bp, aura->fc_ena);
472+
473+
if (!is_rvu_otx2(rvu))
474+
seq_printf(m, "W3: fc_be\t\t%d\n", aura->fc_be);
471475
seq_printf(m, "W3: fc_up_crossing\t%d\nW3: fc_stype\t\t%d\n",
472476
aura->fc_up_crossing, aura->fc_stype);
473477
seq_printf(m, "W3: fc_hyst_bits\t%d\n", aura->fc_hyst_bits);
@@ -485,12 +489,15 @@ static void print_npa_aura_ctx(struct seq_file *m, struct npa_aq_enq_rsp *rsp)
485489
seq_printf(m, "W5: err_qint_idx \t%d\n", aura->err_qint_idx);
486490

487491
seq_printf(m, "W6: thresh\t\t%llu\n", (u64)aura->thresh);
492+
if (!is_rvu_otx2(rvu))
493+
seq_printf(m, "W6: fc_msh_dst\t\t%d\n", aura->fc_msh_dst);
488494
}
489495

490496
/* Dumps given NPA Pool's context */
491497
static void print_npa_pool_ctx(struct seq_file *m, struct npa_aq_enq_rsp *rsp)
492498
{
493499
struct npa_pool_s *pool = &rsp->pool;
500+
struct rvu *rvu = m->private;
494501

495502
seq_printf(m, "W0: Stack base\t\t%llx\n", pool->stack_base);
496503

@@ -512,6 +519,8 @@ static void print_npa_pool_ctx(struct seq_file *m, struct npa_aq_enq_rsp *rsp)
512519
pool->avg_con, pool->fc_ena, pool->fc_stype);
513520
seq_printf(m, "W4: fc_hyst_bits\t%d\nW4: fc_up_crossing\t%d\n",
514521
pool->fc_hyst_bits, pool->fc_up_crossing);
522+
if (!is_rvu_otx2(rvu))
523+
seq_printf(m, "W4: fc_be\t\t%d\n", pool->fc_be);
515524
seq_printf(m, "W4: update_time\t\t%d\n", pool->update_time);
516525

517526
seq_printf(m, "W5: fc_addr\t\t%llx\n", pool->fc_addr);
@@ -525,8 +534,10 @@ static void print_npa_pool_ctx(struct seq_file *m, struct npa_aq_enq_rsp *rsp)
525534
seq_printf(m, "W8: thresh_int\t\t%d\n", pool->thresh_int);
526535
seq_printf(m, "W8: thresh_int_ena\t%d\nW8: thresh_up\t\t%d\n",
527536
pool->thresh_int_ena, pool->thresh_up);
528-
seq_printf(m, "W8: thresh_qint_idx\t%d\nW8: err_qint_idx\t\t%d\n",
537+
seq_printf(m, "W8: thresh_qint_idx\t%d\nW8: err_qint_idx\t%d\n",
529538
pool->thresh_qint_idx, pool->err_qint_idx);
539+
if (!is_rvu_otx2(rvu))
540+
seq_printf(m, "W8: fc_msh_dst\t\t%d\n", pool->fc_msh_dst);
530541
}
531542

532543
/* Reads aura/pool's ctx from admin queue */
@@ -910,11 +921,78 @@ static int rvu_dbg_nix_ndc_tx_hits_miss_display(struct seq_file *filp,
910921

911922
RVU_DEBUG_SEQ_FOPS(nix_ndc_tx_hits_miss, nix_ndc_tx_hits_miss_display, NULL);
912923

924+
static void print_nix_cn10k_sq_ctx(struct seq_file *m,
925+
struct nix_cn10k_sq_ctx_s *sq_ctx)
926+
{
927+
seq_printf(m, "W0: ena \t\t\t%d\nW0: qint_idx \t\t\t%d\n",
928+
sq_ctx->ena, sq_ctx->qint_idx);
929+
seq_printf(m, "W0: substream \t\t\t0x%03x\nW0: sdp_mcast \t\t\t%d\n",
930+
sq_ctx->substream, sq_ctx->sdp_mcast);
931+
seq_printf(m, "W0: cq \t\t\t\t%d\nW0: sqe_way_mask \t\t%d\n\n",
932+
sq_ctx->cq, sq_ctx->sqe_way_mask);
933+
934+
seq_printf(m, "W1: smq \t\t\t%d\nW1: cq_ena \t\t\t%d\nW1: xoff\t\t\t%d\n",
935+
sq_ctx->smq, sq_ctx->cq_ena, sq_ctx->xoff);
936+
seq_printf(m, "W1: sso_ena \t\t\t%d\nW1: smq_rr_weight\t\t%d\n",
937+
sq_ctx->sso_ena, sq_ctx->smq_rr_weight);
938+
seq_printf(m, "W1: default_chan\t\t%d\nW1: sqb_count\t\t\t%d\n\n",
939+
sq_ctx->default_chan, sq_ctx->sqb_count);
940+
941+
seq_printf(m, "W2: smq_rr_count_lb \t\t%d\n", sq_ctx->smq_rr_count_lb);
942+
seq_printf(m, "W2: smq_rr_count_ub \t\t%d\n", sq_ctx->smq_rr_count_ub);
943+
seq_printf(m, "W2: sqb_aura \t\t\t%d\nW2: sq_int \t\t\t%d\n",
944+
sq_ctx->sqb_aura, sq_ctx->sq_int);
945+
seq_printf(m, "W2: sq_int_ena \t\t\t%d\nW2: sqe_stype \t\t\t%d\n",
946+
sq_ctx->sq_int_ena, sq_ctx->sqe_stype);
947+
948+
seq_printf(m, "W3: max_sqe_size\t\t%d\nW3: cq_limit\t\t\t%d\n",
949+
sq_ctx->max_sqe_size, sq_ctx->cq_limit);
950+
seq_printf(m, "W3: lmt_dis \t\t\t%d\nW3: mnq_dis \t\t\t%d\n",
951+
sq_ctx->mnq_dis, sq_ctx->lmt_dis);
952+
seq_printf(m, "W3: smq_next_sq\t\t\t%d\nW3: smq_lso_segnum\t\t%d\n",
953+
sq_ctx->smq_next_sq, sq_ctx->smq_lso_segnum);
954+
seq_printf(m, "W3: tail_offset \t\t%d\nW3: smenq_offset\t\t%d\n",
955+
sq_ctx->tail_offset, sq_ctx->smenq_offset);
956+
seq_printf(m, "W3: head_offset\t\t\t%d\nW3: smenq_next_sqb_vld\t\t%d\n\n",
957+
sq_ctx->head_offset, sq_ctx->smenq_next_sqb_vld);
958+
959+
seq_printf(m, "W4: next_sqb \t\t\t%llx\n\n", sq_ctx->next_sqb);
960+
seq_printf(m, "W5: tail_sqb \t\t\t%llx\n\n", sq_ctx->tail_sqb);
961+
seq_printf(m, "W6: smenq_sqb \t\t\t%llx\n\n", sq_ctx->smenq_sqb);
962+
seq_printf(m, "W7: smenq_next_sqb \t\t%llx\n\n",
963+
sq_ctx->smenq_next_sqb);
964+
965+
seq_printf(m, "W8: head_sqb\t\t\t%llx\n\n", sq_ctx->head_sqb);
966+
967+
seq_printf(m, "W9: vfi_lso_total\t\t%d\n", sq_ctx->vfi_lso_total);
968+
seq_printf(m, "W9: vfi_lso_sizem1\t\t%d\nW9: vfi_lso_sb\t\t\t%d\n",
969+
sq_ctx->vfi_lso_sizem1, sq_ctx->vfi_lso_sb);
970+
seq_printf(m, "W9: vfi_lso_mps\t\t\t%d\nW9: vfi_lso_vlan0_ins_ena\t%d\n",
971+
sq_ctx->vfi_lso_mps, sq_ctx->vfi_lso_vlan0_ins_ena);
972+
seq_printf(m, "W9: vfi_lso_vlan1_ins_ena\t%d\nW9: vfi_lso_vld \t\t%d\n\n",
973+
sq_ctx->vfi_lso_vld, sq_ctx->vfi_lso_vlan1_ins_ena);
974+
975+
seq_printf(m, "W10: scm_lso_rem \t\t%llu\n\n",
976+
(u64)sq_ctx->scm_lso_rem);
977+
seq_printf(m, "W11: octs \t\t\t%llu\n\n", (u64)sq_ctx->octs);
978+
seq_printf(m, "W12: pkts \t\t\t%llu\n\n", (u64)sq_ctx->pkts);
979+
seq_printf(m, "W14: dropped_octs \t\t%llu\n\n",
980+
(u64)sq_ctx->dropped_octs);
981+
seq_printf(m, "W15: dropped_pkts \t\t%llu\n\n",
982+
(u64)sq_ctx->dropped_pkts);
983+
}
984+
913985
/* Dumps given nix_sq's context */
914986
static void print_nix_sq_ctx(struct seq_file *m, struct nix_aq_enq_rsp *rsp)
915987
{
916988
struct nix_sq_ctx_s *sq_ctx = &rsp->sq;
989+
struct nix_hw *nix_hw = m->private;
990+
struct rvu *rvu = nix_hw->rvu;
917991

992+
if (!is_rvu_otx2(rvu)) {
993+
print_nix_cn10k_sq_ctx(m, (struct nix_cn10k_sq_ctx_s *)sq_ctx);
994+
return;
995+
}
918996
seq_printf(m, "W0: sqe_way_mask \t\t%d\nW0: cq \t\t\t\t%d\n",
919997
sq_ctx->sqe_way_mask, sq_ctx->cq);
920998
seq_printf(m, "W0: sdp_mcast \t\t\t%d\nW0: substream \t\t\t0x%03x\n",
@@ -974,10 +1052,94 @@ static void print_nix_sq_ctx(struct seq_file *m, struct nix_aq_enq_rsp *rsp)
9741052
(u64)sq_ctx->dropped_pkts);
9751053
}
9761054

1055+
static void print_nix_cn10k_rq_ctx(struct seq_file *m,
1056+
struct nix_cn10k_rq_ctx_s *rq_ctx)
1057+
{
1058+
seq_printf(m, "W0: ena \t\t\t%d\nW0: sso_ena \t\t\t%d\n",
1059+
rq_ctx->ena, rq_ctx->sso_ena);
1060+
seq_printf(m, "W0: ipsech_ena \t\t\t%d\nW0: ena_wqwd \t\t\t%d\n",
1061+
rq_ctx->ipsech_ena, rq_ctx->ena_wqwd);
1062+
seq_printf(m, "W0: cq \t\t\t\t%d\nW0: lenerr_dis \t\t\t%d\n",
1063+
rq_ctx->cq, rq_ctx->lenerr_dis);
1064+
seq_printf(m, "W0: csum_il4_dis \t\t%d\nW0: csum_ol4_dis \t\t%d\n",
1065+
rq_ctx->csum_il4_dis, rq_ctx->csum_ol4_dis);
1066+
seq_printf(m, "W0: len_il4_dis \t\t%d\nW0: len_il3_dis \t\t%d\n",
1067+
rq_ctx->len_il4_dis, rq_ctx->len_il3_dis);
1068+
seq_printf(m, "W0: len_ol4_dis \t\t%d\nW0: len_ol3_dis \t\t%d\n",
1069+
rq_ctx->len_ol4_dis, rq_ctx->len_ol3_dis);
1070+
seq_printf(m, "W0: wqe_aura \t\t\t%d\n\n", rq_ctx->wqe_aura);
1071+
1072+
seq_printf(m, "W1: spb_aura \t\t\t%d\nW1: lpb_aura \t\t\t%d\n",
1073+
rq_ctx->spb_aura, rq_ctx->lpb_aura);
1074+
seq_printf(m, "W1: spb_aura \t\t\t%d\n", rq_ctx->spb_aura);
1075+
seq_printf(m, "W1: sso_grp \t\t\t%d\nW1: sso_tt \t\t\t%d\n",
1076+
rq_ctx->sso_grp, rq_ctx->sso_tt);
1077+
seq_printf(m, "W1: pb_caching \t\t\t%d\nW1: wqe_caching \t\t%d\n",
1078+
rq_ctx->pb_caching, rq_ctx->wqe_caching);
1079+
seq_printf(m, "W1: xqe_drop_ena \t\t%d\nW1: spb_drop_ena \t\t%d\n",
1080+
rq_ctx->xqe_drop_ena, rq_ctx->spb_drop_ena);
1081+
seq_printf(m, "W1: lpb_drop_ena \t\t%d\nW1: pb_stashing \t\t%d\n",
1082+
rq_ctx->lpb_drop_ena, rq_ctx->pb_stashing);
1083+
seq_printf(m, "W1: ipsecd_drop_ena \t\t%d\nW1: chi_ena \t\t\t%d\n\n",
1084+
rq_ctx->ipsecd_drop_ena, rq_ctx->chi_ena);
1085+
1086+
seq_printf(m, "W2: band_prof_id \t\t%d\n", rq_ctx->band_prof_id);
1087+
seq_printf(m, "W2: policer_ena \t\t%d\n", rq_ctx->policer_ena);
1088+
seq_printf(m, "W2: spb_sizem1 \t\t\t%d\n", rq_ctx->spb_sizem1);
1089+
seq_printf(m, "W2: wqe_skip \t\t\t%d\nW2: sqb_ena \t\t\t%d\n",
1090+
rq_ctx->wqe_skip, rq_ctx->spb_ena);
1091+
seq_printf(m, "W2: lpb_size1 \t\t\t%d\nW2: first_skip \t\t\t%d\n",
1092+
rq_ctx->lpb_sizem1, rq_ctx->first_skip);
1093+
seq_printf(m, "W2: later_skip\t\t\t%d\nW2: xqe_imm_size\t\t%d\n",
1094+
rq_ctx->later_skip, rq_ctx->xqe_imm_size);
1095+
seq_printf(m, "W2: xqe_imm_copy \t\t%d\nW2: xqe_hdr_split \t\t%d\n\n",
1096+
rq_ctx->xqe_imm_copy, rq_ctx->xqe_hdr_split);
1097+
1098+
seq_printf(m, "W3: xqe_drop \t\t\t%d\nW3: xqe_pass \t\t\t%d\n",
1099+
rq_ctx->xqe_drop, rq_ctx->xqe_pass);
1100+
seq_printf(m, "W3: wqe_pool_drop \t\t%d\nW3: wqe_pool_pass \t\t%d\n",
1101+
rq_ctx->wqe_pool_drop, rq_ctx->wqe_pool_pass);
1102+
seq_printf(m, "W3: spb_pool_drop \t\t%d\nW3: spb_pool_pass \t\t%d\n",
1103+
rq_ctx->spb_pool_drop, rq_ctx->spb_pool_pass);
1104+
seq_printf(m, "W3: spb_aura_drop \t\t%d\nW3: spb_aura_pass \t\t%d\n\n",
1105+
rq_ctx->spb_aura_pass, rq_ctx->spb_aura_drop);
1106+
1107+
seq_printf(m, "W4: lpb_aura_drop \t\t%d\nW3: lpb_aura_pass \t\t%d\n",
1108+
rq_ctx->lpb_aura_pass, rq_ctx->lpb_aura_drop);
1109+
seq_printf(m, "W4: lpb_pool_drop \t\t%d\nW3: lpb_pool_pass \t\t%d\n",
1110+
rq_ctx->lpb_pool_drop, rq_ctx->lpb_pool_pass);
1111+
seq_printf(m, "W4: rq_int \t\t\t%d\nW4: rq_int_ena\t\t\t%d\n",
1112+
rq_ctx->rq_int, rq_ctx->rq_int_ena);
1113+
seq_printf(m, "W4: qint_idx \t\t\t%d\n\n", rq_ctx->qint_idx);
1114+
1115+
seq_printf(m, "W5: ltag \t\t\t%d\nW5: good_utag \t\t\t%d\n",
1116+
rq_ctx->ltag, rq_ctx->good_utag);
1117+
seq_printf(m, "W5: bad_utag \t\t\t%d\nW5: flow_tagw \t\t\t%d\n",
1118+
rq_ctx->bad_utag, rq_ctx->flow_tagw);
1119+
seq_printf(m, "W5: ipsec_vwqe \t\t\t%d\nW5: vwqe_ena \t\t\t%d\n",
1120+
rq_ctx->ipsec_vwqe, rq_ctx->vwqe_ena);
1121+
seq_printf(m, "W5: vwqe_wait \t\t\t%d\nW5: max_vsize_exp\t\t%d\n",
1122+
rq_ctx->vwqe_wait, rq_ctx->max_vsize_exp);
1123+
seq_printf(m, "W5: vwqe_skip \t\t\t%d\n\n", rq_ctx->vwqe_skip);
1124+
1125+
seq_printf(m, "W6: octs \t\t\t%llu\n\n", (u64)rq_ctx->octs);
1126+
seq_printf(m, "W7: pkts \t\t\t%llu\n\n", (u64)rq_ctx->pkts);
1127+
seq_printf(m, "W8: drop_octs \t\t\t%llu\n\n", (u64)rq_ctx->drop_octs);
1128+
seq_printf(m, "W9: drop_pkts \t\t\t%llu\n\n", (u64)rq_ctx->drop_pkts);
1129+
seq_printf(m, "W10: re_pkts \t\t\t%llu\n", (u64)rq_ctx->re_pkts);
1130+
}
1131+
9771132
/* Dumps given nix_rq's context */
9781133
static void print_nix_rq_ctx(struct seq_file *m, struct nix_aq_enq_rsp *rsp)
9791134
{
9801135
struct nix_rq_ctx_s *rq_ctx = &rsp->rq;
1136+
struct nix_hw *nix_hw = m->private;
1137+
struct rvu *rvu = nix_hw->rvu;
1138+
1139+
if (!is_rvu_otx2(rvu)) {
1140+
print_nix_cn10k_rq_ctx(m, (struct nix_cn10k_rq_ctx_s *)rq_ctx);
1141+
return;
1142+
}
9811143

9821144
seq_printf(m, "W0: wqe_aura \t\t\t%d\nW0: substream \t\t\t0x%03x\n",
9831145
rq_ctx->wqe_aura, rq_ctx->substream);
@@ -1551,6 +1713,9 @@ static void rvu_dbg_cgx_init(struct rvu *rvu)
15511713
char dname[20];
15521714
void *cgx;
15531715

1716+
if (!cgx_get_cgxcnt_max())
1717+
return;
1718+
15541719
rvu->rvu_dbg.cgx_root = debugfs_create_dir("cgx", rvu->rvu_dbg.root);
15551720

15561721
for (i = 0; i < cgx_get_cgxcnt_max(); i++) {
@@ -2128,9 +2293,17 @@ static void rvu_dbg_cpt_init(struct rvu *rvu, int blkaddr)
21282293
&rvu_dbg_cpt_err_info_fops);
21292294
}
21302295

2296+
static const char *rvu_get_dbg_dir_name(struct rvu *rvu)
2297+
{
2298+
if (!is_rvu_otx2(rvu))
2299+
return "cn10k";
2300+
else
2301+
return "octeontx2";
2302+
}
2303+
21312304
void rvu_dbg_init(struct rvu *rvu)
21322305
{
2133-
rvu->rvu_dbg.root = debugfs_create_dir(DEBUGFS_DIR_NAME, NULL);
2306+
rvu->rvu_dbg.root = debugfs_create_dir(rvu_get_dbg_dir_name(rvu), NULL);
21342307

21352308
debugfs_create_file("rsrc_alloc", 0444, rvu->rvu_dbg.root, rvu,
21362309
&rvu_dbg_rsrc_status_fops);

0 commit comments

Comments
 (0)