فهرست منبع

ANDROID: qki: Add consolidate config

Add a "consolidate" defconfig fragment to enable further debug options
of the GKI kernel. The "consolidate" name has a storied history, but
it's effectively a "debug" kernel.

The options enabled in the consolidate.fragment have been found to have
a good balance of additional debug features versus performance impact.
For instance, SLUB_DEBUG is not enabled due to large performance impact.

Bug: 186872007
Change-Id: I8fcbda0f9b47b3b33636a594797f97e86d2a6778
Signed-off-by: Elliot Berman <[email protected]>
Elliot Berman 4 سال پیش
والد
کامیت
e2058ba412
5فایلهای تغییر یافته به همراه99 افزوده شده و 1 حذف شده
  1. 83 0
      arch/arm64/configs/consolidate.fragment
  2. 4 0
      build.config.gki_consolidate.aarch64
  3. 1 0
      init/Kconfig
  4. 9 0
      init/Kconfig.gki-debug
  5. 2 1
      kernel/rcu/update.c

+ 83 - 0
arch/arm64/configs/consolidate.fragment

@@ -0,0 +1,83 @@
+# CONFIG_ATOMIC64_SELFTEST is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_BITFIELD_KUNIT is not set
+# CONFIG_BITS_TEST is not set
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=1
+CONFIG_CMA_DEBUG=y
+CONFIG_CMDLINE="kasan.stacktrace=off stack_depot_disable=off page_owner=on no_hash_pointers panic_on_taint=0x20"
+CONFIG_DEBUG_KMEMLEAK=y
+# CONFIG_DEBUG_KMEMLEAK_AUTO_SCAN is not set
+CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y
+CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE=16000
+# CONFIG_DEBUG_KMEMLEAK_TEST is not set
+# CONFIG_DEBUG_KOBJECT_RELEASE is not set
+CONFIG_DEBUG_MUTEXES=y
+CONFIG_DEBUG_OBJECTS=y
+CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
+CONFIG_DEBUG_OBJECTS_FREE=y
+# CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER is not set
+# CONFIG_DEBUG_OBJECTS_RCU_HEAD is not set
+# CONFIG_DEBUG_OBJECTS_SELFTEST is not set
+CONFIG_DEBUG_OBJECTS_TIMERS=y
+CONFIG_DEBUG_OBJECTS_WORK=y
+CONFIG_DEBUG_PREEMPT=y
+CONFIG_DEBUG_RWSEMS=y
+CONFIG_DEBUG_SPINLOCK=y
+# CONFIG_DPM_WATCHDOG is not set
+CONFIG_DYNAMIC_DEBUG=y
+# CONFIG_FIND_BIT_BENCHMARK is not set
+CONFIG_GKI_HACKS_FOR_CONSOLIDATE=y
+CONFIG_I2C_CHARDEV=y
+# CONFIG_INTERVAL_TREE_TEST is not set
+# CONFIG_KPROBES_SANITY_TEST is not set
+# CONFIG_LINEAR_RANGES_TEST is not set
+# CONFIG_LIST_KUNIT_TEST is not set
+# CONFIG_LKDTM is not set
+CONFIG_LOCALVERSION="-qki-consolidate"
+CONFIG_LOCKUP_DETECTOR=y
+# CONFIG_PERCPU_TEST is not set
+CONFIG_PID_IN_CONTEXTIDR=y
+# CONFIG_PM_ADVANCED_DEBUG is not set
+CONFIG_PM_DEBUG=y
+CONFIG_PM_SLEEP_DEBUG=y
+# CONFIG_PM_TEST_SUSPEND is not set
+CONFIG_PREEMPTIRQ_TRACEPOINTS=y
+# CONFIG_RBTREE_TEST is not set
+# CONFIG_REED_SOLOMON_TEST is not set
+CONFIG_RUNTIME_TESTING_MENU=y
+CONFIG_SOFTLOCKUP_DETECTOR=y
+CONFIG_SPI_SPIDEV=y
+# CONFIG_SYSCTL_KUNIT_TEST is not set
+CONFIG_TASKS_RUDE_RCU=y
+# CONFIG_TEST_BITMAP is not set
+# CONFIG_TEST_BITOPS is not set
+# CONFIG_TEST_BLACKHOLE_DEV is not set
+# CONFIG_TEST_BPF is not set
+# CONFIG_TEST_FIRMWARE is not set
+# CONFIG_TEST_FREE_PAGES is not set
+# CONFIG_TEST_HASH is not set
+# CONFIG_TEST_HEXDUMP is not set
+# CONFIG_TEST_IDA is not set
+# CONFIG_TEST_KMOD is not set
+# CONFIG_TEST_KSTRTOX is not set
+# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_TEST_LKM is not set
+# CONFIG_TEST_MEMCAT_P is not set
+# CONFIG_TEST_MEMINIT is not set
+# CONFIG_TEST_MIN_HEAP is not set
+# CONFIG_TEST_OVERFLOW is not set
+# CONFIG_TEST_PRINTF is not set
+# CONFIG_TEST_RHASHTABLE is not set
+# CONFIG_TEST_SORT is not set
+# CONFIG_TEST_STACKINIT is not set
+# CONFIG_TEST_STATIC_KEYS is not set
+# CONFIG_TEST_STRING_HELPERS is not set
+# CONFIG_TEST_STRSCPY is not set
+# CONFIG_TEST_SYSCTL is not set
+# CONFIG_TEST_UDELAY is not set
+# CONFIG_TEST_USER_COPY is not set
+# CONFIG_TEST_UUID is not set
+# CONFIG_TEST_VMALLOC is not set
+# CONFIG_TEST_XARRAY is not set
+CONFIG_TRACE_PREEMPT_TOGGLE=y

