Skip to content

Commit 257ffdd

Browse files
authored
Merge pull request #77 from akerouanton/ebpf
kernel: generate BTF and enable ftrace, kprobes & dynamic debug
2 parents eb8170c + ce824f1 commit 257ffdd

File tree

4 files changed

+237
-17
lines changed

4 files changed

+237
-17
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
_output
2+
kernel/*.old

Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@ RUN echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.con
4545
# Install build dependencies
4646
RUN --mount=type=cache,sharing=locked,id=kernel-aptlib,target=/var/lib/apt \
4747
--mount=type=cache,sharing=locked,id=kernel-aptcache,target=/var/cache/apt \
48-
apt-get update && apt-get install -y build-essential libncurses-dev flex bison libssl-dev libelf-dev bc cpio git wget xz-utils
48+
apt-get update && apt-get install -y build-essential libncurses-dev flex bison libssl-dev libelf-dev bc cpio git wget xz-utils pahole
4949

50-
ARG KERNEL_VERSION="6.12.46"
50+
ARG KERNEL_VERSION="6.12.44"
5151
ARG KERNEL_ARCH="x86_64"
5252
ARG KERNEL_NPROC="4"
5353

kernel/config-6.12.44-arm64

Lines changed: 81 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ CONFIG_GCC_ASM_GOTO_OUTPUT_BROKEN=y
1919
CONFIG_CC_HAS_ASM_INLINE=y
2020
CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
2121
CONFIG_LD_CAN_USE_KEEP_IN_OVERLAY=y
22-
CONFIG_PAHOLE_VERSION=0
22+
CONFIG_PAHOLE_VERSION=124
2323
CONFIG_IRQ_WORK=y
2424
CONFIG_BUILDTIME_TABLE_SORT=y
2525
CONFIG_THREAD_INFO_IN_TASK=y
@@ -96,9 +96,12 @@ CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y
9696
# BPF subsystem
9797
#
9898
CONFIG_BPF_SYSCALL=y
99-
# CONFIG_BPF_JIT is not set
99+
CONFIG_BPF_JIT=y
100+
# CONFIG_BPF_JIT_ALWAYS_ON is not set
101+
CONFIG_BPF_JIT_DEFAULT_ON=y
100102
# CONFIG_BPF_UNPRIV_DEFAULT_OFF is not set
101103
# CONFIG_BPF_PRELOAD is not set
104+
# CONFIG_BPF_LSM is not set
102105
# end of BPF subsystem
103106

104107
CONFIG_PREEMPT_NONE_BUILD=y
@@ -107,6 +110,7 @@ CONFIG_PREEMPT_NONE=y
107110
# CONFIG_PREEMPT is not set
108111
# CONFIG_PREEMPT_DYNAMIC is not set
109112
# CONFIG_SCHED_CORE is not set
113+
# CONFIG_SCHED_CLASS_EXT is not set
110114

111115
#
112116
# CPU/Task time and stats accounting
@@ -133,6 +137,7 @@ CONFIG_TREE_RCU=y
133137
CONFIG_TREE_SRCU=y
134138
CONFIG_TASKS_RCU_GENERIC=y
135139
CONFIG_NEED_TASKS_RCU=y
140+
CONFIG_TASKS_RUDE_RCU=y
136141
CONFIG_TASKS_TRACE_RCU=y
137142
CONFIG_RCU_STALL_COMMON=y
138143
CONFIG_RCU_NEED_SEGCBLIST=y
@@ -253,6 +258,7 @@ CONFIG_PERF_EVENTS=y
253258
# end of Kernel Performance Events And Counters
254259

255260
# CONFIG_PROFILING is not set
261+
CONFIG_TRACEPOINTS=y
256262

257263
#
258264
# Kexec and crash features
@@ -616,9 +622,11 @@ CONFIG_CPU_MITIGATIONS=y
616622
#
617623
CONFIG_HOTPLUG_CORE_SYNC=y
618624
CONFIG_HOTPLUG_CORE_SYNC_DEAD=y
619-
# CONFIG_KPROBES is not set
625+
CONFIG_KPROBES=y
620626
# CONFIG_JUMP_LABEL is not set
627+
CONFIG_UPROBES=y
621628
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
629+
CONFIG_KRETPROBES=y
622630
CONFIG_HAVE_IOREMAP_PROT=y
623631
CONFIG_HAVE_KPROBES=y
624632
CONFIG_HAVE_KRETPROBES=y
@@ -682,6 +690,7 @@ CONFIG_HAVE_ARCH_HUGE_VMALLOC=y
682690
CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
683691
CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
684692
CONFIG_MODULES_USE_ELF_RELA=y
693+
CONFIG_ARCH_WANTS_EXECMEM_LATE=y
685694
CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y
686695
CONFIG_SOFTIRQ_ON_OWN_STACK=y
687696
CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
@@ -728,7 +737,8 @@ CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
728737

729738
CONFIG_HAVE_GCC_PLUGINS=y
730739
CONFIG_FUNCTION_ALIGNMENT_4B=y
731-
CONFIG_FUNCTION_ALIGNMENT=4
740+
CONFIG_FUNCTION_ALIGNMENT_8B=y
741+
CONFIG_FUNCTION_ALIGNMENT=8
732742
# end of General architecture-dependent options
733743

734744
CONFIG_RT_MUTEXES=y
@@ -933,6 +943,7 @@ CONFIG_LRU_GEN_WALKS_MMU=y
933943
CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y
934944
CONFIG_PER_VMA_LOCK=y
935945
CONFIG_LOCK_MM_AND_FIND_VMA=y
946+
CONFIG_EXECMEM=y
936947

937948
#
938949
# Data Access Monitoring
@@ -1464,6 +1475,7 @@ CONFIG_NET_FLOW_LIMIT=y
14641475
# Network testing
14651476
#
14661477
# CONFIG_NET_PKTGEN is not set
1478+
# CONFIG_NET_DROP_MONITOR is not set
14671479
# end of Network testing
14681480
# end of Networking options
14691481

@@ -1602,6 +1614,7 @@ CONFIG_DEVTMPFS_MOUNT=y
16021614
# Firmware loader
16031615
#
16041616
CONFIG_FW_LOADER=y
1617+
CONFIG_FW_LOADER_DEBUG=y
16051618
CONFIG_EXTRA_FIRMWARE=""
16061619
# CONFIG_FW_LOADER_USER_HELPER is not set
16071620
# CONFIG_FW_LOADER_COMPRESS is not set
@@ -3163,6 +3176,7 @@ CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
31633176
CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
31643177
CONFIG_ARCH_USE_SYM_ANNOTATIONS=y
31653178
# CONFIG_INDIRECT_PIO is not set
3179+
# CONFIG_TRACE_MMIO_ACCESS is not set
31663180

31673181
#
31683182
# Crypto library routines
@@ -3249,6 +3263,8 @@ CONFIG_DMA_DIRECT_REMAP=y
32493263
CONFIG_SGL_ALLOC=y
32503264
CONFIG_CPU_RMAP=y
32513265
CONFIG_DQL=y
3266+
CONFIG_GLOB=y
3267+
# CONFIG_GLOB_SELFTEST is not set
32523268
CONFIG_NLATTR=y
32533269
# CONFIG_IRQ_POLL is not set
32543270
CONFIG_DIMLIB=y
@@ -3290,8 +3306,8 @@ CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
32903306
CONFIG_CONSOLE_LOGLEVEL_QUIET=4
32913307
CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
32923308
# CONFIG_BOOT_PRINTK_DELAY is not set
3293-
# CONFIG_DYNAMIC_DEBUG is not set
3294-
# CONFIG_DYNAMIC_DEBUG_CORE is not set
3309+
CONFIG_DYNAMIC_DEBUG=y
3310+
CONFIG_DYNAMIC_DEBUG_CORE=y
32953311
# CONFIG_SYMBOLIC_ERRNAME is not set
32963312
CONFIG_DEBUG_BUGVERBOSE=y
32973313
# end of printk and dmesg options
@@ -3312,6 +3328,9 @@ CONFIG_DEBUG_INFO_DWARF4=y
33123328
CONFIG_DEBUG_INFO_COMPRESSED_NONE=y
33133329
# CONFIG_DEBUG_INFO_COMPRESSED_ZLIB is not set
33143330
# CONFIG_DEBUG_INFO_SPLIT is not set
3331+
CONFIG_DEBUG_INFO_BTF=y
3332+
CONFIG_PAHOLE_HAS_SPLIT_BTF=y
3333+
CONFIG_PAHOLE_HAS_LANG_EXCLUDE=y
33153334
# CONFIG_GDB_SCRIPTS is not set
33163335
CONFIG_FRAME_WARN=2048
33173336
# CONFIG_STRIP_ASM_SYMS is not set
@@ -3357,6 +3376,7 @@ CONFIG_SLUB_DEBUG=y
33573376
# CONFIG_PAGE_OWNER is not set
33583377
# CONFIG_PAGE_TABLE_CHECK is not set
33593378
# CONFIG_PAGE_POISONING is not set
3379+
# CONFIG_DEBUG_PAGE_REF is not set
33603380
# CONFIG_DEBUG_RODATA_TEST is not set
33613381
CONFIG_ARCH_HAS_DEBUG_WX=y
33623382
# CONFIG_DEBUG_WX is not set
@@ -3463,17 +3483,70 @@ CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0
34633483
# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
34643484
# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
34653485
# CONFIG_LATENCYTOP is not set
3486+
# CONFIG_DEBUG_CGROUP_REF is not set
34663487
CONFIG_USER_STACKTRACE_SUPPORT=y
3488+
CONFIG_NOP_TRACER=y
34673489
CONFIG_HAVE_FUNCTION_TRACER=y
34683490
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
34693491
CONFIG_HAVE_FUNCTION_GRAPH_RETVAL=y
34703492
CONFIG_HAVE_DYNAMIC_FTRACE=y
3493+
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y
3494+
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_CALL_OPS=y
34713495
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS=y
34723496
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
34733497
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
34743498
CONFIG_HAVE_C_RECORDMCOUNT=y
3499+
CONFIG_TRACE_CLOCK=y
3500+
CONFIG_RING_BUFFER=y
3501+
CONFIG_EVENT_TRACING=y
3502+
CONFIG_CONTEXT_SWITCH_TRACER=y
3503+
CONFIG_TRACING=y
3504+
CONFIG_GENERIC_TRACER=y
34753505
CONFIG_TRACING_SUPPORT=y
3476-
# CONFIG_FTRACE is not set
3506+
CONFIG_FTRACE=y
3507+
# CONFIG_BOOTTIME_TRACING is not set
3508+
CONFIG_FUNCTION_TRACER=y
3509+
CONFIG_FUNCTION_GRAPH_TRACER=y
3510+
# CONFIG_FUNCTION_GRAPH_RETVAL is not set
3511+
CONFIG_DYNAMIC_FTRACE=y
3512+
CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y
3513+
CONFIG_DYNAMIC_FTRACE_WITH_CALL_OPS=y
3514+
CONFIG_DYNAMIC_FTRACE_WITH_ARGS=y
3515+
# CONFIG_FUNCTION_PROFILER is not set
3516+
# CONFIG_STACK_TRACER is not set
3517+
# CONFIG_IRQSOFF_TRACER is not set
3518+
# CONFIG_SCHED_TRACER is not set
3519+
# CONFIG_HWLAT_TRACER is not set
3520+
# CONFIG_OSNOISE_TRACER is not set
3521+
# CONFIG_TIMERLAT_TRACER is not set
3522+
CONFIG_FTRACE_SYSCALLS=y
3523+
# CONFIG_TRACER_SNAPSHOT is not set
3524+
CONFIG_BRANCH_PROFILE_NONE=y
3525+
# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
3526+
# CONFIG_PROFILE_ALL_BRANCHES is not set
3527+
# CONFIG_BLK_DEV_IO_TRACE is not set
3528+
CONFIG_PROBE_EVENTS_BTF_ARGS=y
3529+
CONFIG_KPROBE_EVENTS=y
3530+
# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set
3531+
CONFIG_UPROBE_EVENTS=y
3532+
CONFIG_BPF_EVENTS=y
3533+
CONFIG_DYNAMIC_EVENTS=y
3534+
CONFIG_PROBE_EVENTS=y
3535+
CONFIG_FTRACE_MCOUNT_RECORD=y
3536+
CONFIG_FTRACE_MCOUNT_USE_PATCHABLE_FUNCTION_ENTRY=y
3537+
# CONFIG_SYNTH_EVENTS is not set
3538+
# CONFIG_USER_EVENTS is not set
3539+
# CONFIG_HIST_TRIGGERS is not set
3540+
# CONFIG_TRACE_EVENT_INJECT is not set
3541+
# CONFIG_TRACEPOINT_BENCHMARK is not set
3542+
# CONFIG_RING_BUFFER_BENCHMARK is not set
3543+
# CONFIG_TRACE_EVAL_MAP_FILE is not set
3544+
# CONFIG_FTRACE_RECORD_RECURSION is not set
3545+
# CONFIG_FTRACE_VALIDATE_RCU_IS_WATCHING is not set
3546+
# CONFIG_FTRACE_STARTUP_TEST is not set
3547+
# CONFIG_RING_BUFFER_STARTUP_TEST is not set
3548+
# CONFIG_RING_BUFFER_VALIDATE_TIME_DELTAS is not set
3549+
# CONFIG_RV is not set
34773550
# CONFIG_SAMPLES is not set
34783551
CONFIG_HAVE_SAMPLE_FTRACE_DIRECT=y
34793552
CONFIG_HAVE_SAMPLE_FTRACE_DIRECT_MULTI=y
@@ -3491,6 +3564,7 @@ CONFIG_HAVE_SAMPLE_FTRACE_DIRECT_MULTI=y
34913564
#
34923565
# CONFIG_KUNIT is not set
34933566
# CONFIG_NOTIFIER_ERROR_INJECTION is not set
3567+
# CONFIG_FUNCTION_ERROR_INJECTION is not set
34943568
# CONFIG_FAULT_INJECTION is not set
34953569
CONFIG_ARCH_HAS_KCOV=y
34963570
CONFIG_CC_HAS_SANCOV_TRACE_PC=y

0 commit comments

Comments
 (0)