Commit Graph

258 Commits

Author SHA1 Message Date
45bf6b6455 Create tsan suppressions file 2025-08-22 13:33:46 -04:00
1a85e91113 Add test for releasing connections back to the server 2025-08-22 13:10:26 -04:00
7860e720bd Don't use sleep incorrectly 2025-08-22 12:07:51 -04:00
0e63d5e80f Have Server take list of listen fds and add createLocalConnection 2025-08-22 12:01:00 -04:00
ba3258ab16 Fix some issues with transferring conn back to server 2025-08-22 10:51:24 -04:00
1d86f48d5e Stash fd in epoll_event instead of pointer in server 2025-08-21 22:12:13 -04:00
5e8fe590c1 Move activeConnections to Server 2025-08-21 21:55:19 -04:00
9ee23fdc46 Simplify connection registry 2025-08-21 19:53:18 -04:00
d1b1e6d589 Connection registry
Now we can use leak sanitizer. Yay!
2025-08-21 18:09:36 -04:00
810b5e006d Remove misleading comment 2025-08-21 15:31:15 -04:00
21ac6c6efa Add load_tester and ThreadPipeline.h to docs 2025-08-21 15:04:28 -04:00
60802043c7 Make the default for epoll_instances io_threads/2 2025-08-21 14:38:38 -04:00
c00d5c576b Followup updates for new epoll_instances design 2025-08-21 14:20:01 -04:00
1cce8d9950 Allow multiple epoll instances on server 2025-08-21 14:13:11 -04:00
22e638e1f9 One epoll instance per network thread in load tester 2025-08-21 14:04:23 -04:00
cb6660bdd8 Tinker with defaults to increase throughput 2025-08-21 13:01:56 -04:00
093e618b98 I'm not interested in EPOLLRDHUP 2025-08-21 13:01:42 -04:00
6e9d045b2b Fix broken pipe bug in client 2025-08-21 13:01:25 -04:00
c6ceb8745d Fix type confusion 2025-08-21 12:01:40 -04:00
cfddaddb31 Separate phases for processing existing and new connections 2025-08-21 11:58:10 -04:00
78a7549ce5 Remove HttpConnectionState::body 2025-08-21 11:56:00 -04:00
0b9310d560 Tune defaults for load tester a bit and remove "auto config" 2025-08-20 22:44:44 -04:00
130ff2062a Unify accept and network threads into io threads 2025-08-20 16:50:54 -04:00
7e28e6503d Probably going to merge accept and network threads 2025-08-20 16:24:09 -04:00
24a1157f0d Try writing once on connect thread 2025-08-20 15:47:20 -04:00
729fe5c033 Measure latency 2025-08-20 15:45:38 -04:00
4e7bede241 Use --requests-per-connection 2025-08-20 15:28:48 -04:00
60cda698c0 Don't copy every byte read into arena 2025-08-20 15:21:15 -04:00
7f4c024efa Shutdown network threads after connect threads
Fixes ctrl-c, which was previously hanging in sem_wait
2025-08-20 15:10:23 -04:00
e342229743 Try to write immediately after reading 2025-08-20 14:43:01 -04:00
4de9245ec7 Add forgotten file 2025-08-20 14:42:43 -04:00
abb47ee0c3 Accumulate headers properly 2025-08-20 14:10:39 -04:00
8ccb02f450 We don't want to close the connection on EPOLLRDHUP
We'll rely on the errors from reads and writes to close the connections
2025-08-20 14:09:39 -04:00
cf692e71ef Perfetto tracing for /ok. Header parsing not complete 2025-08-20 12:19:20 -04:00
972d87b12e Organize design.md 2025-08-20 11:56:48 -04:00
0e885f1ff1 Perfetto tracing in load tester 2025-08-20 11:36:02 -04:00
dac3e5dc59 Vendor perfetto dependency 2025-08-20 11:30:42 -04:00
1b09e971bc Print load tester config 2025-08-20 11:23:43 -04:00
a5183c3dbf Always use ninja 2025-08-20 11:23:26 -04:00
5d5d8bc495 Add cli options to load tester 2025-08-20 11:13:13 -04:00
4b907819dc Match server's epoll usage a bit better 2025-08-20 10:57:04 -04:00
cf9598a568 Remove duplicate __has_feature check 2025-08-20 10:41:54 -04:00
a20b61ec56 Small tweaks to new load tester 2025-08-20 10:40:29 -04:00
339e9c6bec WIP 2025-08-20 09:32:52 -04:00
4044f0a871 Add unix socket listening mode 2025-08-19 17:57:07 -04:00
800d8cb6b0 Add TODO for enforcing max_request_size_bytes 2025-08-19 17:33:21 -04:00
b7282a2f03 Add thread safety documentation 2025-08-19 17:20:36 -04:00
b8d735f074 Initial http implementation 2025-08-19 17:20:18 -04:00
ee32b64c02 Make empty default on_data_arrived implementation 2025-08-19 16:05:04 -04:00
b017c6b209 We still want to "write" empty messages
So that the size of the messages queue can go to zero
2025-08-19 16:04:44 -04:00