On Saturday, June 25, 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@c0d3.blue Signed-off-by: Sven Eckelmann sven@narfation.org
net/batman-adv/main.c | 16 +++- net/batman-adv/translation-table.c | 169 +++++++++++++++++++++++++++++++++---- net/batman-adv/translation-table.h | 3 + 3 files changed, 169 insertions(+), 19 deletions(-)
Applied in revision eb079fb.
Thanks, Marek