forked from google/syzkaller
-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: move kernel configs page from wiki
- Loading branch information
Showing
2 changed files
with
56 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
# Linux kernel configs | ||
|
||
List of recommended kernel configs for `syzkaller`: | ||
|
||
## Syzkaller features | ||
|
||
To enable coverage collection, which is extremely important for effective fuzzing: | ||
``` | ||
CONFIG_KCOV=y | ||
CONFIG_KCOV_INSTRUMENT_ALL=y | ||
CONFIG_DEBUG_FS=y | ||
``` | ||
|
||
To show code coverage in web interface: | ||
``` | ||
CONFIG_DEBUG_INFO=y | ||
``` | ||
|
||
For `namespace` sandbox: | ||
``` | ||
CONFIG_NAMESPACES=y | ||
CONFIG_USER_NS=y | ||
CONFIG_UTS_NS=y | ||
CONFIG_IPC_NS=y | ||
CONFIG_PID_NS=y | ||
CONFIG_NET_NS=y | ||
``` | ||
|
||
If your kernel doesn't have commits [arm64: setup: introduce kaslr_offset()](https://github.com/torvalds/linux/commit/7ede8665f27cde7da69e8b2fbeaa1ed0664879c5) | ||
and [kcov: make kcov work properly with KASLR enabled](https://github.com/torvalds/linux/commit/4983f0ab7ffaad1e534b21975367429736475205), disable the following config: | ||
``` | ||
# CONFIG_RANDOMIZE_BASE is not set | ||
``` | ||
|
||
## Bug detection configs | ||
|
||
`KASAN` for use-after-free and out-of-bounds detection: | ||
``` | ||
CONFIG_KASAN=y | ||
CONFIG_KASAN_INLINE=y | ||
``` | ||
|
||
Any other debugging configs, the more the better, here are some that proved to be especially useful: | ||
``` | ||
CONFIG_LOCKDEP=y | ||
CONFIG_PROVE_LOCKING=y | ||
CONFIG_DEBUG_ATOMIC_SLEEP=y | ||
CONFIG_PROVE_RCU=y | ||
CONFIG_DEBUG_VM=y | ||
``` | ||
|
||
Increase RCU stall timeout to reduce false positive rate: | ||
``` | ||
CONFIG_RCU_CPU_STALL_TIMEOUT=60 | ||
``` |