aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2020-01-10 15:11:22 +0100
committerDmitry Vyukov <dvyukov@google.com>2020-01-10 15:12:56 +0100
commitf1d60fec2a7dbaac15fd4c33c4d8f0013bb0f607 (patch)
tree08b039695c4b11a5ba12072ba1f3b4f4d80a61ed
parent4de4e9f01d7139b72102ae0b8a1e810730467774 (diff)
dashboard/config: refactor config generation scripts
Refactor config generation scripts in preparation for generating Android configs.
-rw-r--r--dashboard/config/bits-syzbot-aux-debug.config45
-rw-r--r--dashboard/config/bits-syzbot.config56
-rwxr-xr-xdashboard/config/freebsd-syz-ci-service.sh2
-rwxr-xr-xdashboard/config/generate-config-kcsan-from-kasan.sh3
-rwxr-xr-xdashboard/config/generate-config-kmsan-from-kasan.sh3
-rwxr-xr-xdashboard/config/generate-config-usb.sh7
-rwxr-xr-xdashboard/config/util.sh17
7 files changed, 85 insertions, 48 deletions
diff --git a/dashboard/config/bits-syzbot-aux-debug.config b/dashboard/config/bits-syzbot-aux-debug.config
new file mode 100644
index 000000000..2c71e5829
--- /dev/null
+++ b/dashboard/config/bits-syzbot-aux-debug.config
@@ -0,0 +1,45 @@
+### Auxiliary debug configs that detect non-critical bugs.
+
+CONFIG_LOCKDEP=y
+CONFIG_PROVE_LOCKING=y
+CONFIG_DEBUG_ATOMIC_SLEEP=y
+CONFIG_PROVE_RCU=y
+CONFIG_DEBUG_VM=y
+CONFIG_DEBUG_VM_VMACACHE=y
+CONFIG_DEBUG_VM_RB=y
+CONFIG_DEBUG_VIRTUAL=y
+CONFIG_LOCKUP_DETECTOR=y
+CONFIG_SOFTLOCKUP_DETECTOR=y
+CONFIG_HARDLOCKUP_DETECTOR=y
+CONFIG_DETECT_HUNG_TASK=y
+CONFIG_WQ_WATCHDOG=y
+CONFIG_RCU_CPU_STALL_TIMEOUT=100
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=140
+CONFIG_BOOTPARAM_HARDLOCKUP_PANIC=y
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
+CONFIG_DEBUG_DEVRES=y
+CONFIG_DEBUG_MEMORY_INIT=y
+CONFIG_DEBUG_NOTIFIERS=y
+CONFIG_DEBUG_CREDENTIALS=y
+CONFIG_DEBUG_OBJECTS=y
+CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
+CONFIG_DEBUG_OBJECTS_FREE=y
+CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y
+CONFIG_DEBUG_OBJECTS_RCU_HEAD=y
+CONFIG_DEBUG_OBJECTS_TIMERS=y
+CONFIG_DEBUG_OBJECTS_WORK=y
+# CONFIG_DEBUG_OBJECTS_SELFTEST is not set
+CONFIG_DEBUG_RT_MUTEXES=y
+CONFIG_DEBUG_SPINLOCK=y
+CONFIG_DEBUG_MUTEXES=y
+CONFIG_DEBUG_WW_MUTEX_SLOWPATH=y
+CONFIG_DEBUG_RWSEMS=y
+CONFIG_DEBUG_LOCK_ALLOC=y
+CONFIG_DEBUG_STACKOVERFLOW=y
+CONFIG_SND_DEBUG=y
+CONFIG_DYNAMIC_DEBUG=y
+CONFIG_DEBUG_PER_CPU_MAPS=y
+CONFIG_DEBUG_KOBJECT=y
+CONFIG_DEBUG_SG=y
+CONFIG_DEBUG_PREEMPT=y
diff --git a/dashboard/config/bits-syzbot.config b/dashboard/config/bits-syzbot.config
index 1c58130c6..5017ff61d 100644
--- a/dashboard/config/bits-syzbot.config
+++ b/dashboard/config/bits-syzbot.config
@@ -8,6 +8,7 @@ CONFIG_PROCESSOR_SELECT=y
CONFIG_SMP=y
# CONFIG_CPU_SUP_CENTAUR is not set
# CONFIG_HT_IRQ is not set
+CONFIG_BASE_FULL=y
### We don't need lots, but some configs set it to 2 which is too low.
CONFIG_NR_CPUS=8
@@ -21,6 +22,7 @@ CONFIG_ATA_PIIX=y
CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_SD=y
CONFIG_SCSI=y
+CONFIG_SATA_AHCI=y
### Virtualization support
CONFIG_HYPERVISOR_GUEST=y
@@ -31,17 +33,11 @@ CONFIG_PARAVIRT=y
CONFIG_PARAVIRT_SPINLOCKS=y
CONFIG_SCSI_LOWLEVEL=y
CONFIG_SCSI_VIRTIO=y
+CONFIG_VIRTIO_BLK_SCSI=y
CONFIG_VIRTIO_CONSOLE=y
CONFIG_VIRTIO_NET=y
CONFIG_VIRTIO_PCI=y
-### Network device support
-CONFIG_NETDEVICES=y
-CONFIG_ETHERNET=y
-CONFIG_NET_VENDOR_INTEL=y
-CONFIG_E1000=y
-CONFIG_NET_CORE=y
-
### Serial console support
CONFIG_EARLY_PRINTK=y
CONFIG_SERIAL_8250=y
@@ -86,49 +82,18 @@ CONFIG_NET_NS=y
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_PANIC_TIMEOUT=86400
CONFIG_SCHED_STACK_END_CHECK=y
-CONFIG_LOCKDEP=y
-CONFIG_PROVE_LOCKING=y
-CONFIG_DEBUG_ATOMIC_SLEEP=y
-CONFIG_PROVE_RCU=y
-CONFIG_DEBUG_VM=y
-CONFIG_DEBUG_VM_VMACACHE=y
-CONFIG_DEBUG_VM_RB=y
CONFIG_REFCOUNT_FULL=y
CONFIG_FORTIFY_SOURCE=y
CONFIG_HARDENED_USERCOPY=y
-CONFIG_LOCKUP_DETECTOR=y
-CONFIG_SOFTLOCKUP_DETECTOR=y
-CONFIG_HARDLOCKUP_DETECTOR=y
-CONFIG_DETECT_HUNG_TASK=y
-CONFIG_WQ_WATCHDOG=y
-CONFIG_RCU_CPU_STALL_TIMEOUT=100
-CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=140
+CONFIG_DEBUG_INFO=y
+CONFIG_BUG_ON_DATA_CORRUPTION=y
### More debugging features
-CONFIG_BASE_FULL=y
-CONFIG_BOOTPARAM_HARDLOCKUP_PANIC=y
-CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y
-CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
-CONFIG_DEBUG_DEVRES=y
-CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_LIST=y
-CONFIG_DEBUG_MEMORY_INIT=y
-CONFIG_DEBUG_NOTIFIERS=y
-CONFIG_DEBUG_OBJECTS=y
-CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
-CONFIG_DEBUG_OBJECTS_FREE=y
-CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y
-CONFIG_DEBUG_OBJECTS_RCU_HEAD=y
-CONFIG_DEBUG_OBJECTS_TIMERS=y
-CONFIG_DEBUG_OBJECTS_WORK=y
+CONFIG_DEBUG_PLIST=y
CONFIG_DEBUG_PI_LIST=y
-CONFIG_DEBUG_RT_MUTEXES=y
-CONFIG_DEBUG_STACKOVERFLOW=y
-CONFIG_DEBUG_STACK_USAGE=y
CONFIG_PRINTK=y
CONFIG_PRINTK_TIME=y
-CONFIG_SND_DEBUG=y
-# CONFIG_DEBUG_OBJECTS_SELFTEST is not set
### Fault injection
CONFIG_FAULT_INJECTION=y
@@ -142,6 +107,7 @@ CONFIG_FAULT_INJECTION_DEBUG_FS=y
### KASAN support
CONFIG_KASAN=y
CONFIG_KASAN_INLINE=y
+CONFIG_KASAN_STACK_ENABLE=y
CONFIG_SPARSEMEM_VMEMMAP=y
### 32-on-64 support
@@ -180,3 +146,11 @@ CONFIG_PRINTK_CALLER=y
# Disable magic SysRq completely, as it can be reached over USB and through tty.
# CONFIG_MAGIC_SYSRQ is not set
+
+### Create binder device per test process for isolation.
+CONFIG_ANDROID_BINDER_DEVICES="binder0,binder1,binder2,binder3,binder4,binder5,binder6,binder7,binder8,binder9,binder10,binder11,binder12,binder13,binder14,binder15"
+### Loop device per test process.
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=16
+### These help to test wifi.
+CONFIG_MAC80211_HWSIM=y
+CONFIG_VIRT_WIFI=y
diff --git a/dashboard/config/freebsd-syz-ci-service.sh b/dashboard/config/freebsd-syz-ci-service.sh
index ace12949f..26921d76b 100755
--- a/dashboard/config/freebsd-syz-ci-service.sh
+++ b/dashboard/config/freebsd-syz-ci-service.sh
@@ -1,4 +1,6 @@
#!/bin/sh
+# Copyright 2019 syzkaller project authors. All rights reserved.
+# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
# To use:
# - place this script to /usr/local/etc/rc.d/syz_ci
diff --git a/dashboard/config/generate-config-kcsan-from-kasan.sh b/dashboard/config/generate-config-kcsan-from-kasan.sh
index 9000f5973..326b8e6a3 100755
--- a/dashboard/config/generate-config-kcsan-from-kasan.sh
+++ b/dashboard/config/generate-config-kcsan-from-kasan.sh
@@ -1,4 +1,7 @@
#!/bin/bash
+# Copyright 2019 syzkaller project authors. All rights reserved.
+# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+
# Generate upstream-kcsan.config from upstream-kasan.config.
[ -z "${CC}" ] && echo 'Please set $CC to point to the compiler!' && exit
diff --git a/dashboard/config/generate-config-kmsan-from-kasan.sh b/dashboard/config/generate-config-kmsan-from-kasan.sh
index 4bdaf8974..51768bea3 100755
--- a/dashboard/config/generate-config-kmsan-from-kasan.sh
+++ b/dashboard/config/generate-config-kmsan-from-kasan.sh
@@ -1,4 +1,7 @@
#!/bin/bash
+# Copyright 2019 syzkaller project authors. All rights reserved.
+# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+
# Generate upstream-kmsan.config from upstream-kasan.config.
# Make sure $CC points to the Clang binary and $KERNEL_SOURCE - to the kernel tree.
diff --git a/dashboard/config/generate-config-usb.sh b/dashboard/config/generate-config-usb.sh
index 78cf19b07..c403a3c09 100755
--- a/dashboard/config/generate-config-usb.sh
+++ b/dashboard/config/generate-config-usb.sh
@@ -1,4 +1,6 @@
#!/bin/bash
+# Copyright 2019 syzkaller project authors. All rights reserved.
+# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
set -eux
@@ -16,10 +18,7 @@ make ${MAKE_VARS} defconfig
make ${MAKE_VARS} kvmconfig
util_add_usb_bits
-util_add_syzbot_bits
-
-sed -i "s#=m\$#=y#g" .config
-make ${MAKE_VARS} olddefconfig
+util_add_syzbot_bits aux-debug
util_add_syzbot_extra_bits
diff --git a/dashboard/config/util.sh b/dashboard/config/util.sh
index 765052860..90d792bba 100755
--- a/dashboard/config/util.sh
+++ b/dashboard/config/util.sh
@@ -1,4 +1,6 @@
#!/bin/bash
+# Copyright 2019 syzkaller project authors. All rights reserved.
+# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
# This script provides utility functions, don't use it directly.
@@ -6,12 +8,21 @@ set -eux
[ -z "${CC}" ] && echo 'Please set $CC to point to the compiler!' && exit
-THIS_DIR=`cd $(dirname $0); pwd`
+THIS_DIR=`cd "${BASH_SOURCE[0]}"; pwd`
MAKE_VARS="CC=${CC}"
-SYZBOT_BITS=${THIS_DIR}/bits-syzbot.config
function util_add_syzbot_bits {
- scripts/kconfig/merge_config.sh -m .config $SYZBOT_BITS
+ scripts/kconfig/merge_config.sh -m .config ${THIS_DIR}/bits-syzbot.config
+ if [ "$#" == "1" ]; then
+ if [ "$1" == "aux-debug" ]; then
+ scripts/kconfig/merge_config.sh -m .config ${THIS_DIR}/bits-syzbot-aux-debug.config
+ fi
+ fi
+ # Fix up config.
+ make ${MAKE_VARS} olddefconfig
+ # syzbot does not support modules.
+ sed -i "s#=m\$#=y#g" .config
+ # Fix up configs that can only be modules.
make ${MAKE_VARS} olddefconfig
}