Commit Graph

1479 Commits

Author SHA1 Message Date
Herbert Wolverson
c510a9399a Missing doctag 2023-04-24 20:53:43 +00:00
Herbert Wolverson
f573001007 Update Heimdall to also use eBPF iterators
This eliminates another set of syscalls per cycle. The old per_cpu
map system is now removed, in favor of direct iteration of maps.
2023-04-24 20:53:43 +00:00
Herbert Wolverson
1e5f59c5ce Now that we're differentiating between single-CPU and per-CPU map types, we can eliminate 8 bytes of bus traffic by not reporting CPU counts (and padding) 2023-04-24 20:53:43 +00:00
Herbert Wolverson
6db2cb0245 Add a little padding to the output stream kernel side, to nicely align on 64-bit boundaries. Then use aligned casting for zero-copy userspace access to the data. Another smallish speed increase. 2023-04-24 20:53:43 +00:00
Herbert Wolverson
0c62268ed6 Avoid reallocation of multi-cpu vectors during iteration. 2023-04-24 20:53:43 +00:00
Herbert Wolverson
cf7ccb7954 Start documenting the types created in this patch-chain. 2023-04-24 20:53:43 +00:00
Herbert Wolverson
b192478a43 Remove a no-longer-needed import. 2023-04-24 20:53:43 +00:00
Herbert Wolverson
dcf2c5f7e2 Remove 2 more syscalls by removing a useless mutex. 2023-04-24 20:53:43 +00:00
Herbert Wolverson
082a16e532 Handle per-CPU maps correctly in eBPF iterators
The eBPF iterator interface is now per-CPU aware, and correctly
extracts a slice of data for each per-CPU map (or a slice of 1
when using a non-CPU divided map).
2023-04-24 20:53:43 +00:00
Herbert Wolverson
f0ea3edcff Use eBPF iterators (requires kernel 5.8+) instead of next_entry
Replaces the eBPF interface "bpf_map_get_next_key" followed by
"bpf_map_lookup_elem" cycle for iterating maps with a call to
the kernel-provided eBPF iterator service.

Currently only implemented for throughput and RTT tracking.
Further commits will tighten the scope and eventually remove
the legacy setup completely.

For 10k hosts, this reduces the number of system calls from
20,002 to 4. The remaining items are a futex lock (required
for safety), and an iterator call.
2023-04-24 20:53:43 +00:00
Herbert Wolverson
cadd3aa800 Add the new tool to the git ignore list. 2023-04-24 20:53:43 +00:00
Herbert Wolverson
5cd5b44496 Add a tool to track eBPF map performance
New tool: lqos_map_perf is included in the distribution. It
runs the two map iterators that pound the lqosd/eBPF system
with map iterations, counts the number of entries returned
and reports on overall performance (in µs).

