aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDavid Carlier <devnexen@gmail.com>2019-09-18 22:04:16 +0100
committerDavid Carlier <devnexen@gmail.com>2019-09-18 22:04:16 +0100
commit48e6e3ac458a6bfbe8db2a3603945e3091a63f33 (patch)
tree4daca87751d6966f3878be565dc911155aa95fdb /src
parent74a984d75f59358d07c8816e4a1329108ca1fd41 (diff)
downloadafl++-48e6e3ac458a6bfbe8db2a3603945e3091a63f33.tar.gz
Checking CPU scaling on MacOS
Checking optimal cpu performance or ignore if the AFL_SKIP_CPUFREQ env is set.
Diffstat (limited to 'src')
-rw-r--r--src/afl-fuzz-init.c34
1 files changed, 32 insertions, 2 deletions
diff --git a/src/afl-fuzz-init.c b/src/afl-fuzz-init.c
index e791fdde..4908626a 100644
--- a/src/afl-fuzz-init.c
+++ b/src/afl-fuzz-init.c
@@ -1479,9 +1479,39 @@ void check_cpu_governor(void) {
"drop.\n",
min / 1024, max / 1024);
- FATAL("Suboptimal CPU scaling governor");
-#endif
+#else
+ u64 min = 0, max = 0;
+ size_t mlen = sizeof(min);
+ if (getenv("AFL_SKIP_CPUFREQ")) return;
+
+ ACTF("Checking CPU scaling governor...");
+ if (sysctlbyname("hw.cpufrequency_min", &min, &mlen, NULL, 0) == -1) {
+
+ WARNF("Could not check CPU min frequency");
+ return;
+
+ }
+
+ if (sysctlbyname("hw.cpufrequency_max", &max, &mlen, NULL, 0) == -1) {
+
+ WARNF("Could not check CPU max frequency");
+ return;
+
+ }
+
+ if (min == max) return;
+
+ SAYF("\n" cLRD "[-] " cRST
+ "Whoops, your system uses on-demand CPU frequency scaling, adjusted\n"
+ " between %llu and %llu MHz.\n"
+ " If you don't want to check those settings, set "
+ "AFL_SKIP_CPUFREQ\n"
+ " to make afl-fuzz skip this check - but expect some performance "
+ "drop.\n",
+ min / 1024, max / 1024);
+#endif
+ FATAL("Suboptimal CPU scaling governor");
}
/* Count the number of logical CPU cores. */