qcacld-3.0: Move fields from hdd_stats to adapter

Move below two fields from hdd_stats struct to hdd_adapter
1) is_ll_stats_req_pending
    Stats will be requested on adapter and in case of MLO
    the bitmap of VDEV is send to FW to request all associated
    VDEV's stats.

2) sta_stats_cached_timestamp
    As stats for each VDEV in adapter will be queried in one
    request to FW, the timestamp of last stats update is per
    adapter.

Change-Id: I7291e7700a4e6de47196869731b4fdf353a17e78
CRs-Fixed: 3451925
Dieser Commit ist enthalten in:
Vinod Kumar Pirla
2023-02-23 20:38:12 -08:00
committet von Rahul Choudhary
Ursprung f523ce01c2
Commit 64cf277083
3 geänderte Dateien mit 14 neuen und 12 gelöschten Zeilen

Datei anzeigen

@@ -592,11 +592,6 @@ struct hdd_stats {
struct hdd_peer_stats peer_stats;
struct hdd_pmf_stats hdd_pmf_stats;
struct pmf_bcn_protect_stats bcn_protect_stats;
qdf_atomic_t is_ll_stats_req_pending;
#ifdef FEATURE_CLUB_LL_STATS_AND_GET_STATION
uint32_t sta_stats_cached_timestamp;
#endif
};
/**
@@ -1077,6 +1072,8 @@ struct wlan_hdd_tx_power {
* @event_flags: a bitmap of hdd_adapter_flags
* @active_links: a bitmap of active links in @link_info array
* @hdd_stats: HDD statistics
* @is_ll_stats_req_pending: atomic variable to check active stats req
* @sta_stats_cached_timestamp: last updated stats timestamp
* @estimated_linkspeed: estimated link speed
* @qdf_monitor_mode_vdev_up_event: QDF event for monitor mode vdev up
* @disconnect_comp_var: completion variable for disconnect callback
@@ -1208,6 +1205,11 @@ struct hdd_adapter {
unsigned long active_links;
struct hdd_stats hdd_stats;
qdf_atomic_t is_ll_stats_req_pending;
#ifdef FEATURE_CLUB_LL_STATS_AND_GET_STATION
uint32_t sta_stats_cached_timestamp;
#endif
uint32_t estimated_linkspeed;

Datei anzeigen

@@ -1609,7 +1609,7 @@ hdd_update_feature_cfg_club_get_sta_in_ll_stats_req(
static void
hdd_init_get_sta_in_ll_stats_config(struct hdd_adapter *adapter)
{
adapter->hdd_stats.sta_stats_cached_timestamp = 0;
adapter->sta_stats_cached_timestamp = 0;
}
#else
static void
@@ -6425,7 +6425,7 @@ hdd_alloc_station_adapter(struct hdd_context *hdd_ctx, tSirMacAddr mac_addr,
adapter->start_time = qdf_system_ticks();
adapter->last_time = adapter->start_time;
qdf_atomic_init(&adapter->hdd_stats.is_ll_stats_req_pending);
qdf_atomic_init(&adapter->is_ll_stats_req_pending);
hdd_init_get_sta_in_ll_stats_config(adapter);
return adapter;

Datei anzeigen

@@ -375,7 +375,7 @@ static void copy_station_big_data_stats_to_adapter(
static void
hdd_update_station_stats_cached_timestamp(struct hdd_adapter *adapter)
{
adapter->hdd_stats.sta_stats_cached_timestamp =
adapter->sta_stats_cached_timestamp =
qdf_system_ticks_to_msecs(qdf_system_ticks());
}
#else
@@ -2057,12 +2057,12 @@ static void wlan_hdd_dealloc_ll_stats(void *priv)
static QDF_STATUS
wlan_hdd_set_ll_stats_request_pending(struct hdd_adapter *adapter)
{
if (qdf_atomic_read(&adapter->hdd_stats.is_ll_stats_req_pending)) {
if (qdf_atomic_read(&adapter->is_ll_stats_req_pending)) {
hdd_nofl_debug("Previous ll_stats request is in progress");
return QDF_STATUS_E_ALREADY;
}
qdf_atomic_set(&adapter->hdd_stats.is_ll_stats_req_pending, 1);
qdf_atomic_set(&adapter->is_ll_stats_req_pending, 1);
return QDF_STATUS_SUCCESS;
}
@@ -2255,7 +2255,7 @@ static QDF_STATUS wlan_hdd_stats_request_needed(struct hdd_adapter *adapter)
stats_cached_duration =
qdf_system_ticks_to_msecs(qdf_system_ticks()) -
adapter->hdd_stats.sta_stats_cached_timestamp;
adapter->sta_stats_cached_timestamp;
if (stats_cached_duration <=
adapter->hdd_ctx->config->sta_stats_cache_expiry_time)
return QDF_STATUS_E_ALREADY;
@@ -2384,7 +2384,7 @@ static int wlan_hdd_send_ll_stats_req(struct hdd_adapter *adapter,
}
qdf_list_destroy(&priv->ll_stats_q);
exit:
qdf_atomic_set(&adapter->hdd_stats.is_ll_stats_req_pending, 0);
qdf_atomic_set(&adapter->is_ll_stats_req_pending, 0);
wlan_hdd_reset_station_stats_request_pending(hdd_ctx->psoc, adapter);
hdd_exit();
osif_request_put(request);