[PATCH v2 5/5] wifi: ath12k: Dump additional Tx PDEV HTT stats
Ramya Gnanasekar
quic_rgnanase at quicinc.com
Mon May 27 02:38:40 PDT 2024
On 5/21/2024 1:30 PM, Kalle Valo wrote:
> Ramya Gnanasekar <quic_rgnanase at quicinc.com> writes:
>
>> Support to dump additional Tx PDEV stats through HTT stats debugfs.
>> Following stats dump are supported:
>> 1. PDEV control path stat to dump Tx management frame count
>> 2. Tx PDEV SIFS histogram stats
>> 3. Tx MU MIMO PPDU stats for 802.11ac, 802.11ax and 802.11be
>>
>> Sample Output:
>> --------------
>> echo 1 > /sys/kernel/debug/ath12k/pci-0000\:06\:00.0/mac0/htt_stats_type
>> cat /sys/kernel/debug/ath12k/pci-0000\:06\:00.0/mac0/htt_stats
>> HTT_TX_PDEV_STATS_CMN_TLV:
>> mac_id = 0
>> comp_delivered = 0
>> self_triggers = 13
>> ......
>> ......
>> HTT_TX_PDEV_STATS_CTRL_PATH_TX_STATS:
>> fw_tx_mgmt_subtype = 0:1, 1:0, 2:0, 3:0, 4:38, 5:0, 6:0, 7:0, 8:0, 9:0, 10:0, 11:1, 12:0, 13:7, 14:0, 15:0,
>>
>> HTT_TX_PDEV_STATS_SIFS_HIST_TLV:
>> sifs_hist_status = 0:237, 1:185, 2:1, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0, 9:0,
>>
>> HTT_TX_PDEV_MU_PPDU_DISTRIBUTION_STATS:
>> ac_mu_mimo_num_seq_posted_nr4 = 0
>> ac_mu_mimo_num_ppdu_posted_per_burst_nr4 = 0:0, 1:0, 2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0, 9:0,
>> ac_mu_mimo_num_ppdu_completed_per_burst_nr4 = 0:0, 1:0, 2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0, 9:0,
>> ac_mu_mimo_num_seq_term_status_nr4 = 0:0, 1:0, 2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0,
>>
>> ac_mu_mimo_num_seq_posted_nr8 = 0
>> ac_mu_mimo_num_ppdu_posted_per_burst_nr8 = 0:0, 1:0, 2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0, 9:0,
>> ac_mu_mimo_num_ppdu_completed_per_burst_nr8 = 0:0, 1:0, 2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0, 9:0,
>> ac_mu_mimo_num_seq_term_status_nr8 = 0:0, 1:0, 2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0,
>>
>> ax_mu_mimo_num_seq_posted_nr4 = 0
>> ax_mu_mimo_num_ppdu_posted_per_burst_nr4 = 0:0, 1:0, 2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0, 9:0,
>> ax_mu_mimo_num_ppdu_completed_per_burst_nr4 = 0:0, 1:0, 2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0, 9:0,
>> ax_mu_mimo_num_seq_term_status_nr4 = 0:0, 1:0, 2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0,
>>
>> ax_mu_mimo_num_seq_posted_nr8 = 0
>> ax_mu_mimo_num_ppdu_posted_per_burst_nr8 = 0:0, 1:0, 2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0, 9:0,
>> ax_mu_mimo_num_ppdu_completed_per_burst_nr8 = 0:0, 1:0, 2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0, 9:0,
>> ax_mu_mimo_num_seq_term_status_nr8 = 0:0, 1:0, 2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0,
>>
>> be_mu_mimo_num_seq_posted_nr4 = 0
>> be_mu_mimo_num_ppdu_posted_per_burst_nr4 = 0:0, 1:0, 2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0, 9:0,
>> be_mu_mimo_num_ppdu_completed_per_burst_nr4 = 0:0, 1:0, 2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0, 9:0,
>> be_mu_mimo_num_seq_term_status_nr4 = 0:0, 1:0, 2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0,
>>
>> be_mu_mimo_num_seq_posted_nr8 = 0
>> be_mu_mimo_num_ppdu_posted_per_burst_nr8 = 0:0, 1:0, 2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0, 9:0,
>> be_mu_mimo_num_ppdu_completed_per_burst_nr8 = 0:0, 1:0, 2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0, 9:0,
>> be_mu_mimo_num_seq_term_status_nr8 = 0:0, 1:0, 2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0,
>>
>> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
>> Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
>>
>> Signed-off-by: Ramya Gnanasekar <quic_rgnanase at quicinc.com>
>
> [...]
>
>> +static inline void
>> +ath12k_htt_print_tx_pdev_mu_ppdu_dist_stats_tlv(const void *tag_buf,
>> + struct debug_htt_stats_req *stats_req)
>> +{
>> + const struct ath12k_htt_tx_pdev_mu_ppdu_dist_stats_tlv *htt_stats_buf = tag_buf;
>> + char *mode;
>> + u8 j, hw_mode, i, str_buf_len;
>> + u8 *buf = stats_req->buf;
>> + u32 len = stats_req->buf_len;
>> + u32 buf_len = ATH12K_HTT_STATS_BUF_SIZE;
>> + u32 stats_value;
>> + u8 max_ppdu = ATH12K_HTT_STATS_MAX_NUM_MU_PPDU_PER_BURST;
>> + u8 max_sched = ATH12K_HTT_STATS_MAX_NUM_SCHED_STATUS;
>> + char str_buf[ATH12K_HTT_MAX_STRING_LEN];
>> +
>> + hw_mode = le32_to_cpu(htt_stats_buf->hw_mode);
>> +
>> + switch (hw_mode) {
>> + case ATH12K_HTT_STATS_HWMODE_AC:
>> + len += scnprintf(buf + len, buf_len - len,
>> + "HTT_TX_PDEV_MU_PPDU_DISTRIBUTION_STATS:\n");
>> + mode = "ac";
>> + break;
>> + case ATH12K_HTT_STATS_HWMODE_AX:
>> + mode = "ax";
>> + break;
>> + case ATH12K_HTT_STATS_HWMODE_BE:
>> + mode = "be";
>> + break;
>> + default:
>> + return;
>> + }
>
> Why are we not adding "HTT_TX_PDEV_MU_PPDU_DISTRIBUTION_STATS:\n" with
> ax and be modes?
>
Sorry for the delayed response. I was on OoO for a week.
We will receive this TLV for each hw modes. Since
"HTT_TX_PDEV_MU_PPDU_DISTRIBUTION_STATS:\n" is header and it would be
suffice to print it once, hence added it inside hw mode ac which will be
the first hw mode integrated inside the TLV.
More information about the ath12k
mailing list