From fdb5b4d66612241f8c83aea5433614efc86691a2 Mon Sep 17 00:00:00 2001 From: "chengshuyi.csy" Date: Thu, 10 Mar 2022 16:40:09 +0800 Subject: [PATCH] btf: support to generate btf file online. At present, only some kernel versions of btf files are provided, but there are many self-developed kernel versions adopted by users, so it is necessary to provide the ability to generate btf files online. Signed-off-by: chengshuyi.csy --- source/tools/combine/btf/Makefile | 3 ++- source/tools/combine/btf/btf.sh | 17 +++++++++++++++-- source/tools/combine/btf/pahole | Bin 0 -> 111648 bytes 3 files changed, 17 insertions(+), 3 deletions(-) create mode 100755 source/tools/combine/btf/pahole diff --git a/source/tools/combine/btf/Makefile b/source/tools/combine/btf/Makefile index d4e7d95e..bad09711 100644 --- a/source/tools/combine/btf/Makefile +++ b/source/tools/combine/btf/Makefile @@ -1,4 +1,5 @@ target := btf $(target): cp btf.sh $(OBJPATH)/.sysak_compoents/tools/btf - cp vmlinux-btf $(OBJPATH)/.sysak_compoents/tools -rf \ No newline at end of file + cp vmlinux-btf $(OBJPATH)/.sysak_compoents/tools -rf + cp pahole $(OBJPATH)/.sysak_compoents/tools/pahole \ No newline at end of file diff --git a/source/tools/combine/btf/btf.sh b/source/tools/combine/btf/btf.sh index fc0ebb8a..f683bda2 100644 --- a/source/tools/combine/btf/btf.sh +++ b/source/tools/combine/btf/btf.sh @@ -5,12 +5,14 @@ zip_path=${SYSAK_WORK_PATH}/tools/BTF/btf.7z btf_dir=${SYSAK_WORK_PATH}/tools btf_path=${btf_dir}/vmlinux-$(uname -r) +vmlinux_path="" usage() { echo "sysak btf: Extract the btf file to the specified directory" echo "options: -h, help information" echo " -d, Specify the path, default directory path: ${btf_dir}" echo " -l, show vmlinux btf list" + echo " -g, Specify the vmlinux file path, which is used to generate btf. The generated btf file path is: ${btf_path} " } extract_btf() { @@ -22,11 +24,19 @@ extract_btf() { cp $source_path ${btf_path} } +generate_btf() { + if [ ! -f "$vmlinux_path" ]; then + echo "vmlinux file not exist: $vmlinux_path}" + fi + ${btf_dir}/pahole -J --kabi_prefix=__UNIQUE_ID_rh_kabi_hide --btf_encode_detached=${btf_path} ${vmlinux_path} + echo "btf file has been generated, the path is: ${btf_path}" +} + show_list() { ls ${SYSAK_WORK_PATH}/tools/vmlinux-btf } -while getopts 'd:lh' OPT; do +while getopts 'g:d:lh' OPT; do case $OPT in "h") usage @@ -35,12 +45,15 @@ while getopts 'd:lh' OPT; do "d") btf_dir=$OPTARG btf_path=${btf_dir}/vmlinux-$(uname -r) - ;; "l") show_list exit 0 ;; + "g") + vmlinux_path=$OPTARG + generate_btf + ;; *) usage exit -1 diff --git a/source/tools/combine/btf/pahole b/source/tools/combine/btf/pahole new file mode 100755 index 0000000000000000000000000000000000000000..b4453b275f6b0a7ae6b85871096adf11350bab84 GIT binary patch literal 111648 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 Jp-@Dte*ql3vdjPg literal 0 HcmV?d00001 -- Gitee