Commit Graph

4609 Commits

Author SHA1 Message Date
Jeff Becker
a2fc35a7aa lower limit to 25ms 2019-11-29 19:11:14 -04:00
Jeff Becker
5924a2cec0 limit calls 2019-11-29 19:11:14 -04:00
Jason Rhinelander
5d8f547d33 Set tun to non-blocking
If we can't write to it we want failure, not blocking.
2019-11-29 19:11:14 -04:00
Jason Rhinelander
740460318a Die if job queue full
If this happens it's a pretty serious error; if someone is hitting it
occassionally it's better to know and update their queue size (and if it
is a runaway situation lokinet doesn't come back anyway).
2019-11-29 19:11:14 -04:00
Jeff Becker
28a2d471d6 style nitch 2019-11-29 19:11:14 -04:00
Jeff Becker
44e0e2c034 dont flood the logic queue 2019-11-29 19:11:14 -04:00
Jeff Becker
fba1e47d1c call jobs in logic 2019-11-29 19:11:14 -04:00
Jeff Becker
f5ede2d875 ammend previous commit 2019-11-29 19:11:14 -04:00
Jeff Becker
3489753d5a remove jenky call to logic thread in link server 2019-11-29 19:11:14 -04:00
Jeff Becker
0828307906 fix address mapping bug 2019-11-29 19:11:14 -04:00
Jeff Becker
5188873288 batch and flush 2019-11-29 19:11:14 -04:00
Jeff Becker
8849173112 try async decrypt then verify 2019-11-29 19:11:14 -04:00
Jeff Becker
2852601a28 flush in logic 2019-11-29 19:11:14 -04:00
Jeff Becker
d823d6fa70 only flush when no other jobs are executing 2019-11-29 19:11:14 -04:00
Jeff Becker
9e305c5b30 use lockless queues to gather results of transit traffic work 2019-11-29 19:11:14 -04:00
Jeff Becker
d591394ad2 dont process empty queues 2019-11-29 19:11:14 -04:00
Jeff Becker
e2472d985d process transit hops on flush 2019-11-29 19:11:14 -04:00
Jeff Becker
1a06da9c3d reduce calls in link pump 2019-11-29 19:11:14 -04:00
Jason Rhinelander
d13a3d2b62 Don't flush here; we already have a tick flushing 2019-11-29 19:11:14 -04:00
Thomas Winget
6d506302dc Show number of logic thread jobs in debug builds 2019-11-29 19:11:14 -04:00
Thomas Winget
6acf7bff7e Track and log UV event loop ticks in debug builds 2019-11-29 19:11:14 -04:00
Jeff Becker
285a9a1dd5 prevent segfault 2019-11-29 19:11:14 -04:00
Jeff Becker
a3a62c34f3 use timer guard for all jobs in debug mode 2019-11-29 19:11:14 -04:00
Jeff Becker
af663d8b10 prune members in timer context 2019-11-29 19:11:14 -04:00
Jeff Becker
11d4760c3d add metrics tracking for logic jobs in debug mode 2019-11-29 19:11:14 -04:00
Jeff Becker
ba0fd223d9 reduce number of jobs we put onto the logic thread 2019-11-29 18:45:06 -04:00
Jeff
f8c6c1379a
Merge pull request #929 from majestrate/increase-logic-queue-size-2019-11-25
make logic job queue 8 times bigger
2019-11-26 13:32:25 -05:00
Jeff
001c8c5f04
Merge pull request #926 from majestrate/fix-zero-hop-bug-2019-11-25
fix "zero hop" bug
2019-11-26 06:13:45 -05:00
Jeff Becker
dd48b149ca
make job queue size configurable 2019-11-25 16:30:34 -05:00
Jeff Becker
853108ce6e
make logic job queue 8 times bigger 2019-11-25 16:15:31 -05:00
Jeff Becker
cbb7196b30
fix "zero hop" bug 2019-11-25 11:53:03 -05:00
Jeff
ee40389f05
Merge pull request #916 from majestrate/add-contention-killer-2019-11-14
assorted crap
2019-11-22 16:31:15 -05:00
Jeff
cea41121ca
Merge pull request #924 from jagerman/faster-ev-ticks
Lower the ev tick interval to 10ms
2019-11-22 16:30:08 -05:00
Jeff Becker
c3858a56df
make it compile 2019-11-22 16:23:21 -05:00
Jeff Becker
34bc3da069
flush quues of other paths 2019-11-22 16:23:20 -05:00
Jeff Becker
6f95fbfece
work in progress 2019-11-22 16:23:20 -05:00
Jeff Becker
ac686a9329
remove valgrind access errors 2019-11-22 16:23:20 -05:00
Jeff Becker
0ec4e583d4
initialize with zeros 2019-11-22 16:23:20 -05:00
Jeff Becker
065b022427
std::move 2019-11-22 16:23:20 -05:00
Jeff Becker
b8f773eb73
use lambda 2019-11-22 16:23:20 -05:00
Jeff Becker
250cfea1e9
remove use of void * in godawful old code from a time before happyness 2019-11-22 16:23:20 -05:00
Jeff Becker
b207db626f
please the gods of valgrind 2019-11-22 16:23:20 -05:00
Jeff Becker
d44d034775
make contention checker templated 2019-11-22 16:23:19 -05:00
Jeff Becker
1fa0a0aab2
make it compile 2019-11-22 16:23:19 -05:00
Jeff Becker
fdbaaa8188
try fixing file log segfault 2019-11-22 16:23:19 -05:00
Jeff Becker
1188763ece
typo fix in release 2019-11-22 16:23:19 -05:00
Jeff Becker
56dce90de9
add trace log level for tracking logic thread jobs 2019-11-22 16:23:19 -05:00
Jeff Becker
eb6d042e73
make sure all calls of logic thread jobs are not having contention 2019-11-22 16:23:18 -05:00
Jeff Becker
d7f09a365d
contention killer 2019-11-22 16:23:18 -05:00
Jason Rhinelander
d3082fffc9 Lower the ev tick interval to 10ms
When there's nothing waiting we wait this long unconditionally, but that
can add a lot of latency across a path.

There are likely better ways to handle this via libuv's run handlers,
but this addresses the latency until we figure that out.
2019-11-22 17:05:51 -04:00