On 5/31/2024 11:30 PM, Kalle Valo wrote: > Ramya Gnanasekar <quic_rgnanase@xxxxxxxxxxx> writes: > >> On 5/28/2024 4:36 PM, Kalle Valo wrote: >>> Ramya Gnanasekar <quic_rgnanase@xxxxxxxxxxx> writes: >>> >>>>>> +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. >>> >>> No worries. >>> >>>> 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. >>> >>> I would have expected that we print that outside of >>> ath12k_htt_print_tx_pdev_mu_ppdu_dist_stats_tlv(), before the function >>> is called at all. >>> >> >> Function itself will be called more than once. > > Sure, I got that. But I still think it is not really good design to > print it like that. > > Maybe the output could be something like below? Or print the mode > separate in the first line? > > 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, > > .... > > HTT_TX_PDEV_MU_PPDU_DISTRIBUTION_STATS: > > 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, > Sure Kalle. I understand. Will change like below and re-spin with all the comments addressed: HTT_TX_PDEV_AC_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, ...... ...... HTT_TX_PDEV_AX_MU_PPDU_DISTRIBUTION_STATS: 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, ...... ......