This is intended to help with diagnosing map reading
performance issues and act as a bench-test to see if
using eBPF iterators actually helps.
2023-04-24 20:53:43 +00:00
Robert Chacón
b4feb920b0
Merge pull request #345 from LibreQoE/node_types_hotfix
Hotfix: handle node "type" entry
2023-04-24 09:49:47 -06:00
Herbert Wolverson
5795181d18 Update Rust package database to use newer versions of some crates, removing a non-threatening CVE. 2023-04-24 13:49:28 +00:00
Herbert Wolverson
36440bdd9c Handle cases where the field isn't present in network.json for backwards compatibility. 2023-04-24 13:48:19 +00:00
Herbert Wolverson
629ebb0293 Hotfix: handle node "type" entry
Adding "type" to `network.json` is awesome, but it broke a bit of
Rust. This patch adds support for the `type` field, and fixes
a rare "none" issue that mostly seems to affect my UISP setup.
2023-04-24 13:28:37 +00:00
Robert Chacón
125ef55e35
Update README.md 2023-04-23 21:57:19 -06:00
Robert Chacón
20d69aa6d5
Update ispConfig.example.py 2023-04-23 13:46:03 -06:00
Robert Chacón
f5d6257652
Print runtime of UISP Integration. Correct print statement before walkGraphOutwards() 2023-04-21 02:01:19 -06:00
Robert Chacón
ee83b9f463
Update INTEGRATION_HOWTO.md 2023-04-19 19:27:56 -06:00
Robert Chacón
77f21b4118
Update .gitignore 2023-04-19 19:14:47 -06:00
Robert Chacón
c7d501a957
Add option to control frequency of queue refreshes in minutes - queueRefreshIntervalMins 2023-04-16 09:32:17 -06:00
Robert Chacón
d965f51a64
Update ispConfig.example.py 2023-04-16 09:28:53 -06:00
Robert Chacón
1ee7484d86
Add 'type' to network.json. For https://github.com/LibreQoE/LibreQoS/issues/308 2023-04-15 11:24:07 -06:00
Robert Chacón
4861b5f2fd
Rename integrationUISProutes.csv to integrationUISProutes.template.csv 2023-04-15 10:37:21 -06:00
Robert Chacón
ffda0a08f1
Render network map graph horizontally. Makes much more efficient use of space. 2023-04-15 10:29:49 -06:00
Robert Chacón
286c2a4931
Only print warning if actual site goes off PtMP AP, not client sites 2023-04-15 10:03:41 -06:00
Robert Chacón
2b16930586
https://github.com/LibreQoE/LibreQoS/issues/336 2023-04-15 09:56:45 -06:00
Robert Chacón
c62f6d3e3c
Fix https://github.com/LibreQoE/LibreQoS/issues/309 2023-04-15 09:44:50 -06:00
Robert Chacón
3d6d32c300
Update integrationUISP.py 2023-04-15 09:42:03 -06:00
Robert Chacón
eced3e2ac5
Update integrationUISP.py 2023-04-14 23:56:08 -06:00
Robert Chacón
d80be2bd4c
Merge pull request #333 from LibreQoE/partialReloadImprovement
Partial reload improvement
2023-04-14 16:17:13 -06:00
Robert Chacón
33e94b5fd7
Merge pull request #337 from LibreQoE/fixUISPmultiWAN
UISP Handle Multiple Internet-Connected Sites
2023-04-14 16:16:38 -06:00
Robert Chacón
9657796270
Update integrationUISP.py 2023-04-14 16:02:21 -06:00
Robert Chacón
5c5f9ee1e5
Update integrationUISP.py 2023-04-14 16:00:22 -06:00
Robert Chacón
2d3ff07f9e
Update integrationUISP.py 2023-04-14 14:45:13 -06:00
Robert Chacón
13f0df7e0c
Update integrationUISP.py 2023-04-14 13:26:28 -06:00
Robert Chacón
3bb8a30152
Update integrationUISP.py 2023-04-14 13:24:12 -06:00
Robert Chacón
24b4609fd5
Merge pull request #335 from LibreQoE/fix334
UISP Integration Improvements
2023-04-14 05:49:36 -06:00
Robert Chacón
5f30799538
Add files via upload 2023-04-13 20:16:33 -06:00
Robert Chacón
e5d70d4e7a
Update integrationUISP.py 2023-04-13 19:32:00 -06:00
Robert Chacón
25ffa131b3
Update integrationUISP.py 2023-04-13 09:32:50 -06:00
Robert Chacón
942e4db89d
Update integrationUISP.py 2023-04-13 09:28:59 -06:00
Robert Chacón
ec2ed8e4ad
Update integrationUISP.py 2023-04-13 09:03:30 -06:00
Robert Chacón
8f55f4ac4e
Update integrationUISP.py 2023-04-13 08:51:53 -06:00
Robert Chacón
99c716de86
Update integrationUISP.py 2023-04-13 08:48:00 -06:00
Robert Chacón
855b838831
Update integrationUISP.py 2023-04-12 20:52:42 -06:00
Robert Chacón
c555801733
Update requirements.txt 2023-04-12 13:29:28 -06:00
Robert Chacón
3a4d33225a
Update LibreQoS.py 2023-04-12 13:29:05 -06:00
Herbert Wolverson
77ecb8afcd Merge branch 'develop' 2023-04-12 14:03:15 +00:00