+ 4 - 0
build.config.gki_consolidate.aarch64

@@ -0,0 +1,4 @@
+DEFCONFIG=consolidate_defconfig
+FRAGMENT_CONFIG=${KERNEL_DIR}/arch/arm64/configs/consolidate.fragment
+PRE_DEFCONFIG_CMDS="KCONFIG_CONFIG=${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/${DEFCONFIG} ${ROOT_DIR}/${KERNEL_DIR}/scripts/kconfig/merge_config.sh -m -r ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/gki_defconfig ${ROOT_DIR}/${FRAGMENT_CONFIG}"
+POST_DEFCONFIG_CMDS="rm ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/${DEFCONFIG}"

+ 1 - 0
init/Kconfig

@@ -2414,3 +2414,4 @@ config ARCH_HAS_SYSCALL_WRAPPER
 	def_bool n
 
 source "init/Kconfig.gki"
+source "init/Kconfig.gki-debug"

+ 9 - 0
init/Kconfig.gki-debug

@@ -0,0 +1,9 @@
+config GKI_HIDDEN_RCUTORTURE
+	bool
+	select TASKS_RUDE_RCU
+
+config GKI_HACKS_FOR_CONSOLIDATE
+	bool "GKI Dummy config options for consolidate"
+	select TRACE_PREEMPT_TOGGLE
+	select TRACE_IRQFLAGS
+	select GKI_HIDDEN_RCUTORTURE

+ 2 - 1
kernel/rcu/update.c

@@ -476,7 +476,8 @@ EXPORT_SYMBOL_GPL(do_trace_rcu_torture_read);
 	do { } while (0)
 #endif
 
-#if IS_ENABLED(CONFIG_RCU_TORTURE_TEST) || IS_MODULE(CONFIG_RCU_TORTURE_TEST)
+#if IS_ENABLED(CONFIG_RCU_TORTURE_TEST) || IS_MODULE(CONFIG_RCU_TORTURE_TEST) \
+	|| IS_ENABLED(CONFIG_GKI_HIDDEN_RCUTORTURE)
 /* Get rcutorture access to sched_setaffinity(). */
 long rcutorture_sched_setaffinity(pid_t pid, const struct cpumask *in_mask)
 {