On Saturday 25 June 2016 16:44:06 Sven Eckelmann wrote:
The translation table (global, local) is usually the
part of batman-adv
which has the most dynamical allocated objects. Most of them
(tt_local_entry, tt_global_entry, tt_orig_list_entry, tt_change_node,
tt_req_node, tt_roam_node) are equally sized. So it makes sense to have
them allocated from a kmem_cache for each type.
This approach allowed a small wireless router (TP-Link TL-841NDv8; SLUB
allocator) to store 34% more translation table entries compared to the
current implementation.
[1]
https://open-mesh.org/projects/batman-adv/wiki/Kmalloc-kmem-cache-tests
Reported-by: Linus Lüssing <linus.luessing(a)c0d3.blue>
Signed-off-by: Sven Eckelmann <sven(a)narfation.org>
---
Here is the changelog (since the RFC):
v2:
- use kmem_cache_zalloc instead of kmem_cache_alloc + memset as
suggested by Linus
- add cache batadv_tt_change_cache, batadv_tt_req_cache,
batadv_tt_roam_cache
- Added Reported-by
- rewrote commit message
- summarize+link the results from Linus' tests
Kind regards,
Sven