qcacld-3.0: Affine refill thread to performance cluster

Currently refill thread is not getting chance to update
refill buffer pool, which is causing the increase in
rx thread time.
To fix issue move refill thread to performace cluster.

Change-Id: I839352ff09da692f801e97f7938a67ab8f09742b
CRs-Fixed: 3138081
This commit is contained in:
Amit Mehta
2022-03-04 10:30:46 +05:30
gecommit door Madan Koyyalamudi
bovenliggende c53ced9782
commit 22de5a5cf9
3 gewijzigde bestanden met toevoegingen van 38 en 0 verwijderingen

Bestand weergeven

@@ -64,6 +64,39 @@ static inline void dp_rx_tm_walk_skb_list(qdf_nbuf_t nbuf_list)
{ }
#endif /* DP_RX_TM_DEBUG */
#ifdef DP_RX_REFILL_CPU_PERF_AFFINE_MASK
/**
* dp_rx_refill_thread_set_affinity - Affine Rx refill threads
* @refill_thread: Contains over all rx refill thread info
*
* Return: None
*/
static void
dp_rx_refill_thread_set_affinity(struct dp_rx_refill_thread *refill_thread)
{
unsigned int cpus;
char new_mask_str[10];
qdf_cpu_mask new_mask;
qdf_cpumask_clear(&new_mask);
qdf_for_each_online_cpu(cpus) {
if (qdf_topology_physical_package_id(cpus) ==
CPU_CLUSTER_TYPE_PERF) {
qdf_cpumask_set_cpu(cpus, &new_mask);
}
}
qdf_thread_set_cpus_allowed_mask(refill_thread->task, &new_mask);
cpumap_print_to_pagebuf(false, new_mask_str, &new_mask);
dp_debug("Refill Thread CPU mask %s", new_mask_str);
}
#else
static void
dp_rx_refill_thread_set_affinity(struct dp_rx_refill_thread *refill_thread)
{
}
#endif
/**
* dp_rx_tm_get_soc_handle() - get soc handle from struct dp_rx_tm_handle_cmn
* @rx_tm_handle_cmn - rx thread manager cmn handle
@@ -867,6 +900,8 @@ QDF_STATUS dp_rx_refill_thread_init(struct dp_rx_refill_thread *refill_thread)
return QDF_STATUS_E_FAILURE;
}
dp_rx_refill_thread_set_affinity(refill_thread);
refill_thread->state = DP_RX_REFILL_THREAD_RUNNING;
return QDF_STATUS_SUCCESS;
}