]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: iwlwifi: mvm: add debug data for MPDU counting
authorMiri Korenblit <miriam.rachel.korenblit@intel.com>
Mon, 27 May 2024 16:06:09 +0000 (19:06 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 29 May 2024 08:33:52 +0000 (10:33 +0200)
It is hard to debug issues of EMLSR entry/exit due to low throughput.
Add debug data.

Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Link: https://msgid.link/20240527190228.77ef3c2654dc.I1796a3995da2a49dd5102d33766af1ad416dd60b@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
drivers/net/wireless/intel/iwlwifi/mvm/rx.c
drivers/net/wireless/intel/iwlwifi/mvm/sta.c

index 3a1504e95b0f796fba6275e6392e0e82892e7b41..d972fcbc2cf7a538805cd5d95635b9519c6185cf 100644 (file)
@@ -224,6 +224,8 @@ static void iwl_mvm_restart_mpdu_count(struct iwl_mvm *mvm,
                mvmsta->mpdu_counters[q].window_start = jiffies;
                spin_unlock_bh(&mvmsta->mpdu_counters[q].lock);
        }
+
+       IWL_DEBUG_STATS(mvm, "MPDU counters are cleared\n");
 }
 
 static int iwl_mvm_esr_mode_active(struct iwl_mvm *mvm,
index 4fa8066a89b6a196505efd2570c5f1773c2c06cb..b7185ddcca87ed144b2298a434f3e4967ce393c9 100644 (file)
@@ -1010,6 +1010,9 @@ static void iwl_mvm_update_esr_mode_tpt(struct iwl_mvm *mvm)
                spin_unlock_bh(&mvmsta->mpdu_counters[q].lock);
        }
 
+       IWL_DEBUG_STATS(mvm, "total Tx MPDUs: %ld. total Rx MPDUs: %ld\n",
+                       total_tx, total_rx);
+
        /* If we don't have enough MPDUs - exit EMLSR */
        if (total_tx < IWL_MVM_ENTER_ESR_TPT_THRESH &&
            total_rx < IWL_MVM_ENTER_ESR_TPT_THRESH) {
index 20d4968d692a3664387b14951ebdf01af147cae8..276bcccb7a388c10c3539445266dba7eeec1ffe3 100644 (file)
@@ -4429,6 +4429,7 @@ void iwl_mvm_count_mpdu(struct iwl_mvm_sta *mvm_sta, u8 fw_sta_id, u32 count,
                        bool tx, int queue)
 {
        struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(mvm_sta->vif);
+       struct iwl_mvm *mvm = mvmvif->mvm;
        struct iwl_mvm_tpt_counter *queue_counter;
        struct iwl_mvm_mpdu_counter *link_counter;
        u32 total_mpdus = 0;
@@ -4465,6 +4466,8 @@ void iwl_mvm_count_mpdu(struct iwl_mvm_sta *mvm_sta, u8 fw_sta_id, u32 count,
                memset(queue_counter->per_link, 0,
                       sizeof(queue_counter->per_link));
                queue_counter->window_start = jiffies;
+
+               IWL_DEBUG_STATS(mvm, "MPDU counters are cleared\n");
        }
 
        for (int i = 0; i < IWL_MVM_FW_MAX_LINK_ID; i++)