diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2020-01-10 15:11:22 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2020-01-10 15:12:56 +0100 |
| commit | f1d60fec2a7dbaac15fd4c33c4d8f0013bb0f607 (patch) | |
| tree | 08b039695c4b11a5ba12072ba1f3b4f4d80a61ed | |
| parent | 4de4e9f01d7139b72102ae0b8a1e810730467774 (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.config | 45 | ||||
| -rw-r--r-- | dashboard/config/bits-syzbot.config | 56 | ||||
| -rwxr-xr-x | dashboard/config/freebsd-syz-ci-service.sh | 2 | ||||
| -rwxr-xr-x | dashboard/config/generate-config-kcsan-from-kasan.sh | 3 | ||||
| -rwxr-xr-x | dashboard/config/generate-config-kmsan-from-kasan.sh | 3 | ||||
| -rwxr-xr-x | dashboard/config/generate-config-usb.sh | 7 | ||||
| -rwxr-xr-x | dashboard/config/util.sh | 17 |
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 } |
