Commit graph

1720 commits

Author SHA1 Message Date
Joakim Frostegård
f84d80a7e7
Merge pull request #132 from greatest-ape/work-2023-03-08
udp: uring: use UnsafeCell, code improvements
2023-03-08 20:04:41 +01:00
Joakim Frostegård
cff6b0cce1 Update TODO 2023-03-08 14:46:34 +01:00
Joakim Frostegård
aae19c4cb3 udp: uring: combine SendBuffers metadata lookups 2023-03-08 14:40:29 +01:00
Joakim Frostegård
1be6d4fa61 udp: uring: improve log messages 2023-03-08 14:31:45 +01:00
Joakim Frostegård
d862da2aef udp: uring: add recv_helper::Error type 2023-03-08 14:14:15 +01:00
Joakim Frostegård
9bb69627c8 udp: uring: branch less in RecvHelper::parse 2023-03-08 13:54:49 +01:00
Joakim Frostegård
aa2c36a373 udp: uring: rewrite RecvHelper to use UnsafeCell 2023-03-08 13:43:11 +01:00
Joakim Frostegård
fa93f38d82 udp: uring: improve SendBuffers code 2023-03-08 13:33:14 +01:00
Joakim Frostegård
339feb3d0a udp: uring: rewrite SendBuffers to use UnsafeCell 2023-03-08 13:14:35 +01:00
Joakim Frostegård
2e67f11caf
udp: add experimental io_uring implementation (#131)
* WIP: add udp uring support

* WIP: fix udp uring address parsing

* WIP: udp uring: resubmit recv when needed

* WIP: udp uring: add OutMessageStorage, send swarm responses

* WIP: udp uring: increase ring entries to 1024

* WIP: udp uring: add constants

* WIP: udp uring: use sqpoll, avoid kernel calls

* WIP: udp uring: disable sqpoll

* WIP: udp uring: use VecDeque for local responses

* udp uring: enable setup_coop_taskrun

* udp uring: add RecvMsgStorage

* udp: improve split of uring and mio implementations

* udp uring: clean up

* udp uring: initial ipv6 support

* udp uring: improve helper structs

* udp uring: clean up, use constants for important data

* udp: share create_socket fn between implementations

* udp uring: improve send buffer free index finding

* udp uring: work on SendBuffers.try_add

* udp uring: split into modules

* udp uring: Rename RecvMsgMultiHelper to RecvHelper

* udp uring: improve SendBuffers

* udp uring: fix copyright attribution in buf_ring module

* udp uring: stop always consuming 100% cpu

* udp uring: clean up

* udp uring: add handle_recv_cqe

* udp uring: move local_responses into SocketWorker

* udp uring: move timeout_timespec into SocketWorker

* Update TODO

* udp: make io-uring optional

* Update TODO

* udp uring: enqueue timeout before sends

* udp uring: move likely empty buffer tracking logic into SendBuffers

* udp uring: improve error handling and logging

* udp uring: keep one timeout submitted at a time

* udp uring: update pending_scrape_valid_until

* udp uring: add second timeout for cleaning

* Update TODO

* udp uring: store resubmittable squeue entries in a Vec

* udp uring: add comment, remove a log statement

* Update TODO

* Update TODO

* udp: io_uring: fall back to mio if io_uring support not recent enough

* udp: uring: add bytes_received statistics

* udp: uring: add bytes_sent statistics

* udp: uring: add more statistics

* Update TODO

* udp: uring: improve SendBuffers code

* udp: uring: remove unneeded squeue sync calls

* udp: uring: replace buf_ring impl with one from tokio-uring

* udp: uring: store ring in TLS so it can be used in Drop impls

* udp: uring: store BufRing in SocketWorker

* udp: uring: silence buf_ring dead code warnings, improve comment

* Update TODO

* udp: uring: improve CurrentRing docs, use anonymous struct field

* udp: uring: improve ring setup

* udp: uring: get ipv6 working

* udp: uring: make ring entry count configurable, use more send entries

* udp: uring: log number of pending responses (info level)

* udp: uring: improve comment on send_buffer_entries calculation

* udp: improve config comments

* udp: uring: add to responses stats when they are confirmed as sent

* Update TODO

* udp: uring: enable IoUring setup_submit_all

* Update README
2023-03-07 19:01:37 +01:00
Joakim Frostegård
6f4ffda1bb
Merge pull request #129 from greatest-ape/work-2023-02-26_2
Update README and CHANGELOG
2023-02-26 17:13:25 +01:00
Joakim Frostegård
73def7444d Update README 2023-02-26 17:07:10 +01:00
Joakim Frostegård
b10b277fea Update CHANGELOG 2023-02-26 16:58:59 +01:00
Joakim Frostegård
146ffde5d9
Merge pull request #128 from greatest-ape/work-2023-02-26
Add udp prometheus support; enable prometheus by default for all protocols
2023-02-26 16:53:58 +01:00
Joakim Frostegård
3806faaff9 udp: only include prometheus fields in config if feature enabled 2023-02-26 16:41:37 +01:00
Joakim Frostegård
9bd4062e44 README: improve wording 2023-02-26 12:39:41 +01:00
Joakim Frostegård
be0ccb2de2 Update README 2023-02-26 12:36:12 +01:00
Joakim Frostegård
2abb76d690 Update TODO 2023-02-26 12:35:37 +01:00
Joakim Frostegård
9d10a7b7b3 README: update prometheus section 2023-02-26 12:15:15 +01:00
Joakim Frostegård
f1d0901416 udp: check statistics.extended config for prometheus 2023-02-26 12:10:54 +01:00
Joakim Frostegård
07eac06a36 Enable prometheus by default, update README 2023-02-26 12:10:12 +01:00
Joakim Frostegård
9e7e56b082 udp: prometheus metrics for peers per torrent, add p999 2023-02-26 12:07:14 +01:00
Joakim Frostegård
5276a919da udp: add prometheus support 2023-02-26 11:57:00 +01:00
Joakim Frostegård
e4b7c8451d
Merge pull request #127 from greatest-ape/work-2023-02-25
Use regular instead of amortized index map; ignore request.key in aquatic_http; update dependencies
2023-02-25 23:13:48 +01:00
Joakim Frostegård
66ce936a12 Update CHANGELOG 2023-02-25 23:00:54 +01:00
Joakim Frostegård
1afe45c6f6 http: use CompactString in AnnounceRequest, ignore key in tracker 2023-02-25 22:51:25 +01:00
Joakim Frostegård
2fa1a046d7 Run cargo update
Updating syn v1.0.107 -> v1.0.109
    Updating time v0.3.19 -> v0.3.20
    Updating time-macros v0.2.7 -> v0.2.8
    Updating tokio-stream v0.1.11 -> v0.1.12
2023-02-25 22:38:46 +01:00
Joakim Frostegård
b42d55b003 Replace indexmap-amortized with plain (ahash) indexmap 2023-02-25 22:37:54 +01:00
Joakim Frostegård
beb8c52fe6 Update TODO 2023-02-25 22:32:34 +01:00
Joakim Frostegård
084067ee74 Update README 2023-02-25 22:21:56 +01:00
Joakim Frostegård
bdf200019a
Merge pull request #124 from greatest-ape/work-2023-02-19
Run cargo update
2023-02-19 22:59:34 +01:00
Joakim Frostegård
ba2c32544e Run cargo update
Updating anyhow v1.0.68 -> v1.0.69
    Removing bstr v0.2.17
    Updating csv v1.1.6 -> v1.2.0
    Updating fastrand v1.8.0 -> v1.9.0
    Updating gimli v0.27.1 -> v0.27.2
    Updating http v0.2.8 -> v0.2.9
    Removing itoa v0.4.8
    Updating mio v0.8.5 -> v0.8.6
    Updating once_cell v1.17.0 -> v1.17.1
    Updating proc-macro2 v1.0.50 -> v1.0.51
    Removing regex-automata v0.1.10
    Updating serde_bytes v0.11.8 -> v0.11.9
    Updating serde_json v1.0.91 -> v1.0.93
    Updating signal-hook v0.3.14 -> v0.3.15
    Updating signal-hook-registry v1.4.0 -> v1.4.1
    Updating slab v0.4.7 -> v0.4.8
    Updating spin v0.9.4 -> v0.9.5
    Updating time v0.3.17 -> v0.3.19
    Updating time-macros v0.2.6 -> v0.2.7
2023-02-19 22:51:23 +01:00
Joakim Frostegård
b71b3b091c
Merge pull request #123 from greatest-ape/work-2023-0219
README: update worker number recommendations
2023-02-19 18:18:42 +01:00
Joakim Frostegård
cc503f837b README: update worker number recommendations 2023-02-19 18:12:58 +01:00
Joakim Frostegård
63d2e7ae8f
Merge pull request #121 from greatest-ape/work-2023-02-04
Update TODO, run cargo update
2023-02-04 18:34:47 +01:00
Joakim Frostegård
3f3ecf21cb Fix issue in file transfer CI 2023-02-04 18:28:28 +01:00
Joakim Frostegård
40b2513997 Run cargo update
Updating ahash v0.8.2 -> v0.8.3
    Updating async-trait v0.1.61 -> v0.1.64
    Updating bytes v1.3.0 -> v1.4.0
    Updating cc v1.0.78 -> v1.0.79
    Updating crc v3.0.0 -> v3.0.1
    Updating either v1.8.0 -> v1.8.1
    Updating futures v0.3.25 -> v0.3.26
    Updating futures-channel v0.3.25 -> v0.3.26
    Updating futures-core v0.3.25 -> v0.3.26
    Updating futures-executor v0.3.25 -> v0.3.26
    Updating futures-io v0.3.25 -> v0.3.26
    Updating futures-macro v0.3.25 -> v0.3.26
    Updating futures-sink v0.3.25 -> v0.3.26
    Updating futures-task v0.3.25 -> v0.3.26
    Updating futures-util v0.3.25 -> v0.3.26
    Updating gimli v0.27.0 -> v0.27.1
    Updating git-testament v0.2.2 -> v0.2.4
    Updating heck v0.4.0 -> v0.4.1
    Updating hyper v0.14.23 -> v0.14.24
    Updating intrusive-collections v0.9.4 -> v0.9.5
    Updating js-sys v0.3.60 -> v0.3.61
    Updating memoffset v0.5.6 -> v0.8.0
    Updating object v0.30.2 -> v0.30.3
    Updating parking_lot_core v0.9.6 -> v0.9.7
    Updating raw-cpuid v10.6.0 -> v10.6.1
    Updating rayon-core v1.10.1 -> v1.10.2
    Updating sync_wrapper v0.1.1 -> v0.1.2
    Updating tinyvec_macros v0.1.0 -> v0.1.1
    Updating tokio v1.24.2 -> v1.25.0
    Updating toml v0.5.10 -> v0.5.11
    Updating unicode-bidi v0.3.8 -> v0.3.10
    Updating unicode-segmentation v1.10.0 -> v1.10.1
    Updating wasm-bindgen v0.2.83 -> v0.2.84
    Updating wasm-bindgen-backend v0.2.83 -> v0.2.84
    Updating wasm-bindgen-macro v0.2.83 -> v0.2.84
    Updating wasm-bindgen-macro-support v0.2.83 -> v0.2.84
    Updating wasm-bindgen-shared v0.2.83 -> v0.2.84
    Updating web-sys v0.3.60 -> v0.3.61
      Adding windows-sys v0.45.0
      Adding windows-targets v0.42.1
2023-02-04 15:41:38 +01:00
Joakim Frostegård
1372f46e87 Update TODO 2023-02-04 15:38:09 +01:00
Joakim Frostegård
1f7539abb3
Merge pull request #120 from greatest-ape/ws-load-test-update
Update ws load test
2023-01-26 21:32:25 +01:00
Joakim Frostegård
2f2e490cf5
Merge branch 'master' into ws-load-test-update 2023-01-26 21:24:44 +01:00
Joakim Frostegård
04a93bac59
Merge pull request #119 from greatest-ape/ws-load-test-fixes
ws load test: enable measuring once all connections are open
2023-01-26 21:12:50 +01:00
Joakim Frostegård
734976895c Update ws load test 2023-01-26 21:12:21 +01:00
Joakim Frostegård
373e8277e0 ws load test: enable measuring once all connections are open 2023-01-26 02:35:43 +01:00
Joakim Frostegård
61ae6dd7e7
Merge pull request #118 from greatest-ape/work-2023-01-25
ws load test: use relaxed atomics, provide stats on number of active connections
2023-01-25 22:59:34 +01:00
Joakim Frostegård
b073d61bf3 cargo fmt 2023-01-25 22:50:25 +01:00
Joakim Frostegård
3d2ae26b13 ws load test: provide stats on number of active connections 2023-01-25 22:50:16 +01:00
Joakim Frostegård
1d8eec3c44 ws load test: use relaxed atomics 2023-01-25 22:40:35 +01:00
Joakim Frostegård
6f95a8cf4a
Merge pull request #117 from greatest-ape/update-http-load-test-2023-01-25
Update HTTP load test results
2023-01-25 22:29:19 +01:00
Joakim Frostegård
000948f47c Update HTTP load test results 2023-01-25 22:16:09 +01:00
Joakim Frostegård
5ac8f3727b
Merge pull request #116 from greatest-ape/prometheus
fix ws metrics; add http metrics; fix http load test issues; run cargo update
2023-01-18 22:36:26 +01:00