qcacmn: buffer replenish and reap without map and unmap
use dma_inv_range call instead of dma map and unmap APIs during replenish and reap. This complete code is under a compile time macro. before change: 4160Mbps @ 96.5% (core 3) after change: 4160Mbps @ 90.5% (core 3) Change-Id: I61bca349a369ace06cd86f353880108cee013cb1
このコミットが含まれているのは:
@@ -1094,6 +1094,40 @@ qdf_nbuf_dma_inv_range(const void *buf_start, const void *buf_end)
|
||||
__qdf_nbuf_dma_inv_range(buf_start, buf_end);
|
||||
}
|
||||
|
||||
/**
|
||||
* qdf_nbuf_dma_inv_range_no_dsb() - barrierless Invalidate the specified
|
||||
* virtual address range
|
||||
* @buf_start: start address
|
||||
* @buf_end: end address
|
||||
*
|
||||
* Return: none
|
||||
*/
|
||||
static inline void
|
||||
qdf_nbuf_dma_inv_range_no_dsb(const void *buf_start, const void *buf_end)
|
||||
{
|
||||
__qdf_nbuf_dma_inv_range_no_dsb(buf_start, buf_end);
|
||||
}
|
||||
|
||||
/**
|
||||
* qdf_nbuf_dma_clean_range_no_dsb() - barrierless clean the specified
|
||||
* virtual address range
|
||||
* @buf_start: start address
|
||||
* @buf_end: end address
|
||||
*
|
||||
* Return: none
|
||||
*/
|
||||
static inline void
|
||||
qdf_nbuf_dma_clean_range_no_dsb(const void *buf_start, const void *buf_end)
|
||||
{
|
||||
__qdf_nbuf_dma_clean_range_no_dsb(buf_start, buf_end);
|
||||
}
|
||||
|
||||
static inline void
|
||||
qdf_dsb(void)
|
||||
{
|
||||
__qdf_dsb();
|
||||
}
|
||||
|
||||
static inline int qdf_nbuf_get_num_frags(qdf_nbuf_t buf)
|
||||
{
|
||||
return __qdf_nbuf_get_num_frags(buf);
|
||||
@@ -1663,6 +1697,9 @@ void qdf_net_buf_debug_release_skb(qdf_nbuf_t net_buf);
|
||||
|
||||
/* nbuf allocation rouines */
|
||||
|
||||
#define qdf_nbuf_alloc_simple(d, s) \
|
||||
__qdf_nbuf_alloc_simple(d, s)
|
||||
|
||||
#define qdf_nbuf_alloc(d, s, r, a, p) \
|
||||
qdf_nbuf_alloc_debug(d, s, r, a, p, __func__, __LINE__)
|
||||
|
||||
|
新しいイシューから参照
ユーザーをブロックする