Currently, buffers attached to fastpath CEs are not being allocated
from WBUFF. Since the buffers attached to the fastpath CEs are
re-usable in nature, allocating such buffers from WBUFF will have
added benefits like allocating from custom page frag cache which
reduces the memory used by the RX buffers.
Therefore, allocate RX buffers for fastpath CEs from WBUFF module.
Change-Id: Iaa913042473d60b184a767ece934bb9063ff4a7e
CRs-Fixed: 3581533
Miscellaneous fixes in the WBUFF module.
1. Currently in wbuff_buff_put(), if the pool_id/module_id is out of
bound, NULL is being returned which is wrong. In this case, buffer
has to be freed by the caller function, therefore return SKB address.
2. Optimizations to wbuff_buff_put()/wbuff_buff_put() if the WBUFF pool
is uninitialized.
Change-Id: I53264e45a23ac5d51b4b9830d95ef24ceb222072
CRs-Fixed: 3581659
Currently, there are no statistics whatsoever present in WBUFF module.
To start with, add some basic statistics to the WBUFF module.
Change-Id: I63c06cfb8b1430b2e86539f88025e6d74a00012b
CRs-Fixed: 3548509
Since SKBs allocated from the WBUFF module are reusable SKBs, allocate
them using qdf_nbuf_page_frag_alloc() to have memory savings and also
to avoid memory fragmentation issues.
Change-Id: Icecf4f6de0842a8c767217281984c4ef25e9b9be
CRs-Fixed: 3559261
Currently, WBUFF is being used only for WMI TX buffers.
Add HIF CE RX buffers support to WBUFF in an effort to re-use
the copy engine RX buffers instead of freeing/allocating buffers
for every CE RX transaction. This fixes the problem of CE RX
memory fragmentation.
Change-Id: Id9c043a5c5d0882a7994fa03cd8c335555d46b8d
CRs-Fixed: 3534539
Currently, WBUFF logic is being used only for WMI TX buffers and the
logic is closely tied to the WMI TX buffers alone. It is cumbersome
to extend the support of WBUFF for additional modules in the current
state.
Cleanup the WBUFF code and make it generic to add future module
additions.
Change-Id: Ib20ddd487b4e88c3225da1883ad9ade722c2a606
CRs-Fixed: 3520811
Currently in WBUFF code, mslot/pslot is used to refer module_id/pool_id
and there are references of them being used interchangeably.
Rename mslot/pslot to module_id/pool_id to improve the readability of
the code. This is the pre-requisite to support mutilple modules in WBUFF
which will be added with a future patch.
Change-Id: Ia5a113535cff950cd3f464b6133370f026d4fc87
CRs-Fixed: 3516982
The kernel-doc script identified some documentation errors in the
wbuff folder, so fix them.
Change-Id: Ie3ab3bafda78a1b7207391b0accd4286e6ae5de3
CRs-Fixed: 3389343
In function wbuff_buff_put(), there is a possibility to
access array out of boundaries for module slot and pool slot.
Add condition to check for array boundaries.
Change-Id: Iaf5a0ef6b2e712804717abf27d0c0d06862a04f5
CRs-Fixed: 3086342
The debug node for all the nbufs allocated by wbuff
for a module contains the file and line info
pertaining to wbuff_module_register().
To enhance debugging, Use qdf_net_buf_debug_update_node()
to update debug info when nbuf is requested through
wbuff_buff_get().
Change-Id: Ie8b148ef6313bd3b265cfa3f141e8d0de8b75597
CRs-Fixed: 2328257
Introduce a new module WBUFF, which maintains a
pre-allocated pool of skbs for each registered
module and allocates skbs when requeted from
these pre-allocated pools.
The module exposes the following APIs:
1) wbuff_module_init
2) wbuff_module_deinit
3) wbuff_module_register
4) wbuff_module_deregister
5) wbuff_buff_get
6) wbuff_buff_put
Change-Id: Icab723ce29a9a364c822756dee78a0dae1006180
CRs-Fixed: 2313443