aboutsummaryrefslogtreecommitdiffstats
path: root/docs/linux
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-04-19 11:58:25 +0200
committerGitHub <noreply@github.com>2018-04-19 11:58:25 +0200
commit0a81695ed15a8e71634694e3439043abad5fd949 (patch)
tree41c5fa387d6decc7f7ee8f57323fb2d2e65e1573 /docs/linux
parent4f18337d8908c99d82387e72286130cad9109240 (diff)
Update kernel_configs.md
Diffstat (limited to 'docs/linux')
-rw-r--r--docs/linux/kernel_configs.md23
1 files changed, 23 insertions, 0 deletions
diff --git a/docs/linux/kernel_configs.md b/docs/linux/kernel_configs.md
index 8c54ccbf1..d0d001988 100644
--- a/docs/linux/kernel_configs.md
+++ b/docs/linux/kernel_configs.md
@@ -8,8 +8,14 @@ To enable coverage collection, which is extremely important for effective fuzzin
```
CONFIG_KCOV=y
CONFIG_KCOV_INSTRUMENT_ALL=y
+CONFIG_KCOV_ENABLE_COMPARISONS=y
CONFIG_DEBUG_FS=y
```
+Note that `CONFIG_KCOV_ENABLE_COMPARISONS` feature also requires `gcc8+` and the following commits if you are testing an old kernel:
+```
+ kcov: support comparison operands collection
+ kcov: fix comparison callback signature
+```
To show code coverage in web interface:
```
@@ -46,6 +52,23 @@ CONFIG_KASAN=y
CONFIG_KASAN_INLINE=y
```
+For testing with fault injection enable the following configs (syzkaller will pick it up automatically):
+```
+CONFIG_FAULT_INJECTION=y
+CONFIG_FAULT_INJECTION_DEBUG_FS=y
+CONFIG_FAILSLAB=y
+CONFIG_FAIL_PAGE_ALLOC=y
+CONFIG_FAIL_MAKE_REQUEST=y
+CONFIG_FAIL_IO_TIMEOUT=y
+CONFIG_FAIL_FUTEX=y
+```
+Note: you also need the following commits if you are testing an old kernel:
+```
+ fault-inject: support systematic fault injection
+ fault-inject: simplify access check for fail-nth
+ fault-inject: fix wrong should_fail() decision in task context
+```
+
Any other debugging configs, the more the better, here are some that proved to be especially useful:
```
CONFIG_LOCKDEP=y