You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The worker-pool roadmap needs a decision_threads setting before the dispatcher and worker activation changes land. Without the knob, LMDB reader sizing and resource validation still used a fixed planned reader cap instead of the administrator-selected future worker count.
Add decision_threads to daemon configuration with a default of one, validate it against online CPU count, the internal worker cap, LMDB reader reservations, estimated fixed worker memory, and file descriptor capacity, and use the value when sizing LMDB max readers. Report the configured value in state output and leave a TODO for a separate active-worker field if the future worker pool cannot resize on SIGHUP.
Add daemon_config_test coverage for default normalization, invalid bounds, and LMDB reader limit calculation.
Copy file name to clipboardExpand all lines: doc/fapolicyd.conf.5
+14-2Lines changed: 14 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -18,6 +18,18 @@ This option gives fapolicyd a scheduler boost. The number can be from 0 to 20. T
18
18
.Bq_size
19
19
This option is used to control how big of an internal queue that fapolicyd will use. If requests come in faster than fapolicyd can answer, the queue holds the pending requests. If the do_stat_report is enabled, when fapolicyd shutsdown it will provide some statistics which includes maximum queue depth used. This information can be used to help tune performance. The default value is 800. Also note, this value means that fapolicyd gets a file descriptor for that entry. There is an rlimit cap controlled by systemd's LimitNOFILE setting for the service. You may also need to adjust it if the q_size exceeds it's value.
20
20
21
+
.TP
22
+
.Bdecision_threads
23
+
This option controls how many decision worker threads fapolicyd is configured
24
+
to use. The default value is 1. The value must be at least 1, no larger than
25
+
the number of online CPU cores, and no larger than the daemon's supported
26
+
maximum. Startup validation also checks that the configured worker count fits
27
+
the LMDB reader-slot reservation, estimated fixed worker memory budget, and
28
+
file descriptor budget implied by
29
+
.BR q_size .
30
+
This setting is applied when the daemon starts; restart fapolicyd after
31
+
changing it.
32
+
21
33
.TP
22
34
.Buid
23
35
This can be a number or an account name which fapolicyd should switch to during startup. The default value is 0 because it is guaranteed to exist. But it is recommended to use the fapolicyd account if that exists.
@@ -188,8 +200,8 @@ The following settings require a daemon restart because they are consumed when
188
200
long-lived runtime objects are created:
189
201
.RS
190
202
.IP\[bu]2
191
-
\fBq_size\fP, \fBsubj_cache_size\fP, and \fBobj_cache_size\fP size the event
192
-
queue and caches.
203
+
\fBq_size\fP, \fBdecision_threads\fP, \fBsubj_cache_size\fP, and
204
+
\fBobj_cache_size\fP size the event queue, worker count, and caches.
193
205
.IP\[bu]
194
206
\fBuid\fP and \fBgid\fP control the daemon identity selected during startup.
0 commit comments