perf linux kernel自带的性能检测工具。
perf是linux内核发行版自带源码工具,需要内核开启某些选项支持.
1.内核下编译perf工具, cd 到 kerne/tools路径下
2.编译
make CROSS_COMPILE=aarch64-linux- ARCH=arm64 perf_clean V=1
make CROSS_COMPILE=aarch64-linux- ARCH=arm64 perf V=1
出现交叉编译失败:
Makefile.config:304: *** No gnu/libc-version.h found, please install glibc-dev[el]。 停止。
3.打开perf下的Makefile.config文件,找到
ifeq ($(feature-libelf), 0)
ifeq ($(feature-glibc), 1)
LIBC_SUPPORT := 1
endif
ifeq ($(BIONIC),1)
LIBC_SUPPORT := 1
endif
ifeq ($(LIBC_SUPPORT),1)
msg := $(warning No libelf found. Disables 'probe' tool, jvmti and BPF support in 'perf record'. Please install libelf-dev, libelf-devel or elfutils-libelf-devel);
NO_LIBELF := 1
NO_DWARF := 1
NO_DEMANGLE := 1
NO_LIBUNWIND := 1
NO_LIBDW_DWARF_UNWIND := 1
NO_LIBBPF := 1
NO_JVMTI := 1
else
ifneq ($(filter s% -static%,$(LDFLAGS),),)
msg := $(error No static glibc found, please install glibc-static);
else
msg := $(error No gnu/libc-version.h found, please install glibc-dev[el]);
endif
endif
在 ifeq ($(feature-libelf), 0)前面加上LIBC_SUPPORT := 1
LIBC_SUPPORT := 1
ifeq ($(feature-libelf), 0)
ifeq ($(feature-glibc), 1)
LIBC_SUPPORT := 1
endif
4: perf Examples详细描述请看下面链接