Merge pull request #1917 from HiassofT/le9-ftrace

linux: enable ftrace
This commit is contained in:
MilhouseVH 2017-09-11 02:04:57 +01:00 committed by GitHub
commit 3e7d5d8389
4 changed files with 221 additions and 16 deletions

View File

@ -1,6 +1,6 @@
# #
# Automatically generated file; DO NOT EDIT. # Automatically generated file; DO NOT EDIT.
# Linux/x86_64 4.13.0-rc7 Kernel Configuration # Linux/x86 4.13.0 Kernel Configuration
# #
CONFIG_64BIT=y CONFIG_64BIT=y
CONFIG_X86_64=y CONFIG_X86_64=y
@ -247,15 +247,19 @@ CONFIG_SLAB_MERGE_DEFAULT=y
CONFIG_SLUB_CPU_PARTIAL=y CONFIG_SLUB_CPU_PARTIAL=y
# CONFIG_SYSTEM_DATA_VERIFICATION is not set # CONFIG_SYSTEM_DATA_VERIFICATION is not set
# CONFIG_PROFILING is not set # CONFIG_PROFILING is not set
CONFIG_TRACEPOINTS=y
CONFIG_HAVE_OPROFILE=y CONFIG_HAVE_OPROFILE=y
CONFIG_OPROFILE_NMI_TIMER=y CONFIG_OPROFILE_NMI_TIMER=y
# CONFIG_KPROBES is not set CONFIG_KPROBES=y
CONFIG_JUMP_LABEL=y CONFIG_JUMP_LABEL=y
# CONFIG_STATIC_KEYS_SELFTEST is not set # CONFIG_STATIC_KEYS_SELFTEST is not set
CONFIG_OPTPROBES=y
CONFIG_KPROBES_ON_FTRACE=y
# CONFIG_UPROBES is not set # CONFIG_UPROBES is not set
# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set # CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
CONFIG_ARCH_USE_BUILTIN_BSWAP=y CONFIG_ARCH_USE_BUILTIN_BSWAP=y
CONFIG_KRETPROBES=y
CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_IOREMAP_PROT=y
CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y CONFIG_HAVE_KRETPROBES=y
@ -1182,6 +1186,8 @@ CONFIG_NET_FLOW_LIMIT=y
# Network testing # Network testing
# #
# CONFIG_NET_PKTGEN is not set # CONFIG_NET_PKTGEN is not set
# CONFIG_NET_TCPPROBE is not set
# CONFIG_NET_DROP_MONITOR is not set
# CONFIG_HAMRADIO is not set # CONFIG_HAMRADIO is not set
# CONFIG_CAN is not set # CONFIG_CAN is not set
# CONFIG_IRDA is not set # CONFIG_IRDA is not set
@ -1904,6 +1910,7 @@ CONFIG_WLAN_VENDOR_ATH=y
# CONFIG_ATH_DEBUG is not set # CONFIG_ATH_DEBUG is not set
CONFIG_ATH5K=m CONFIG_ATH5K=m
# CONFIG_ATH5K_DEBUG is not set # CONFIG_ATH5K_DEBUG is not set
# CONFIG_ATH5K_TRACER is not set
CONFIG_ATH5K_PCI=y CONFIG_ATH5K_PCI=y
CONFIG_ATH9K_HW=m CONFIG_ATH9K_HW=m
CONFIG_ATH9K_COMMON=m CONFIG_ATH9K_COMMON=m
@ -1928,6 +1935,7 @@ CONFIG_ATH6KL=m
# CONFIG_ATH6KL_SDIO is not set # CONFIG_ATH6KL_SDIO is not set
CONFIG_ATH6KL_USB=m CONFIG_ATH6KL_USB=m
# CONFIG_ATH6KL_DEBUG is not set # CONFIG_ATH6KL_DEBUG is not set
# CONFIG_ATH6KL_TRACING is not set
CONFIG_AR5523=m CONFIG_AR5523=m
# CONFIG_WIL6210 is not set # CONFIG_WIL6210 is not set
# CONFIG_ATH10K is not set # CONFIG_ATH10K is not set
@ -1984,6 +1992,7 @@ CONFIG_IWLWIFI_OPMODE_MODULAR=y
# Debugging Options # Debugging Options
# #
# CONFIG_IWLWIFI_DEBUG is not set # CONFIG_IWLWIFI_DEBUG is not set
CONFIG_IWLWIFI_DEVICE_TRACING=y
CONFIG_WLAN_VENDOR_INTERSIL=y CONFIG_WLAN_VENDOR_INTERSIL=y
CONFIG_HOSTAP=m CONFIG_HOSTAP=m
CONFIG_HOSTAP_FIRMWARE=y CONFIG_HOSTAP_FIRMWARE=y
@ -4722,6 +4731,7 @@ CONFIG_F2FS_FS=y
CONFIG_F2FS_STAT_FS=y CONFIG_F2FS_STAT_FS=y
# CONFIG_F2FS_FS_XATTR is not set # CONFIG_F2FS_FS_XATTR is not set
CONFIG_F2FS_CHECK_FS=y CONFIG_F2FS_CHECK_FS=y
# CONFIG_F2FS_IO_TRACE is not set
# CONFIG_F2FS_FAULT_INJECTION is not set # CONFIG_F2FS_FAULT_INJECTION is not set
# CONFIG_FS_DAX is not set # CONFIG_FS_DAX is not set
CONFIG_FS_POSIX_ACL=y CONFIG_FS_POSIX_ACL=y
@ -4964,6 +4974,7 @@ CONFIG_DEBUG_KERNEL=y
# CONFIG_PAGE_EXTENSION is not set # CONFIG_PAGE_EXTENSION is not set
# CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_DEBUG_PAGEALLOC is not set
# CONFIG_PAGE_POISONING is not set # CONFIG_PAGE_POISONING is not set
# CONFIG_DEBUG_PAGE_REF is not set
# CONFIG_DEBUG_RODATA_TEST is not set # CONFIG_DEBUG_RODATA_TEST is not set
# CONFIG_DEBUG_OBJECTS is not set # CONFIG_DEBUG_OBJECTS is not set
# CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_DEBUG_ON is not set
@ -4979,7 +4990,6 @@ CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
CONFIG_HAVE_DEBUG_STACKOVERFLOW=y CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
# CONFIG_DEBUG_STACKOVERFLOW is not set # CONFIG_DEBUG_STACKOVERFLOW is not set
CONFIG_HAVE_ARCH_KMEMCHECK=y CONFIG_HAVE_ARCH_KMEMCHECK=y
# CONFIG_KMEMCHECK is not set
CONFIG_HAVE_ARCH_KASAN=y CONFIG_HAVE_ARCH_KASAN=y
# CONFIG_KASAN is not set # CONFIG_KASAN is not set
CONFIG_ARCH_HAS_KCOV=y CONFIG_ARCH_HAS_KCOV=y
@ -5026,7 +5036,8 @@ CONFIG_PANIC_TIMEOUT=0
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_LOCK_TORTURE_TEST is not set # CONFIG_LOCK_TORTURE_TEST is not set
# CONFIG_WW_MUTEX_SELFTEST is not set # CONFIG_WW_MUTEX_SELFTEST is not set
# CONFIG_STACKTRACE is not set CONFIG_TRACE_IRQFLAGS=y
CONFIG_STACKTRACE=y
# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set # CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
# CONFIG_DEBUG_KOBJECT is not set # CONFIG_DEBUG_KOBJECT is not set
CONFIG_DEBUG_BUGVERBOSE=y CONFIG_DEBUG_BUGVERBOSE=y
@ -5053,6 +5064,7 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60
# CONFIG_FAULT_INJECTION is not set # CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set # CONFIG_LATENCYTOP is not set
CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_USER_STACKTRACE_SUPPORT=y
CONFIG_NOP_TRACER=y
CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_DYNAMIC_FTRACE=y
@ -5061,8 +5073,44 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_FENTRY=y CONFIG_HAVE_FENTRY=y
CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_TRACER_MAX_TRACE=y
CONFIG_TRACE_CLOCK=y
CONFIG_RING_BUFFER=y
CONFIG_EVENT_TRACING=y
CONFIG_CONTEXT_SWITCH_TRACER=y
CONFIG_RING_BUFFER_ALLOW_SWAP=y
CONFIG_TRACING=y
CONFIG_GENERIC_TRACER=y
CONFIG_TRACING_SUPPORT=y CONFIG_TRACING_SUPPORT=y
# CONFIG_FTRACE is not set CONFIG_FTRACE=y
CONFIG_FUNCTION_TRACER=y
CONFIG_FUNCTION_GRAPH_TRACER=y
CONFIG_IRQSOFF_TRACER=y
CONFIG_SCHED_TRACER=y
# CONFIG_HWLAT_TRACER is not set
# CONFIG_FTRACE_SYSCALLS is not set
CONFIG_TRACER_SNAPSHOT=y
CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP=y
CONFIG_BRANCH_PROFILE_NONE=y
# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
# CONFIG_PROFILE_ALL_BRANCHES is not set
CONFIG_STACK_TRACER=y
CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_KPROBE_EVENTS=y
# CONFIG_UPROBE_EVENTS is not set
CONFIG_PROBE_EVENTS=y
CONFIG_DYNAMIC_FTRACE=y
CONFIG_DYNAMIC_FTRACE_WITH_REGS=y
# CONFIG_FUNCTION_PROFILER is not set
CONFIG_FTRACE_MCOUNT_RECORD=y
# CONFIG_FTRACE_STARTUP_TEST is not set
# CONFIG_MMIOTRACE is not set
# CONFIG_HIST_TRIGGERS is not set
# CONFIG_TRACEPOINT_BENCHMARK is not set
# CONFIG_RING_BUFFER_BENCHMARK is not set
# CONFIG_RING_BUFFER_STARTUP_TEST is not set
# CONFIG_TRACE_EVAL_MAP_FILE is not set
CONFIG_TRACING_EVENTS_GPIO=y
# #
# Runtime Testing # Runtime Testing
@ -5070,6 +5118,7 @@ CONFIG_TRACING_SUPPORT=y
# CONFIG_LKDTM is not set # CONFIG_LKDTM is not set
# CONFIG_TEST_LIST_SORT is not set # CONFIG_TEST_LIST_SORT is not set
# CONFIG_TEST_SORT is not set # CONFIG_TEST_SORT is not set
# CONFIG_KPROBES_SANITY_TEST is not set
# CONFIG_BACKTRACE_SELF_TEST is not set # CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_RBTREE_TEST is not set # CONFIG_RBTREE_TEST is not set
# CONFIG_INTERVAL_TREE_TEST is not set # CONFIG_INTERVAL_TREE_TEST is not set
@ -5115,6 +5164,7 @@ CONFIG_DOUBLEFAULT=y
# CONFIG_IOMMU_DEBUG is not set # CONFIG_IOMMU_DEBUG is not set
# CONFIG_IOMMU_STRESS is not set # CONFIG_IOMMU_STRESS is not set
CONFIG_HAVE_MMIOTRACE_SUPPORT=y CONFIG_HAVE_MMIOTRACE_SUPPORT=y
# CONFIG_X86_DECODER_SELFTEST is not set
CONFIG_IO_DELAY_TYPE_0X80=0 CONFIG_IO_DELAY_TYPE_0X80=0
CONFIG_IO_DELAY_TYPE_0XED=1 CONFIG_IO_DELAY_TYPE_0XED=1
CONFIG_IO_DELAY_TYPE_UDELAY=2 CONFIG_IO_DELAY_TYPE_UDELAY=2
@ -5318,7 +5368,7 @@ CONFIG_CRYPTO_JITTERENTROPY=y
# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set # CONFIG_SYSTEM_BLACKLIST_KEYRING is not set
CONFIG_HAVE_KVM=y CONFIG_HAVE_KVM=y
# CONFIG_VIRTUALIZATION is not set # CONFIG_VIRTUALIZATION is not set
# CONFIG_BINARY_PRINTF is not set CONFIG_BINARY_PRINTF=y
# #
# Library routines # Library routines

