summaryrefslogtreecommitdiffstats
path: root/net/batman-adv/translation-table.h
diff options
context:
space:
mode:
authorSven Eckelmann <sven@narfation.org>2016-06-25 16:44:06 +0200
committerSimon Wunderlich <sw@simonwunderlich.de>2016-08-09 07:54:32 +0200
commit86452f81d200d4d6ad489ef84311030eff84dd84 (patch)
tree6d83f692b7ae449a46400cc25a733abb5e7b4052 /net/batman-adv/translation-table.h
parentbatman-adv: Introduce forward packet creation helper (diff)
downloadlinux-86452f81d200d4d6ad489ef84311030eff84dd84.tar.xz
linux-86452f81d200d4d6ad489ef84311030eff84dd84.zip
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>
Diffstat (limited to '')
-rw-r--r--net/batman-adv/translation-table.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/batman-adv/translation-table.h b/net/batman-adv/translation-table.h
index 7c7e2c006bfe..02b0f85527cc 100644
--- a/net/batman-adv/translation-table.h
+++ b/net/batman-adv/translation-table.h
@@ -59,4 +59,7 @@ bool batadv_tt_add_temporary_global_entry(struct batadv_priv *bat_priv,
bool batadv_tt_global_is_isolated(struct batadv_priv *bat_priv,
const u8 *addr, unsigned short vid);
+int batadv_tt_cache_init(void);
+void batadv_tt_cache_destroy(void);
+
#endif /* _NET_BATMAN_ADV_TRANSLATION_TABLE_H_ */