about summary refs log tree commit diff
diff options
context:
space:
mode:
-rwxr-xr-xafl-system-config.sh15
-rw-r--r--docs/perf_tips.txt9
2 files changed, 24 insertions, 0 deletions
diff --git a/afl-system-config.sh b/afl-system-config.sh
new file mode 100755
index 00000000..88564c20
--- /dev/null
+++ b/afl-system-config.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+echo This reconfigures the system to have a better fuzzing performance
+sysctl -w kernel.core_pattern=core
+sysctl -w kernel.randomize_va_space=0
+sysctl -w kernel.sched_child_runs_first=1
+sysctl -w kernel.sched_autogroup_enabled=1
+sysctl -w kernel.sched_migration_cost_ns=50000000
+sysctl -w kernel.sched_latency_ns=250000000
+echo never > /sys/kernel/mm/transparent_hugepage/enabled
+echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor > /dev/null
+echo
+echo It is recommended to boot the kernel with lots of security off - if you are running a machine that is in a secured network - so set this:
+echo '/etc/default/grub:GRUB_CMDLINE_LINUX_DEFAULT="ibpb=off ibrs=off kpti=off l1tf=off mds=off mitigations=off no_stf_barrier noibpb noibrs nopcid nopti nospec_store_bypass_disable nospectre_v1 nospectre_v2 pcid=off pti=off spec_store_bypass_disable=off spectre_v2=off stf_barrier=off"'
+echo
+echo Also use AFL_TMPDIR to use a tmpfs for the input file
diff --git a/docs/perf_tips.txt b/docs/perf_tips.txt
index 6906d5ab..799691c7 100644
--- a/docs/perf_tips.txt
+++ b/docs/perf_tips.txt
@@ -188,6 +188,15 @@ There are several OS-level factors that may affect fuzzing speed:
     SCHED_RR - can usually speed things up, too, but needs to be done with
     care.
 
+  - Disable all the spectre, meltdown etc. security countermeasures in the
+    kernel if your machine is properly seperated:
+    "ibpb=off ibrs=off kpti=off l1tf=off mds=off mitigations=off
+     no_stf_barrier noibpb noibrs nopcid nopti nospec_store_bypass_disable
+     nospectre_v1 nospectre_v2 pcid=off pti=off spec_store_bypass_disable=off
+     spectre_v2=off stf_barrier=off"
+    In most Linux distributions you can put this into a /etc/default/grub
+    variable.
+
 9) If all other options fail, use -d
 ------------------------------------