View File

@ -1,6 +1,6 @@
# #
# Automatically generated file; DO NOT EDIT. # Automatically generated file; DO NOT EDIT.
# Linux/arm 4.13.0-rc7 Kernel Configuration # Linux/arm 4.13.0 Kernel Configuration
# #
CONFIG_ARM=y CONFIG_ARM=y
CONFIG_ARM_HAS_SG_CHAIN=y CONFIG_ARM_HAS_SG_CHAIN=y
@ -199,14 +199,17 @@ CONFIG_SLAB_MERGE_DEFAULT=y
# CONFIG_SLAB_FREELIST_RANDOM is not set # CONFIG_SLAB_FREELIST_RANDOM is not set
# CONFIG_SYSTEM_DATA_VERIFICATION is not set # CONFIG_SYSTEM_DATA_VERIFICATION is not set
# CONFIG_PROFILING is not set # CONFIG_PROFILING is not set
CONFIG_TRACEPOINTS=y
CONFIG_HAVE_OPROFILE=y CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set CONFIG_KPROBES=y
CONFIG_JUMP_LABEL=y CONFIG_JUMP_LABEL=y
# CONFIG_STATIC_KEYS_SELFTEST is not set # CONFIG_STATIC_KEYS_SELFTEST is not set
CONFIG_OPTPROBES=y
# CONFIG_UPROBES is not set # CONFIG_UPROBES is not set
# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set # CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
CONFIG_ARCH_USE_BUILTIN_BSWAP=y CONFIG_ARCH_USE_BUILTIN_BSWAP=y
CONFIG_KRETPROBES=y
CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_OPTPROBES=y CONFIG_HAVE_OPTPROBES=y
@ -276,6 +279,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_SIG is not set # CONFIG_MODULE_SIG is not set
# CONFIG_MODULE_COMPRESS is not set # CONFIG_MODULE_COMPRESS is not set
# CONFIG_TRIM_UNUSED_KSYMS is not set # CONFIG_TRIM_UNUSED_KSYMS is not set
CONFIG_MODULES_TREE_LOOKUP=y
CONFIG_BLOCK=y CONFIG_BLOCK=y
CONFIG_LBDAF=y CONFIG_LBDAF=y
CONFIG_BLK_SCSI_REQUEST=y CONFIG_BLK_SCSI_REQUEST=y
@ -993,6 +997,8 @@ CONFIG_BQL=y
# Network testing # Network testing
# #
# CONFIG_NET_PKTGEN is not set # CONFIG_NET_PKTGEN is not set
# CONFIG_NET_TCPPROBE is not set
# CONFIG_NET_DROP_MONITOR is not set
# CONFIG_HAMRADIO is not set # CONFIG_HAMRADIO is not set
# CONFIG_CAN is not set # CONFIG_CAN is not set
# CONFIG_IRDA is not set # CONFIG_IRDA is not set
@ -1442,6 +1448,7 @@ CONFIG_ATH6KL=m
# CONFIG_ATH6KL_SDIO is not set # CONFIG_ATH6KL_SDIO is not set
CONFIG_ATH6KL_USB=m CONFIG_ATH6KL_USB=m
# CONFIG_ATH6KL_DEBUG is not set # CONFIG_ATH6KL_DEBUG is not set
# CONFIG_ATH6KL_TRACING is not set
CONFIG_AR5523=m CONFIG_AR5523=m
# CONFIG_ATH10K is not set # CONFIG_ATH10K is not set
CONFIG_WCN36XX=m CONFIG_WCN36XX=m
@ -3945,6 +3952,7 @@ CONFIG_F2FS_FS=y
CONFIG_F2FS_STAT_FS=y CONFIG_F2FS_STAT_FS=y
# CONFIG_F2FS_FS_XATTR is not set # CONFIG_F2FS_FS_XATTR is not set
CONFIG_F2FS_CHECK_FS=y CONFIG_F2FS_CHECK_FS=y
# CONFIG_F2FS_IO_TRACE is not set
# CONFIG_F2FS_FAULT_INJECTION is not set # CONFIG_F2FS_FAULT_INJECTION is not set
CONFIG_FS_POSIX_ACL=y CONFIG_FS_POSIX_ACL=y
CONFIG_EXPORTFS=y CONFIG_EXPORTFS=y
@ -4181,6 +4189,7 @@ CONFIG_DEBUG_KERNEL=y
# CONFIG_PAGE_EXTENSION is not set # CONFIG_PAGE_EXTENSION is not set
# CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_DEBUG_PAGEALLOC is not set
# CONFIG_PAGE_POISONING is not set # CONFIG_PAGE_POISONING is not set
# CONFIG_DEBUG_PAGE_REF is not set
# CONFIG_DEBUG_OBJECTS is not set # CONFIG_DEBUG_OBJECTS is not set
# CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_DEBUG_ON is not set
# CONFIG_SLUB_STATS is not set # CONFIG_SLUB_STATS is not set
@ -4222,7 +4231,8 @@ CONFIG_PANIC_TIMEOUT=0
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_LOCK_TORTURE_TEST is not set # CONFIG_LOCK_TORTURE_TEST is not set
# CONFIG_WW_MUTEX_SELFTEST is not set # CONFIG_WW_MUTEX_SELFTEST is not set
# CONFIG_STACKTRACE is not set CONFIG_TRACE_IRQFLAGS=y
CONFIG_STACKTRACE=y
# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set # CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
# CONFIG_DEBUG_KOBJECT is not set # CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_BUGVERBOSE is not set # CONFIG_DEBUG_BUGVERBOSE is not set
@ -4246,6 +4256,7 @@ CONFIG_PANIC_TIMEOUT=0
# CONFIG_NOTIFIER_ERROR_INJECTION is not set # CONFIG_NOTIFIER_ERROR_INJECTION is not set
# CONFIG_FAULT_INJECTION is not set # CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set # CONFIG_LATENCYTOP is not set
CONFIG_NOP_TRACER=y
CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_DYNAMIC_FTRACE=y
@ -4253,8 +4264,41 @@ CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_TRACER_MAX_TRACE=y
CONFIG_TRACE_CLOCK=y
CONFIG_RING_BUFFER=y
CONFIG_EVENT_TRACING=y
CONFIG_CONTEXT_SWITCH_TRACER=y
CONFIG_RING_BUFFER_ALLOW_SWAP=y
CONFIG_TRACING=y
CONFIG_GENERIC_TRACER=y
CONFIG_TRACING_SUPPORT=y CONFIG_TRACING_SUPPORT=y
# CONFIG_FTRACE is not set CONFIG_FTRACE=y
CONFIG_FUNCTION_TRACER=y
CONFIG_FUNCTION_GRAPH_TRACER=y
CONFIG_IRQSOFF_TRACER=y
CONFIG_SCHED_TRACER=y
# CONFIG_HWLAT_TRACER is not set
# CONFIG_FTRACE_SYSCALLS is not set
CONFIG_TRACER_SNAPSHOT=y
CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP=y
CONFIG_BRANCH_PROFILE_NONE=y
# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
# CONFIG_PROFILE_ALL_BRANCHES is not set
CONFIG_STACK_TRACER=y
CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_KPROBE_EVENTS=y
CONFIG_PROBE_EVENTS=y
CONFIG_DYNAMIC_FTRACE=y
CONFIG_DYNAMIC_FTRACE_WITH_REGS=y
# CONFIG_FUNCTION_PROFILER is not set
CONFIG_FTRACE_MCOUNT_RECORD=y
# CONFIG_FTRACE_STARTUP_TEST is not set
# CONFIG_TRACEPOINT_BENCHMARK is not set
# CONFIG_RING_BUFFER_BENCHMARK is not set
# CONFIG_RING_BUFFER_STARTUP_TEST is not set
# CONFIG_TRACE_EVAL_MAP_FILE is not set
CONFIG_TRACING_EVENTS_GPIO=y
# #
# Runtime Testing # Runtime Testing
@ -4262,6 +4306,7 @@ CONFIG_TRACING_SUPPORT=y
# CONFIG_LKDTM is not set # CONFIG_LKDTM is not set
# CONFIG_TEST_LIST_SORT is not set # CONFIG_TEST_LIST_SORT is not set
# CONFIG_TEST_SORT is not set # CONFIG_TEST_SORT is not set
# CONFIG_KPROBES_SANITY_TEST is not set
# CONFIG_BACKTRACE_SELF_TEST is not set # CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_RBTREE_TEST is not set # CONFIG_RBTREE_TEST is not set
# CONFIG_INTERVAL_TREE_TEST is not set # CONFIG_INTERVAL_TREE_TEST is not set
@ -4295,11 +4340,13 @@ CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
# CONFIG_STRICT_DEVMEM is not set # CONFIG_STRICT_DEVMEM is not set
# CONFIG_ARM_PTDUMP is not set # CONFIG_ARM_PTDUMP is not set
# CONFIG_ARM_UNWIND is not set # CONFIG_ARM_UNWIND is not set
CONFIG_OLD_MCOUNT=y
# CONFIG_DEBUG_USER is not set # CONFIG_DEBUG_USER is not set
# CONFIG_DEBUG_LL is not set # CONFIG_DEBUG_LL is not set
CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
# CONFIG_DEBUG_UART_8250 is not set # CONFIG_DEBUG_UART_8250 is not set
CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
# CONFIG_ARM_KPROBES_TEST is not set
# CONFIG_PID_IN_CONTEXTIDR is not set # CONFIG_PID_IN_CONTEXTIDR is not set
# CONFIG_CORESIGHT is not set # CONFIG_CORESIGHT is not set
@ -4462,7 +4509,7 @@ CONFIG_CRYPTO_SHA1_ARM=m
CONFIG_CRYPTO_SHA256_ARM=m CONFIG_CRYPTO_SHA256_ARM=m
# CONFIG_CRYPTO_SHA512_ARM is not set # CONFIG_CRYPTO_SHA512_ARM is not set
CONFIG_CRYPTO_AES_ARM=m CONFIG_CRYPTO_AES_ARM=m
# CONFIG_BINARY_PRINTF is not set CONFIG_BINARY_PRINTF=y
# #
# Library routines # Library routines
@ -4516,6 +4563,8 @@ CONFIG_HAS_DMA=y
# CONFIG_DMA_NOOP_OPS is not set # CONFIG_DMA_NOOP_OPS is not set
# CONFIG_DMA_VIRT_OPS is not set # CONFIG_DMA_VIRT_OPS is not set
CONFIG_DQL=y CONFIG_DQL=y
CONFIG_GLOB=y
# CONFIG_GLOB_SELFTEST is not set
CONFIG_NLATTR=y CONFIG_NLATTR=y
# CONFIG_CORDIC is not set # CONFIG_CORDIC is not set
# CONFIG_DDR is not set # CONFIG_DDR is not set

