summaryrefslogtreecommitdiffstats
path: root/etc/inc
diff options
context:
space:
mode:
authorWarren Baker <warren@decoy.co.za>2015-01-14 13:09:31 +0200
committerRenato Botelho <garga@FreeBSD.org>2015-01-14 09:23:11 -0200
commit9eec3be339805c5f276500331c410fa18cc9bd5f (patch)
tree90e16dae46e7b322afc061f83f9de2fa90ba52f8 /etc/inc
parent3a56c1466340d09e23f91e2917ac93a75141d68a (diff)
downloadpfsense-9eec3be339805c5f276500331c410fa18cc9bd5f.zip
pfsense-9eec3be339805c5f276500331c410fa18cc9bd5f.tar.gz
Correctly handle number of cores and power of 2. Merged from the package already had this. Fixes #4212
Diffstat (limited to 'etc/inc')
-rw-r--r--etc/inc/unbound.inc22
1 files changed, 9 insertions, 13 deletions
diff --git a/etc/inc/unbound.inc b/etc/inc/unbound.inc
index 20ed19b..a9aaabd 100644
--- a/etc/inc/unbound.inc
+++ b/etc/inc/unbound.inc
@@ -60,23 +60,19 @@ function unbound_optimization() {
* Use 1 to disable threading, if for some reason this sysctl fails.
*/
$numprocs = intval(get_single_sysctl('kern.smp.cpus'));
- if ($numprocs > 0)
+ if ($numprocs > 1) {
$optimization['number_threads'] = "num-threads: {$numprocs}";
- else
+ $optimize_num = pow(2,floor(log($numprocs,2)));
+ } else {
$optimization['number_threads'] = "num-threads: 1";
+ $optimize_num = 4;
+ }
// Slabs to help reduce lock contention.
- if ($numprocs > 4) {
- $optimization['msg_cache_slabs'] = "msg-cache-slabs: {$numprocs}";
- $optimization['rrset_cache_slabs'] = "rrset-cache-slabs: {$numprocs}";
- $optimization['infra_cache_slabs'] = "infra-cache-slabs: {$numprocs}";
- $optimization['key_cache_slabs'] = "key-cache-slabs: {$numprocs}";
- } else {
- $optimization['msg_cache_slabs'] = "msg-cache-slabs: 4";
- $optimization['rrset_cache_slabs'] = "rrset-cache-slabs: 4";
- $optimization['infra_cache_slabs'] = "infra-cache-slabs: 4";
- $optimization['key_cache_slabs'] = "key-cache-slabs: 4";
- }
+ $optimization['msg_cache_slabs'] = "msg-cache-slabs: {$optimize_num}";
+ $optimization['rrset_cache_slabs'] = "rrset-cache-slabs: {$optimize_num}";
+ $optimization['infra_cache_slabs'] = "infra-cache-slabs: {$optimize_num}";
+ $optimization['key_cache_slabs'] = "key-cache-slabs: {$optimize_num}";
// Size of the RRset cache
$optimization['rrset_cache_size'] = "rrset-cache-size: 8m";
OpenPOWER on IntegriCloud