From: Sven Eckelmann <sven.eckelmann@openmesh.com>
To: b.a.t.m.a.n@lists.open-mesh.org
Subject: [B.A.T.M.A.N.] [PATCH 0/5] alfred: TQ query optimizations
Date: Wed, 24 May 2017 12:31:28 +0200 [thread overview]
Message-ID: <4690435.IOLn72U8Ez@bentobox> (raw)
[-- Attachment #1: Type: text/plain, Size: 2632 bytes --]
Hi,
alfred uses the TQ from batman-adv to find its best alfred neighbor. This best
neighbor information is used by slave servers to request/publish data.
This is done for each server announcement packet by:
* requesting the global translation table (netlink or debugfs) and then
searching in it for the MAC address of the detected alfred server to find
its originator address
* requesting the originator table (netlink or debugfs) and then searching it
it for the originator address of the detected alfred server to find its TQ
value
This was previously done whenever a new announcement packet received by
alfred. We've observed that this can be a problem on networks with a lot of
master servers (~100) which can see each other, large translation tables and
slow CPUs. alfred still worked but the CPU load by alfred was rather high
(~20% on an 560MHz AR9344).
The idea is now to avoid this lookup for master servers. And (for slave
servers) to process all servers at once. This is done before the wants to push
its local data to a master server in an sync interval.
The process which was described earlier was now changed to:
* requesting the global translation table (netlink or debugfs) and then put
MAC address and corresponding originator address in tg hash
* requesting the originator table (netlink or debugfs) and then put
originator address and corresponding TQ value orig hash
* got through all servers:
- search in tg hash for for the MAC address of the alfred server to find
its originator address
- search in orig hash for for the originator address of the alfred server
to find its TQ value
These changes reduced the load on the previously mentioned devices
significantly.
Kind regards,
Sven
Sven Eckelmann (5):
alfred: Move alfred specific netlink code in separate file
alfred: Only query tq of remote master in slave mode
alfred: Check the TQ of master servers before pushing data
alfred: Cache the TQ values for each originator
alfred: Cache the global translation table entries
Makefile | 1 +
alfred.h | 1 -
batadv_query.c | 227 +++++++++++++++++++++++++++++++++++++++++--------------
batadv_query.h | 25 +++++-
batadv_querynl.c | 216 ++++++++++++++++++++++++++++++++++++++++++++++++++++
batadv_querynl.h | 34 +++++++++
netlink.c | 195 -----------------------------------------------
netlink.h | 7 --
recv.c | 15 +---
server.c | 56 +++++++++++++-
10 files changed, 501 insertions(+), 276 deletions(-)
create mode 100644 batadv_querynl.c
create mode 100644 batadv_querynl.h
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next reply other threads:[~2017-05-24 10:31 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-24 10:31 Sven Eckelmann [this message]
2017-05-24 10:32 ` [B.A.T.M.A.N.] [PATCH 1/5] alfred: Move alfred specific netlink code in separate file Sven Eckelmann
2017-05-24 10:32 ` [B.A.T.M.A.N.] [PATCH 2/5] alfred: Only query tq of remote master in slave mode Sven Eckelmann
2017-05-24 10:32 ` [B.A.T.M.A.N.] [PATCH 3/5] alfred: Check the TQ of master servers before pushing data Sven Eckelmann
2017-05-24 10:32 ` [B.A.T.M.A.N.] [PATCH 4/5] alfred: Cache the TQ values for each originator Sven Eckelmann
2017-05-24 10:32 ` [B.A.T.M.A.N.] [PATCH 5/5] alfred: Cache the global translation table entries Sven Eckelmann
2017-05-31 15:24 ` [B.A.T.M.A.N.] [PATCH 0/5] alfred: TQ query optimizations Simon Wunderlich
2017-06-01 6:15 ` Sven Eckelmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4690435.IOLn72U8Ez@bentobox \
--to=sven.eckelmann@openmesh.com \
--cc=b.a.t.m.a.n@lists.open-mesh.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox