From 1dcdd4f688da7c46fffab297f04fb2f6bc7d3719 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Frosteg=C3=A5rd?= Date: Fri, 9 Feb 2024 01:23:52 +0100 Subject: [PATCH] Update TODO --- TODO.md | 35 ++++++++--------------------------- 1 file changed, 8 insertions(+), 27 deletions(-) diff --git a/TODO.md b/TODO.md index 9804755..17a10ef 100644 --- a/TODO.md +++ b/TODO.md @@ -18,14 +18,6 @@ * aquatic_ws * Add cleaning task for ConnectionHandle.announced_info_hashes? -* Performance hyperoptimization (receive interrupts on correct core) - * If there is no network card RSS support, do eBPF XDP CpuMap redirect based on packet info, to - cpus where socket workers run. Support is work in progress in the larger Rust eBPF - implementations, but exists in rebpf - * Pin socket workers - * Set SO_INCOMING_CPU (which should be fixed in very recent Linux?) to currently pinned thread - * How does this relate to (currently unused) so_attach_reuseport_cbpf code? - ## Low priority * aquatic_udp @@ -34,9 +26,14 @@ * thiserror? * CI * uring load test? - * load test - * move additional request sending to for each received response, maybe - with probability 0.2 + +* Performance hyperoptimization (receive interrupts on correct core) + * If there is no network card RSS support, do eBPF XDP CpuMap redirect based on packet info, to + cpus where socket workers run. Support is work in progress in the larger Rust eBPF + implementations, but exists in rebpf + * Pin socket workers + * Set SO_INCOMING_CPU (which should be fixed in very recent Linux?) to currently pinned thread + * How does this relate to (currently unused) so_attach_reuseport_cbpf code? # Not important @@ -47,19 +44,3 @@ * scrape: does it work (serialization etc), and with multiple hashes? * 'left' optional in magnet requests? Probably not. Transmission sends huge positive number. - -# Don't do - -* general: PGO didn't seem to help way back - -## aquatic_http -* request from path: - * deserialize 20 bytes: possibly rewrite (just check length of underlying - bytes == 20 and then copy them), also maybe remove String from map for - these cases too. doesn't really improve performance - * crazy http parsing: check for newline with memchr, take slice until - there. then iter over space newlines/just take relevant data. Not faster - than httparse and a lot worse - -## aquatic_udp_protocol -* Use `bytes` crate: seems to worsen performance somewhat