]> git.baikalelectronics.ru Git - kernel.git/commit
batman-adv: use kmem_cache for translation table
authorSven Eckelmann <sven@narfation.org>
Sat, 25 Jun 2016 14:44:06 +0000 (16:44 +0200)
committerSimon Wunderlich <sw@simonwunderlich.de>
Tue, 9 Aug 2016 05:54:32 +0000 (07:54 +0200)
commitbefb0549bdbc92d9abaa6f1f8b367b5badedcb31
tree6d83f692b7ae449a46400cc25a733abb5e7b4052
parent779a843a7df87cb3cd255c56c51f8e89ab60d615
batman-adv: use kmem_cache for translation table

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>
Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
net/batman-adv/main.c
net/batman-adv/translation-table.c
net/batman-adv/translation-table.h