View File

@ -1,6 +1,6 @@
# #
# Automatically generated file; DO NOT EDIT. # Automatically generated file; DO NOT EDIT.
# Linux/arm 4.13.0-rc7 Kernel Configuration # Linux/arm 4.13.0 Kernel Configuration
# #
CONFIG_ARM=y CONFIG_ARM=y
CONFIG_ARM_HAS_SG_CHAIN=y CONFIG_ARM_HAS_SG_CHAIN=y
@ -206,14 +206,17 @@ CONFIG_SLAB_MERGE_DEFAULT=y
CONFIG_SLUB_CPU_PARTIAL=y CONFIG_SLUB_CPU_PARTIAL=y
# CONFIG_SYSTEM_DATA_VERIFICATION is not set # CONFIG_SYSTEM_DATA_VERIFICATION is not set
# CONFIG_PROFILING is not set # CONFIG_PROFILING is not set
CONFIG_TRACEPOINTS=y
CONFIG_HAVE_OPROFILE=y CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set CONFIG_KPROBES=y
CONFIG_JUMP_LABEL=y CONFIG_JUMP_LABEL=y
# CONFIG_STATIC_KEYS_SELFTEST is not set # CONFIG_STATIC_KEYS_SELFTEST is not set
CONFIG_OPTPROBES=y
# CONFIG_UPROBES is not set # CONFIG_UPROBES is not set
# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set # CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
CONFIG_ARCH_USE_BUILTIN_BSWAP=y CONFIG_ARCH_USE_BUILTIN_BSWAP=y
CONFIG_KRETPROBES=y
CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_OPTPROBES=y CONFIG_HAVE_OPTPROBES=y
@ -283,6 +286,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_SIG is not set # CONFIG_MODULE_SIG is not set
# CONFIG_MODULE_COMPRESS is not set # CONFIG_MODULE_COMPRESS is not set
# CONFIG_TRIM_UNUSED_KSYMS is not set # CONFIG_TRIM_UNUSED_KSYMS is not set
CONFIG_MODULES_TREE_LOOKUP=y
CONFIG_BLOCK=y CONFIG_BLOCK=y
CONFIG_LBDAF=y CONFIG_LBDAF=y
CONFIG_BLK_SCSI_REQUEST=y CONFIG_BLK_SCSI_REQUEST=y
@ -1083,6 +1087,8 @@ CONFIG_NET_FLOW_LIMIT=y
# Network testing # Network testing
# #
# CONFIG_NET_PKTGEN is not set # CONFIG_NET_PKTGEN is not set
# CONFIG_NET_TCPPROBE is not set
# CONFIG_NET_DROP_MONITOR is not set
# CONFIG_HAMRADIO is not set # CONFIG_HAMRADIO is not set
# CONFIG_CAN is not set # CONFIG_CAN is not set
# CONFIG_IRDA is not set # CONFIG_IRDA is not set
@ -1533,6 +1539,7 @@ CONFIG_ATH6KL=m
# CONFIG_ATH6KL_SDIO is not set # CONFIG_ATH6KL_SDIO is not set
CONFIG_ATH6KL_USB=m CONFIG_ATH6KL_USB=m
# CONFIG_ATH6KL_DEBUG is not set # CONFIG_ATH6KL_DEBUG is not set
# CONFIG_ATH6KL_TRACING is not set
CONFIG_AR5523=m CONFIG_AR5523=m
# CONFIG_ATH10K is not set # CONFIG_ATH10K is not set
CONFIG_WCN36XX=m CONFIG_WCN36XX=m
@ -4046,6 +4053,7 @@ CONFIG_F2FS_FS=y
CONFIG_F2FS_STAT_FS=y CONFIG_F2FS_STAT_FS=y
# CONFIG_F2FS_FS_XATTR is not set # CONFIG_F2FS_FS_XATTR is not set
CONFIG_F2FS_CHECK_FS=y CONFIG_F2FS_CHECK_FS=y
# CONFIG_F2FS_IO_TRACE is not set
# CONFIG_F2FS_FAULT_INJECTION is not set # CONFIG_F2FS_FAULT_INJECTION is not set
CONFIG_FS_POSIX_ACL=y CONFIG_FS_POSIX_ACL=y
CONFIG_EXPORTFS=y CONFIG_EXPORTFS=y
@ -4282,6 +4290,7 @@ CONFIG_DEBUG_KERNEL=y
# CONFIG_PAGE_EXTENSION is not set # CONFIG_PAGE_EXTENSION is not set
# CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_DEBUG_PAGEALLOC is not set
# CONFIG_PAGE_POISONING is not set # CONFIG_PAGE_POISONING is not set
# CONFIG_DEBUG_PAGE_REF is not set
# CONFIG_DEBUG_RODATA_TEST is not set # CONFIG_DEBUG_RODATA_TEST is not set
# CONFIG_DEBUG_OBJECTS is not set # CONFIG_DEBUG_OBJECTS is not set
# CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_DEBUG_ON is not set
@ -4325,7 +4334,8 @@ CONFIG_PANIC_TIMEOUT=0
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_LOCK_TORTURE_TEST is not set # CONFIG_LOCK_TORTURE_TEST is not set
# CONFIG_WW_MUTEX_SELFTEST is not set # CONFIG_WW_MUTEX_SELFTEST is not set
# CONFIG_STACKTRACE is not set CONFIG_TRACE_IRQFLAGS=y
CONFIG_STACKTRACE=y
# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set # CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
# CONFIG_DEBUG_KOBJECT is not set # CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_BUGVERBOSE is not set # CONFIG_DEBUG_BUGVERBOSE is not set
@ -4350,6 +4360,7 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=21
# CONFIG_NOTIFIER_ERROR_INJECTION is not set # CONFIG_NOTIFIER_ERROR_INJECTION is not set
# CONFIG_FAULT_INJECTION is not set # CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set # CONFIG_LATENCYTOP is not set
CONFIG_NOP_TRACER=y
CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_DYNAMIC_FTRACE=y
@ -4357,8 +4368,41 @@ CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_TRACER_MAX_TRACE=y
CONFIG_TRACE_CLOCK=y
CONFIG_RING_BUFFER=y
CONFIG_EVENT_TRACING=y
CONFIG_CONTEXT_SWITCH_TRACER=y
CONFIG_RING_BUFFER_ALLOW_SWAP=y
CONFIG_TRACING=y
CONFIG_GENERIC_TRACER=y
CONFIG_TRACING_SUPPORT=y CONFIG_TRACING_SUPPORT=y
# CONFIG_FTRACE is not set CONFIG_FTRACE=y
CONFIG_FUNCTION_TRACER=y
CONFIG_FUNCTION_GRAPH_TRACER=y
CONFIG_IRQSOFF_TRACER=y
CONFIG_SCHED_TRACER=y
# CONFIG_HWLAT_TRACER is not set
# CONFIG_FTRACE_SYSCALLS is not set
CONFIG_TRACER_SNAPSHOT=y
CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP=y
CONFIG_BRANCH_PROFILE_NONE=y
# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
# CONFIG_PROFILE_ALL_BRANCHES is not set
CONFIG_STACK_TRACER=y
CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_KPROBE_EVENTS=y
CONFIG_PROBE_EVENTS=y
CONFIG_DYNAMIC_FTRACE=y
CONFIG_DYNAMIC_FTRACE_WITH_REGS=y
# CONFIG_FUNCTION_PROFILER is not set
CONFIG_FTRACE_MCOUNT_RECORD=y
# CONFIG_FTRACE_STARTUP_TEST is not set
# CONFIG_TRACEPOINT_BENCHMARK is not set
# CONFIG_RING_BUFFER_BENCHMARK is not set
# CONFIG_RING_BUFFER_STARTUP_TEST is not set
# CONFIG_TRACE_EVAL_MAP_FILE is not set
CONFIG_TRACING_EVENTS_GPIO=y
# #
# Runtime Testing # Runtime Testing
@ -4366,6 +4410,7 @@ CONFIG_TRACING_SUPPORT=y
# CONFIG_LKDTM is not set # CONFIG_LKDTM is not set
# CONFIG_TEST_LIST_SORT is not set # CONFIG_TEST_LIST_SORT is not set
# CONFIG_TEST_SORT is not set # CONFIG_TEST_SORT is not set
# CONFIG_KPROBES_SANITY_TEST is not set
# CONFIG_BACKTRACE_SELF_TEST is not set # CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_RBTREE_TEST is not set # CONFIG_RBTREE_TEST is not set
# CONFIG_INTERVAL_TREE_TEST is not set # CONFIG_INTERVAL_TREE_TEST is not set
@ -4399,11 +4444,13 @@ CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
# CONFIG_STRICT_DEVMEM is not set # CONFIG_STRICT_DEVMEM is not set
# CONFIG_ARM_PTDUMP is not set # CONFIG_ARM_PTDUMP is not set
# CONFIG_ARM_UNWIND is not set # CONFIG_ARM_UNWIND is not set
CONFIG_OLD_MCOUNT=y
# CONFIG_DEBUG_USER is not set # CONFIG_DEBUG_USER is not set
# CONFIG_DEBUG_LL is not set # CONFIG_DEBUG_LL is not set
CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
# CONFIG_DEBUG_UART_8250 is not set # CONFIG_DEBUG_UART_8250 is not set
CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
# CONFIG_ARM_KPROBES_TEST is not set
# CONFIG_PID_IN_CONTEXTIDR is not set # CONFIG_PID_IN_CONTEXTIDR is not set
# CONFIG_CORESIGHT is not set # CONFIG_CORESIGHT is not set
@ -4576,7 +4623,7 @@ CONFIG_CRYPTO_AES_ARM_BS=m
# CONFIG_CRYPTO_GHASH_ARM_CE is not set # CONFIG_CRYPTO_GHASH_ARM_CE is not set
CONFIG_CRYPTO_CRC32_ARM_CE=y CONFIG_CRYPTO_CRC32_ARM_CE=y
# CONFIG_CRYPTO_CHACHA20_NEON is not set # CONFIG_CRYPTO_CHACHA20_NEON is not set
# CONFIG_BINARY_PRINTF is not set CONFIG_BINARY_PRINTF=y
# #
# Library routines # Library routines
@ -4631,6 +4678,8 @@ CONFIG_HAS_DMA=y
# CONFIG_DMA_VIRT_OPS is not set # CONFIG_DMA_VIRT_OPS is not set
CONFIG_CPU_RMAP=y CONFIG_CPU_RMAP=y
CONFIG_DQL=y CONFIG_DQL=y
CONFIG_GLOB=y
# CONFIG_GLOB_SELFTEST is not set
CONFIG_NLATTR=y CONFIG_NLATTR=y
# CONFIG_CORDIC is not set # CONFIG_CORDIC is not set
# CONFIG_DDR is not set # CONFIG_DDR is not set

