Maria Matejka
65086fda3d
Moved sk_open_unix() to common lib
2024-10-01 14:26:00 +02:00
Maria Matejka
cda025a1fa
Splitting out BIRD static library for linking to other tools
2024-10-01 14:26:00 +02:00
Maria Matejka
971d651268
Thread config has an explicit structure
2024-10-01 14:26:00 +02:00
Maria Matejka
edd9ec599c
Kernel preferred interface address updater decoupled from the lib
2024-10-01 14:26:00 +02:00
Maria Matejka
60bd75c174
Moved hostname resolver to logger
2024-10-01 14:25:58 +02:00
Maria Matejka
bd75a5253a
Displaced show threads command to its own file
2024-10-01 14:24:55 +02:00
Maria Matejka
8e7fef42bb
Disabling the old IO event logger as it doesn't run from worker loops anyway
2024-10-01 14:24:55 +02:00
Maria Matejka
386134d8e1
Splitting out clock and tracked files from sysdep/unix/io.c
2024-10-01 14:24:55 +02:00
Maria Matejka
d55a15a569
Global runtime splitout to BIRD specific and lib things
2024-10-01 14:24:55 +02:00
Maria Matejka
9f19dc0b3c
Moved stored_sock to io-loop.c (old hack for mainloop)
2024-10-01 14:24:55 +02:00
Maria Matejka
3e21e1f9a0
Calling cf_warn from log_switch makes no sense
2024-10-01 14:24:55 +02:00
Maria Matejka
e70207b281
Displaced bird_name to log.c where it rightfully belongs
2024-10-01 14:24:51 +02:00
Maria Matejka
bb183c9d0c
Sysdep: moved socket code into a separate file
2024-08-27 15:06:54 +02:00
Maria Matejka
e787a9210f
NEWS and version update
2024-07-01 15:34:06 +02:00
Maria Matejka
d53582c9a1
show threads: displaying the same thread id's as in log
2024-06-28 22:03:45 +02:00
Maria Matejka
6eea722d3f
Forbid locking altogether when RCU reader is active
2024-06-28 22:03:45 +02:00
Maria Matejka
1e77e6e1b2
Flush deferred calls directly after the loop finished its one run
2024-06-28 22:03:45 +02:00
Maria Matejka
865bab6237
IO: Allow to take new loops if the thread is hot, but only one at time
2024-06-28 22:03:45 +02:00
Maria Matejka
18d069d663
Even on shutdown we should try to pass the freed memory to others
2024-06-27 08:22:15 +02:00
Maria Matejka
af73cc4215
Allocator now reports cold pages
2024-06-26 20:45:54 +02:00
Maria Matejka
b797444e94
Merge commit 'b95dc8f29f18eb177f91fdc4bf0716fac9b15366' into mq-config-ref
...
Also converted all _Bool's to bool.
2024-06-26 17:19:24 +02:00
Maria Matejka
2a6fe617b1
IO: allow for faster loop dropping
2024-06-26 11:30:48 +02:00
Maria Matejka
7d455d64ca
Remove spinlock debug structures in production build
2024-06-26 11:30:41 +02:00
Maria Matejka
2c4b368176
RPKI socket read is prioritized over other sockets
2024-06-26 11:29:43 +02:00
Maria Matejka
9be90c0f84
Fixed a race condition in rcu-domain blocking
2024-06-19 12:36:55 +02:00
Maria Matejka
dda37842dc
No page flush before polling
...
The maximum amount of locally kept pages is 128 so we can just
well keep the half-meg of RAM allocated and prepared for future use.
2024-06-18 11:02:51 +02:00
Maria Matejka
83045e9a1f
Configuration obstacles made a separate, explicit structure
...
With this, one can walk the obstacle list in a debugger and
easier see which specific object is holding the reference.
2024-06-14 23:16:07 +02:00
Maria Matejka
61dcbb1d83
Global runtime values separated from config
2024-06-14 23:16:07 +02:00
Maria Matejka
397eee5a00
Config: Removed obsolete force_restart option when commiting
2024-06-14 23:16:07 +02:00
Maria Matejka
ea4aef2a14
Memory allocator tweaking
...
TODO: make this configurable
2024-06-12 14:48:33 +02:00
Maria Matejka
5c8179d63a
Time accounting must be done by coarse timers
...
on some ARM, the precise timers are too slow to be actually useful
2024-06-12 14:48:33 +02:00
Maria Matejka
2e882d4a7d
IO Loop: process socket reads only after timers and events are done
2024-06-12 14:48:33 +02:00
Maria Matejka
50d7287741
IO Threads: scheduler debug shows info on next loop to run
2024-06-12 14:48:33 +02:00
Maria Matejka
1180f25123
Threads: smoothening loop pickup and less aggressive dropping
2024-06-12 14:48:33 +02:00
Maria Matejka
8ad9c946e1
IO loop picker fixed
...
Now if the thread finds out that it actually isn't busy,
it unsets the business status and picks something up right away.
2024-06-12 14:48:33 +02:00
Maria Matejka
4bca3b9f86
Task-in-limit checker hacked for mainloop
2024-06-12 14:48:33 +02:00
Maria Matejka
661193cf98
Thread IO: a little bit faster RX repeat
2024-06-12 14:48:33 +02:00
Maria Matejka
bf961ba405
Threads shouldn't drop stopping loops
2024-06-12 09:23:50 +02:00
Maria Matejka
0fb9177374
Loop scheduler tracing options configurable
2024-06-12 09:23:50 +02:00
Maria Matejka
67e9a37291
Fixed nanoseconds in IO loop time limiter
2024-06-12 09:23:50 +02:00
Maria Matejka
4104d668d9
Read-write spinlocks
2024-06-12 09:23:50 +02:00
Maria Matejka
6ffab25f01
IO loop: fixed unassigned count
2024-06-04 22:20:18 +02:00
Maria Matejka
423eaf3438
Softened warning about too much time spent in loop
...
Now the warning needs at least 10 ms after the scheduled end time
to ever complain.
TODO: make this configurable
2024-06-04 22:20:18 +02:00
Maria Matejka
2705c385c0
Never allow more than 300 ms per loop
2024-06-04 10:11:36 +02:00
Maria Matejka
dc416d2de3
RCU: Rewritten to be more straightforward
2024-06-04 10:11:36 +02:00
Maria Matejka
10bb1c1e9d
Real almost-lockless feeds and more pull-like exports
...
Introducing a new omnipotent internal API to just pass route updates
from whatever point wherever we want.
From now on, all the exports should be processed by RT_WALK_EXPORTS
macro, and you can also issue a separate feed-only request to just get a
feed and finish.
The exporters can now also stop and the readers must expect that to
happen and recover. Main tables don't stop, though.
2024-06-04 10:11:36 +02:00
Maria Matejka
b5f803ce4a
Simplified temporary resources
...
Also TMP_SAVED now uses the CLEANUP hook to allow for breaks and returns
2024-05-25 19:37:16 +02:00
Maria Matejka
76ca53e4f8
SKIP_BACK_DECLARE: easier embedded-to-parent typecasting
2024-05-25 19:37:16 +02:00
Maria Matejka
29cd2c0170
Refactored the deferring framework into a separate structure
2024-05-22 11:34:34 +02:00
Maria Matejka
2b38a833cd
Avoiding RCU synchronization deadlock when locking in critical section
...
Explicitly marking domains eligible for RCU synchronization. It's then
forbidden to lock these domains in RCU critical section to avoid
possible deadlock.
2024-05-22 11:34:34 +02:00