View File

@ -0,0 +1,57 @@
On Wed, 23 Aug 2017 17:42:14 +0200
Matthias Reichl <hias@horus.com> wrote:
> I haven't verified it myself but Phil Elwells first analysis here
> sounds plausible
>
> https://github.com/raspberrypi/linux/issues/2166#issuecomment-323355145
I noticed this comment:
"What makes this interesting (and is the reason this doesn't fail
normally) is that these functions are all called within kernel_init, so
the __ro_after_init attribute shouldn't have caused the variable to be
read-only yet."
When ftrace starts, it needs to set the kernel text to write, and when
it finishes it sets it back to readonly. But the kernel is not set to
readonly at boot up.
Can you test this patch? (Warning, I didn't even compile test it)
-- Steve
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
index ad80548..fd75f38 100644
--- a/arch/arm/mm/init.c
+++ b/arch/arm/mm/init.c
@@ -745,19 +745,29 @@ static int __mark_rodata_ro(void *unused)
return 0;
}
+static int kernel_set_to_readonly;
+
void mark_rodata_ro(void)
{
+ kernel_set_to_readonly = 1;
+
stop_machine(__mark_rodata_ro, NULL, NULL);
}
void set_kernel_text_rw(void)
{
+ if (!kernel_set_to_readonly)
+ return;
+
set_section_perms(ro_perms, ARRAY_SIZE(ro_perms), false,
current->active_mm);
}
void set_kernel_text_ro(void)
{
+ if (!kernel_set_to_readonly)
+ return;
+
set_section_perms(ro_perms, ARRAY_SIZE(ro_perms), true,
current->active_mm);
}