* [RFC]: MIPS: new ftrace implementation @ 2021-03-05 10:19 Huang Pei 2021-03-05 10:19 ` [PATCH 1/4] MIPS: replace -pg with CC_FLAGS_FTRACE Huang Pei ` (3 more replies) 0 siblings, 4 replies; 7+ messages in thread From: Huang Pei @ 2021-03-05 10:19 UTC (permalink / raw) To: Thomas Bogendoerfer, ambrosehua Cc: Bibo Mao, Andrew Morton, linux-mips, linux-arch, linux-mm, Jiaxun Yang, Paul Burton, Li Xuefeng, Yang Tiezhu, Gao Juxin, Huacai Chen, Jinyang He, Maciej W . Rozycki, Steven Rostedt This series add DYNAMC_FTRACE_WITH_REGS support without depending _mcount and -pg, and try to address following issue +. _mcount stub size is 3 insns in vmlinux and 4 insns in .ko, too much +. complex handing MIPS32 and MIPS64 in _mcount, especially sp pointer in MIPS32 +. _mcount is called with sp adjusted in Callee(the traced function), which is hard for livepatch to restore the sp pointer GCC ######### +. gcc 8 add -fpatchable-function-entry=N[, M] support to insert N nops before real start, for more info, see gcc 8 manual +. gcc/mips has two bug: 93242 (fixed in gcc 10), 99217 (with a fix, but not accepted) about this option. With fixes applyed in gcc 8.3, vmlinux is OK Design ######### +. Caller A calls Callee B, with -fpatchable-function-entry=3, B has three nops at its entry ------------ :: A: jal B nop ...... B: nop nop nop #B: real start INSN_B_first +. With ftrace initialized or module loaded, this three nop got replaced, ------------ :: A: jal B nop ...... B: lui at, %hi(ftrace_regs_caller) nop li t0, 0 #B: real start INSN_B_first Obviously, ftrace_regs_caller is 64KB aligned, thanks He Jinyang <hejinyang@loongson.cn> +. To enable tracing , take nop into "jalr at, at“, ------------ :: A: jal B nop ...... B: lui at, %hi(ftrace_regs_caller) jalr at, at li t0, 0 #B: real start INSN_B_first +. To disable tracing, take "jalr at, at" into nop ------------ :: A: jal B nop ...... B: lui at, %hi(ftrace_regs_caller) nop li t0, 0 #B: real start INSN_B_first +. when tracing without regs, replace "li t0, 0' with "li t0, 1" ------------ :: A: jal B nop ...... B: lui at, %hi(ftrace_regs_caller) jalr at, at li t0, 1 #B: real start INSN_B_first With only one instruction modified, it is atomic and no sync needed ( _mcount need sync between two writes) on both MIPS32 and MIPS64, I got this from ARM64. we need transfrom from tracing disabled into tracing without regs, first replace "li t0, 0" with "li t0, 1", then "nop" with "jalr at, at", still no sync between ------------ :: A: jal B nop ...... B: lui at, %hi(ftrace_regs_caller) jalr at, at li t0, 1 #B: real start INSN_B_first +. When B is ok to be patched, replace first four instruction with new function B' ------------ :: A: jal B nop ...... B: lui at, %hi(B') // second, fill new B'high addiu at, %lo(B') // first, fill nop // third, fill new B' low jr at // at last, fill jr #B: real start nop //forth, fill nop //Watch Out! //first instruction // clobbered. we //need to save it somewhere //or we must use four nops if tracing enabled, we need to disable tracing first, and we need sync before fill "jr" Patches ########### Patch 1 - Patch 3 This make new MIPS/ftrace with DYNAMIC_FTRACE_WITH_REGS in parallel with old MIPS/Ftrace Patch 4 Add DYNAMC_FTRACE_WITH_REGS support Remaining Issues ################ +. reserve three nops or four nops for <= MIPS R5 ? Without direct call, three nops is enough. With direct call, we need to hack ftrace to save the first instruction somewhere. Four nops is enough for all cases MIPS R6 only need three nops without hacking, but this version does not support MIPS R6 +. MIPS32 support, working on it +. checking for gcc version, can previous two bug back porting to gcc 8.5? We should check gcc's version +. stack backstrace ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/4] MIPS: replace -pg with CC_FLAGS_FTRACE 2021-03-05 10:19 [RFC]: MIPS: new ftrace implementation Huang Pei @ 2021-03-05 10:19 ` Huang Pei 2021-03-05 10:19 ` [PATCH 2/4] MIPS: move FTRACE_SYSCALLS from ftrace.c into syscall.c Huang Pei ` (2 subsequent siblings) 3 siblings, 0 replies; 7+ messages in thread From: Huang Pei @ 2021-03-05 10:19 UTC (permalink / raw) To: Thomas Bogendoerfer, ambrosehua Cc: Bibo Mao, Andrew Morton, linux-mips, linux-arch, linux-mm, Jiaxun Yang, Paul Burton, Li Xuefeng, Yang Tiezhu, Gao Juxin, Huacai Chen, Jinyang He, Maciej W . Rozycki, Steven Rostedt Signed-off-by: Huang Pei <huangpei@loongson.cn> --- arch/mips/boot/compressed/Makefile | 2 +- arch/mips/kernel/Makefile | 8 ++++---- arch/mips/vdso/Makefile | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/arch/mips/boot/compressed/Makefile b/arch/mips/boot/compressed/Makefile index d66511825fe1..8fc9ceeec709 100644 --- a/arch/mips/boot/compressed/Makefile +++ b/arch/mips/boot/compressed/Makefile @@ -18,7 +18,7 @@ include $(srctree)/arch/mips/Kbuild.platforms BOOT_HEAP_SIZE := 0x400000 # Disable Function Tracer -KBUILD_CFLAGS := $(filter-out -pg, $(KBUILD_CFLAGS)) +KBUILD_CFLAGS := $(filter-out $(CC_FLAGS_FTRACE), $(KBUILD_CFLAGS)) KBUILD_CFLAGS := $(filter-out -fstack-protector, $(KBUILD_CFLAGS)) diff --git a/arch/mips/kernel/Makefile b/arch/mips/kernel/Makefile index 2a05b923f579..33e31ea10234 100644 --- a/arch/mips/kernel/Makefile +++ b/arch/mips/kernel/Makefile @@ -17,10 +17,10 @@ obj-y += cpu-probe.o endif ifdef CONFIG_FUNCTION_TRACER -CFLAGS_REMOVE_ftrace.o = -pg -CFLAGS_REMOVE_early_printk.o = -pg -CFLAGS_REMOVE_perf_event.o = -pg -CFLAGS_REMOVE_perf_event_mipsxx.o = -pg +CFLAGS_REMOVE_ftrace.o = $(CC_FLAGS_FTRACE) +CFLAGS_REMOVE_early_printk.o = $(CC_FLAGS_FTRACE) +CFLAGS_REMOVE_perf_event.o = $(CC_FLAGS_FTRACE) +CFLAGS_REMOVE_perf_event_mipsxx.o = $(CC_FLAGS_FTRACE) endif obj-$(CONFIG_CEVT_BCM1480) += cevt-bcm1480.o diff --git a/arch/mips/vdso/Makefile b/arch/mips/vdso/Makefile index 5810cc12bc1d..f21cf88f7ae3 100644 --- a/arch/mips/vdso/Makefile +++ b/arch/mips/vdso/Makefile @@ -49,7 +49,7 @@ CFLAGS_vgettimeofday-o32.o = -include $(srctree)/$(src)/config-n32-o32-env.c -in CFLAGS_vgettimeofday-n32.o = -include $(srctree)/$(src)/config-n32-o32-env.c -include $(c-gettimeofday-y) endif -CFLAGS_REMOVE_vgettimeofday.o = -pg +CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE) ifdef CONFIG_MIPS_DISABLE_VDSO ifndef CONFIG_MIPS_LD_CAN_LINK_VDSO @@ -63,7 +63,7 @@ ldflags-y := -Bsymbolic --no-undefined -soname=linux-vdso.so.1 \ $(filter -E%,$(KBUILD_CFLAGS)) -nostdlib -shared \ -G 0 --eh-frame-hdr --hash-style=sysv --build-id=sha1 -T -CFLAGS_REMOVE_vdso.o = -pg +CFLAGS_REMOVE_vdso.o = $(CC_FLAGS_FTRACE) GCOV_PROFILE := n UBSAN_SANITIZE := n -- 2.17.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/4] MIPS: move FTRACE_SYSCALLS from ftrace.c into syscall.c 2021-03-05 10:19 [RFC]: MIPS: new ftrace implementation Huang Pei 2021-03-05 10:19 ` [PATCH 1/4] MIPS: replace -pg with CC_FLAGS_FTRACE Huang Pei @ 2021-03-05 10:19 ` Huang Pei 2021-03-05 10:19 ` [PATCH 3/4] MIPS: prepare for new ftrace implementation Huang Pei 2021-03-05 10:19 ` [PATCH 4/4] MIPS: add DYNAMIC_FTRACE_WITH_REGS Huang Pei 3 siblings, 0 replies; 7+ messages in thread From: Huang Pei @ 2021-03-05 10:19 UTC (permalink / raw) To: Thomas Bogendoerfer, ambrosehua Cc: Bibo Mao, Andrew Morton, linux-mips, linux-arch, linux-mm, Jiaxun Yang, Paul Burton, Li Xuefeng, Yang Tiezhu, Gao Juxin, Huacai Chen, Jinyang He, Maciej W . Rozycki, Steven Rostedt Signed-off-by: Huang Pei <huangpei@loongson.cn> --- arch/mips/kernel/Makefile | 1 - arch/mips/kernel/ftrace.c | 33 --------------------------------- arch/mips/kernel/syscall.c | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 34 deletions(-) diff --git a/arch/mips/kernel/Makefile b/arch/mips/kernel/Makefile index 33e31ea10234..5b2b551058ac 100644 --- a/arch/mips/kernel/Makefile +++ b/arch/mips/kernel/Makefile @@ -39,7 +39,6 @@ obj-$(CONFIG_DEBUG_FS) += segment.o obj-$(CONFIG_STACKTRACE) += stacktrace.o obj-$(CONFIG_MODULES) += module.o -obj-$(CONFIG_FTRACE_SYSCALLS) += ftrace.o obj-$(CONFIG_FUNCTION_TRACER) += mcount.o ftrace.o sw-y := r4k_switch.o diff --git a/arch/mips/kernel/ftrace.c b/arch/mips/kernel/ftrace.c index f57e68f40a34..5156b2e54bfe 100644 --- a/arch/mips/kernel/ftrace.c +++ b/arch/mips/kernel/ftrace.c @@ -12,14 +12,11 @@ #include <linux/uaccess.h> #include <linux/init.h> #include <linux/ftrace.h> -#include <linux/syscalls.h> #include <asm/asm.h> #include <asm/asm-offsets.h> #include <asm/cacheflush.h> -#include <asm/syscall.h> #include <asm/uasm.h> -#include <asm/unistd.h> #include <asm-generic/sections.h> @@ -382,33 +379,3 @@ void prepare_ftrace_return(unsigned long *parent_ra_addr, unsigned long self_ra, WARN_ON(1); } #endif /* CONFIG_FUNCTION_GRAPH_TRACER */ - -#ifdef CONFIG_FTRACE_SYSCALLS - -#ifdef CONFIG_32BIT -unsigned long __init arch_syscall_addr(int nr) -{ - return (unsigned long)sys_call_table[nr - __NR_O32_Linux]; -} -#endif - -#ifdef CONFIG_64BIT - -unsigned long __init arch_syscall_addr(int nr) -{ -#ifdef CONFIG_MIPS32_N32 - if (nr >= __NR_N32_Linux && nr < __NR_N32_Linux + __NR_N32_Linux_syscalls) - return (unsigned long)sysn32_call_table[nr - __NR_N32_Linux]; -#endif - if (nr >= __NR_64_Linux && nr < __NR_64_Linux + __NR_64_Linux_syscalls) - return (unsigned long)sys_call_table[nr - __NR_64_Linux]; -#ifdef CONFIG_MIPS32_O32 - if (nr >= __NR_O32_Linux && nr < __NR_O32_Linux + __NR_O32_Linux_syscalls) - return (unsigned long)sys32_call_table[nr - __NR_O32_Linux]; -#endif - - return (unsigned long) &sys_ni_syscall; -} -#endif - -#endif /* CONFIG_FTRACE_SYSCALLS */ diff --git a/arch/mips/kernel/syscall.c b/arch/mips/kernel/syscall.c index 2afa3eef486a..797d9ce478da 100644 --- a/arch/mips/kernel/syscall.c +++ b/arch/mips/kernel/syscall.c @@ -39,7 +39,9 @@ #include <asm/shmparam.h> #include <asm/sync.h> #include <asm/sysmips.h> +#include <asm/syscall.h> #include <asm/switch_to.h> +#include <asm/unistd.h> /* * For historic reasons the pipe(2) syscall on MIPS has an unusual calling @@ -233,6 +235,36 @@ SYSCALL_DEFINE3(sysmips, long, cmd, long, arg1, long, arg2) return -EINVAL; } +#ifdef CONFIG_FTRACE_SYSCALLS + +#ifdef CONFIG_32BIT +unsigned long __init arch_syscall_addr(int nr) +{ + return (unsigned long)sys_call_table[nr - __NR_O32_Linux]; +} +#endif + +#ifdef CONFIG_64BIT + +unsigned long __init arch_syscall_addr(int nr) +{ +#ifdef CONFIG_MIPS32_N32 + if (nr >= __NR_N32_Linux && nr < __NR_N32_Linux + __NR_N32_Linux_syscalls) + return (unsigned long)sysn32_call_table[nr - __NR_N32_Linux]; +#endif + if (nr >= __NR_64_Linux && nr < __NR_64_Linux + __NR_64_Linux_syscalls) + return (unsigned long)sys_call_table[nr - __NR_64_Linux]; +#ifdef CONFIG_MIPS32_O32 + if (nr >= __NR_O32_Linux && nr < __NR_O32_Linux + __NR_O32_Linux_syscalls) + return (unsigned long)sys32_call_table[nr - __NR_O32_Linux]; +#endif + + return (unsigned long) &sys_ni_syscall; +} +#endif + +#endif /* CONFIG_FTRACE_SYSCALLS */ + /* * No implemented yet ... */ -- 2.17.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 3/4] MIPS: prepare for new ftrace implementation 2021-03-05 10:19 [RFC]: MIPS: new ftrace implementation Huang Pei 2021-03-05 10:19 ` [PATCH 1/4] MIPS: replace -pg with CC_FLAGS_FTRACE Huang Pei 2021-03-05 10:19 ` [PATCH 2/4] MIPS: move FTRACE_SYSCALLS from ftrace.c into syscall.c Huang Pei @ 2021-03-05 10:19 ` Huang Pei 2021-03-05 10:19 ` [PATCH 4/4] MIPS: add DYNAMIC_FTRACE_WITH_REGS Huang Pei 3 siblings, 0 replies; 7+ messages in thread From: Huang Pei @ 2021-03-05 10:19 UTC (permalink / raw) To: Thomas Bogendoerfer, ambrosehua Cc: Bibo Mao, Andrew Morton, linux-mips, linux-arch, linux-mm, Jiaxun Yang, Paul Burton, Li Xuefeng, Yang Tiezhu, Gao Juxin, Huacai Chen, Jinyang He, Maciej W . Rozycki, Steven Rostedt No function change Signed-off-by: Huang Pei <huangpei@loongson.cn> --- arch/mips/kernel/Makefile | 4 ++-- arch/mips/kernel/{ftrace.c => ftrace-mcount.c} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename arch/mips/kernel/{ftrace.c => ftrace-mcount.c} (100%) diff --git a/arch/mips/kernel/Makefile b/arch/mips/kernel/Makefile index 5b2b551058ac..3e7b0ee54cfb 100644 --- a/arch/mips/kernel/Makefile +++ b/arch/mips/kernel/Makefile @@ -17,7 +17,7 @@ obj-y += cpu-probe.o endif ifdef CONFIG_FUNCTION_TRACER -CFLAGS_REMOVE_ftrace.o = $(CC_FLAGS_FTRACE) +CFLAGS_REMOVE_ftrace-mcount.o = $(CC_FLAGS_FTRACE) CFLAGS_REMOVE_early_printk.o = $(CC_FLAGS_FTRACE) CFLAGS_REMOVE_perf_event.o = $(CC_FLAGS_FTRACE) CFLAGS_REMOVE_perf_event_mipsxx.o = $(CC_FLAGS_FTRACE) @@ -39,7 +39,7 @@ obj-$(CONFIG_DEBUG_FS) += segment.o obj-$(CONFIG_STACKTRACE) += stacktrace.o obj-$(CONFIG_MODULES) += module.o -obj-$(CONFIG_FUNCTION_TRACER) += mcount.o ftrace.o +obj-$(CONFIG_FUNCTION_TRACER) += mcount.o ftrace-mcount.o sw-y := r4k_switch.o sw-$(CONFIG_CPU_R3000) := r2300_switch.o diff --git a/arch/mips/kernel/ftrace.c b/arch/mips/kernel/ftrace-mcount.c similarity index 100% rename from arch/mips/kernel/ftrace.c rename to arch/mips/kernel/ftrace-mcount.c -- 2.17.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 4/4] MIPS: add DYNAMIC_FTRACE_WITH_REGS 2021-03-05 10:19 [RFC]: MIPS: new ftrace implementation Huang Pei ` (2 preceding siblings ...) 2021-03-05 10:19 ` [PATCH 3/4] MIPS: prepare for new ftrace implementation Huang Pei @ 2021-03-05 10:19 ` Huang Pei 2021-03-07 10:50 ` kernel test robot 3 siblings, 1 reply; 7+ messages in thread From: Huang Pei @ 2021-03-05 10:19 UTC (permalink / raw) To: Thomas Bogendoerfer, ambrosehua Cc: Bibo Mao, Andrew Morton, linux-mips, linux-arch, linux-mm, Jiaxun Yang, Paul Burton, Li Xuefeng, Yang Tiezhu, Gao Juxin, Huacai Chen, Jinyang He, Maciej W . Rozycki, Steven Rostedt Add another ftrace implementation in parallel with mcount-based ftrace +. Depend on GCC with -fpatchable-function-entry +. Use 3 nops for stub in module and vmlinux, smaller than old one. +. Simplify ftrace_regs_caller/ftrace_caller handling, especially on MIPS O32 +. No adjustment on sp, so callee(the traced function) can get caller's sp, very friendly to livepatch Signed-off-by: Huang Pei <huangpei@loongson.cn> --- arch/mips/Kconfig | 2 + arch/mips/Makefile | 16 ++- arch/mips/include/asm/ftrace.h | 7 ++ arch/mips/kernel/Makefile | 5 +- arch/mips/kernel/entry-ftrace.S | 182 +++++++++++++++++++++++++++ arch/mips/kernel/ftrace.c | 215 ++++++++++++++++++++++++++++++++ 6 files changed, 422 insertions(+), 5 deletions(-) create mode 100644 arch/mips/kernel/entry-ftrace.S create mode 100644 arch/mips/kernel/ftrace.c diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index 5741dae35b74..6b96a19a42c2 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig @@ -56,6 +56,8 @@ config MIPS select HAVE_DEBUG_STACKOVERFLOW select HAVE_DMA_CONTIGUOUS select HAVE_DYNAMIC_FTRACE + select HAVE_DYNAMIC_FTRACE_WITH_REGS \ + if $(cc-option, -fpatchable-function-entry=3) select HAVE_EBPF_JIT if 64BIT && !CPU_MICROMIPS && TARGET_ISA_REV >= 2 select HAVE_EXIT_THREAD select HAVE_FAST_GUP diff --git a/arch/mips/Makefile b/arch/mips/Makefile index 0d0f29d662c9..1d6553f0623e 100644 --- a/arch/mips/Makefile +++ b/arch/mips/Makefile @@ -56,13 +56,16 @@ ifneq ($(SUBARCH),$(ARCH)) endif endif -ifdef CONFIG_FUNCTION_GRAPH_TRACER - ifndef KBUILD_MCOUNT_RA_ADDRESS - ifeq ($(call cc-option-yn,-mmcount-ra-address), y) - cflags-y += -mmcount-ra-address -DKBUILD_MCOUNT_RA_ADDRESS +ifndef CONFIG_DYNMAIC_FTRACE_WITH_REGS + ifdef CONFIG_FUNCTION_GRAPH_TRACER + ifndef KBUILD_MCOUNT_RA_ADDRESS + ifeq ($(call cc-option-yn,-mmcount-ra-address), y) + cflags-y += -mmcount-ra-address -DKBUILD_MCOUNT_RA_ADDRESS + endif endif endif endif + cflags-y += $(call cc-option, -mno-check-zero-division) ifdef CONFIG_32BIT @@ -293,6 +296,11 @@ ifdef CONFIG_64BIT bootvars-y += ADDR_BITS=64 endif +ifdef CONFIG_DYNAMIC_FTRACE_WITH_REGS + KBUILD_CPPFLAGS += -DCC_USING_PATCHABLE_FUNCTION_ENTRY + CC_FLAGS_FTRACE := -fpatchable-function-entry=3 +endif + # This is required to get dwarf unwinding tables into .debug_frame # instead of .eh_frame so we don't discard them. KBUILD_CFLAGS += -fno-asynchronous-unwind-tables diff --git a/arch/mips/include/asm/ftrace.h b/arch/mips/include/asm/ftrace.h index b463f2aa5a61..e3b0910486ab 100644 --- a/arch/mips/include/asm/ftrace.h +++ b/arch/mips/include/asm/ftrace.h @@ -87,4 +87,11 @@ struct dyn_arch_ftrace { #endif /* CONFIG_DYNAMIC_FTRACE */ #endif /* __ASSEMBLY__ */ #endif /* CONFIG_FUNCTION_TRACER */ + +#ifdef CONFIG_DYNAMIC_FTRACE_WITH_REGS +struct dyn_ftrace; +int ftrace_init_nop(struct module *mod, struct dyn_ftrace *rec); +#define ftrace_init_nop ftrace_init_nop +#endif + #endif /* _ASM_MIPS_FTRACE_H */ diff --git a/arch/mips/kernel/Makefile b/arch/mips/kernel/Makefile index 3e7b0ee54cfb..7b07d80aadd5 100644 --- a/arch/mips/kernel/Makefile +++ b/arch/mips/kernel/Makefile @@ -21,6 +21,7 @@ CFLAGS_REMOVE_ftrace-mcount.o = $(CC_FLAGS_FTRACE) CFLAGS_REMOVE_early_printk.o = $(CC_FLAGS_FTRACE) CFLAGS_REMOVE_perf_event.o = $(CC_FLAGS_FTRACE) CFLAGS_REMOVE_perf_event_mipsxx.o = $(CC_FLAGS_FTRACE) +CFLAGS_REMOVE_ftrace.o = $(CC_FLAGS_FTRACE) endif obj-$(CONFIG_CEVT_BCM1480) += cevt-bcm1480.o @@ -39,7 +40,9 @@ obj-$(CONFIG_DEBUG_FS) += segment.o obj-$(CONFIG_STACKTRACE) += stacktrace.o obj-$(CONFIG_MODULES) += module.o -obj-$(CONFIG_FUNCTION_TRACER) += mcount.o ftrace-mcount.o +ft-$(CONFIG_FUNCTION_TRACER) += mcount.o ftrace-mcount.o +ft-$(CONFIG_DYNAMIC_FTRACE_WITH_REGS) := entry-ftrace.o ftrace.o +obj-y += $(ft-y) sw-y := r4k_switch.o sw-$(CONFIG_CPU_R3000) := r2300_switch.o diff --git a/arch/mips/kernel/entry-ftrace.S b/arch/mips/kernel/entry-ftrace.S new file mode 100644 index 000000000000..1e1eebc523ea --- /dev/null +++ b/arch/mips/kernel/entry-ftrace.S @@ -0,0 +1,182 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * arch/mips/kernel/entry_ftrace.S + * + * Copyright (C) 2021 Loongson Corp + * Author: Huang Pei <huangpei@loongson.cn> + */ + +#include <asm/export.h> +#include <asm/regdef.h> +#include <asm/stackframe.h> + +/* + * ftrace_regs_caller() is the function that replaces _mcount() when ftrace + * is active. + * + * we arrive here after a function A calls function B, and B is what we + * are tracing for. When we enter, sp points to A's stack frame, B has not + * yet had a chance to allocate one yet. (This is different from -pg case + * , in which the B's stack is allocated)) + + * when ftrace initialized, it replace three nops from all function with + * "lui + nop + move" + * B: + * lui at, %hi(ftrace_regs_caller) + * nop + * li t0, 0 + * # B's real start + * + * at B's entry, when tracing enabled, replace the 'nop' with 'jalr' + * + * # B's entry, three nop for both in vmlinux and in kernel modules + * B: + * lui at, %hi(ftrace_regs_caller) + * jalr at, at + * move t0, zero + * # B's real start + * + * if set t0 to 1, then calling ftrace_regs_caller with partial regs saved + * + * B: + * lui at, %hi(ftrace_regs_caller) + * jalr at, at + * li t0, 1 + * # B's real start + * + * we make ftrace_regs_caller 64KB aligned, when entring ftrace_regs_caller + * AT points to the return address to B, and ra points to return address + * to A, + * + * if patched to new funcition, then clobbered the first real instruction + * + * B: + * lui at, %hi(new_B) + * addiu at, at, %lo(new_B) + * jr at + * # B's real start, now clobbered with zero + * nop + * + */ + .text + .set push + .set noreorder + .set noat + .align 16 +NESTED(ftrace_regs_caller, PT_SIZE, ra) + PTR_ADDIU sp, sp, -PT_SIZE + .globl ftrace_caller +ftrace_caller: +#ifdef CONFIG_64BIT + PTR_S a4, PT_R8(sp) + PTR_S a5, PT_R9(sp) + PTR_S a6, PT_R10(sp) + PTR_S a7, PT_R11(sp) +#endif + PTR_S a0, PT_R4(sp) + PTR_S a1, PT_R5(sp) + PTR_S a2, PT_R6(sp) + + bnez t0, 1f + PTR_S a3, PT_R7(sp) + + PTR_S t0, PT_R12(sp) + PTR_S t1, PT_R13(sp) + PTR_S t2, PT_R14(sp) + PTR_S t3, PT_R15(sp) + + PTR_S s0, PT_R16(sp) + PTR_S s1, PT_R17(sp) + PTR_S s2, PT_R18(sp) + PTR_S s3, PT_R19(sp) + + PTR_S s4, PT_R20(sp) + PTR_S s5, PT_R21(sp) + PTR_S s6, PT_R22(sp) + PTR_S s7, PT_R23(sp) + + PTR_S t8, PT_R24(sp) + PTR_S t9, PT_R25(sp) + PTR_S s8, PT_R30(sp) + PTR_S gp, PT_R28(sp) + +1: + PTR_S sp, PT_R29(sp) + PTR_S ra, PT_R1(sp) + PTR_S AT, PT_R31(sp) + + END(ftrace_regs_caller) + +ftrace_common: + PTR_ADDIU a0, AT, -12 //a0 points to B's entry address + move a1, ra //a1 points to return address to A + PTR_L a2, function_trace_op //a2 points to function_trace op + + .globl ftrace_call +ftrace_call: + jal ftrace_stub + move a3, sp //a3 point to frame pointer + +#ifdef CONFIG_FUNCTION_GRAPH_TRACER + .globl ftrace_graph_call +ftrace_graph_call: + nop + nop +#endif + +ftrace_common_return: + PTR_L AT, PT_R1(sp) +ftrace_graph_return: + PTR_L ra, PT_R31(sp) + PTR_L a0, PT_R4(sp) + PTR_L a1, PT_R5(sp) + PTR_L a2, PT_R6(sp) + PTR_L a3, PT_R7(sp) +#ifdef CONFIG_64BIT + PTR_L a4, PT_R8(sp) + PTR_L a5, PT_R9(sp) + PTR_L a6, PT_R10(sp) + PTR_L a7, PT_R11(sp) +#endif + PTR_ADDIU sp, sp, PT_SIZE //retore stack frame + jr ra + move ra, AT + + + .globl ftrace_stub +ftrace_stub: + jr ra + nop + +#ifdef CONFIG_FUNCTION_GRAPH_TRACER + .globl ftrace_graph_caller +ftrace_graph_caller: + PTR_L a0, PT_R1(sp) + PTR_L a1, PT_R31(sp) + jal prepare_ftrace_return + PTR_ADDIU a2, sp, PT_SIZE + + b ftrace_graph_return + move AT, v0 + + + .align 2 + .globl return_to_handler +return_to_handler: + PTR_SUBU sp, PT_SIZE + PTR_S v0, PT_R2(sp) + + jal ftrace_return_to_handler + PTR_S v1, PT_R3(sp) + + /* restore the real parent address: v0 -> ra */ + move ra, v0 + + PTR_L v0, PT_R2(sp) + PTR_L v1, PT_R3(sp) + jr ra + PTR_ADDIU sp, PT_SIZE + + .set at + .set reorder +#endif /* CONFIG_FUNCTION_GRAPH_TRACER */ diff --git a/arch/mips/kernel/ftrace.c b/arch/mips/kernel/ftrace.c new file mode 100644 index 000000000000..4c8bea1818cb --- /dev/null +++ b/arch/mips/kernel/ftrace.c @@ -0,0 +1,215 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * arch/mips/kernel/ftrace.c + * + * Copyright (C) 2021 Loongson Limited Corp. + * Author: Huang Pei <huangpei@loongson.cn> + */ + +#include <linux/ftrace.h> +#include <linux/module.h> +#include <linux/swab.h> +#include <linux/uaccess.h> + +#include <asm/ftrace.h> +#include <asm/asm.h> +#include <asm/asm-offsets.h> +#include <asm/cacheflush.h> +#include <asm/uasm.h> + + +#define INSN_NOP 0x00000000 /* nop */ +#define INSN_JALR_AT2 0x00200809 /* jalr at, at */ +#define INSN_LI_0 0x240c0000 /* li t0, 0 */ +#define INSN_LI_1 0x240c0001 /* li t0, 1 */ +#define FTRACE_CALL_IP ((unsigned long)(&ftrace_call)) +#define JAL 0x0c000000 /* jump & link: ip --> ra, jump to target */ +#define ADDR_MASK 0x03ffffff /* op_code|addr : 31...26|25 ....0 */ +#define INSN_JAL(addr) \ + ((unsigned int)(JAL | (((addr) >> 2) & ADDR_MASK))) + +extern void ftrace_graph_call(void); + +static unsigned int insn_lui __read_mostly; + +/* Arch override because MIPS doesn't need to run this from stop_machine() */ +void arch_ftrace_update_code(int command) +{ + ftrace_modify_all_code(command); +} + +static int ftrace_modify_code(unsigned long ip, unsigned int new_code) +{ + int faulted; + mm_segment_t old_fs; + + /* *(unsigned int *)ip = new_code; */ + safe_store_code(new_code, ip, faulted); + + if (unlikely(faulted)) + return -EFAULT; + + old_fs = get_fs(); + set_fs(KERNEL_DS); + flush_icache_range(ip, ip + 8); + set_fs(old_fs); + + return 0; +} + +int ftrace_update_ftrace_func(ftrace_func_t func) +{ + unsigned int new; + + new = INSN_JAL((unsigned long)func); + + return ftrace_modify_code(FTRACE_CALL_IP, new); +} + +/* + * enable tracing by replacing the middle nop with jalr, like + * + * lui at, %hi(ftrace_regs_all) + * jalr at, at + * li t0, 0 + */ +int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr) +{ + unsigned long ip = rec->ip; + + ftrace_modify_code(ip + 4, INSN_JALR_AT2); + return 0; +} + +/* + * disable recording regs by replacing + * + * li t0, 0 + * + * with + * + * li, t0, 1 + * + * or vesa + */ +int ftrace_modify_call(struct dyn_ftrace *rec, unsigned long old_addr, + unsigned long addr) +{ + unsigned long ip = rec->ip; + + if (abs(old_addr - addr) == 4) { + if (addr == (unsigned long)ftrace_regs_caller) + return ftrace_modify_code(ip + 4, INSN_LI_0); + + if (addr == (unsigned long)ftrace_caller) + return ftrace_modify_code(ip + 4, INSN_LI_1); + + } + + /* we do not support direct call or trampoline now */ + + return -1; + +} + +/* + * replace all three nop at the entry with + * + * lui at, %hi(ftrace_regs_all) + * nop + * li t0, 1 + */ + +int ftrace_init_nop(struct module *mod, struct dyn_ftrace *rec) +{ + unsigned long ip = rec->ip; + + ftrace_modify_code(ip, insn_lui); + + ftrace_modify_code(ip + 8, INSN_LI_1); + return 0; +} + + + +/* + * disable tracing by replacing + * + * jalr at, at + * + * with + * + * nop + * + */ + +int ftrace_make_nop(struct module *mod, struct dyn_ftrace *rec, + unsigned long addr) + +{ + unsigned int new = INSN_NOP; + unsigned long ip = rec->ip + 4; + + return ftrace_modify_code(ip, new); +} + +int __init ftrace_dyn_arch_init(void) +{ + u32 *buf; + int reg; + + reg = 1; + /* lui at, %hi(ftrace_regs_all) */ + buf = (u32*)&insn_lui; + uasm_i_lui(&buf, reg, uasm_rel_hi((long)ftrace_regs_caller)); + + return 0; +} + +#ifdef CONFIG_FUNCTION_GRAPH_TRACER +unsigned long prepare_ftrace_return(unsigned long parent, unsigned long self_ra, + unsigned long fp) +{ + unsigned long return_hooker = (unsigned long)&return_to_handler; + + if (unlikely(ftrace_graph_is_dead())) + goto out; + + if (unlikely(atomic_read(¤t->tracing_graph_pause))) + goto out; + + self_ra -= 8; + if (!function_graph_enter(parent, self_ra, fp, NULL)) + parent = return_hooker; +out: + return parent; +} + +/* + * Turn on/off the call to ftrace_graph_caller() in ftrace_caller() + * depending on @enable. + */ +static int ftrace_modify_graph_caller(bool enable) +{ + unsigned long pc = (unsigned long)ftrace_graph_call; + unsigned new; + + if (enable) + new = INSN_JAL((unsigned long)ftrace_graph_caller); + else + new = INSN_NOP; + + return ftrace_modify_code(pc, new); +} + +int ftrace_enable_ftrace_graph_caller(void) +{ + return ftrace_modify_graph_caller(true); +} + +int ftrace_disable_ftrace_graph_caller(void) +{ + return ftrace_modify_graph_caller(false); +} + +#endif /* CONFIG_FUNCTION_GRAPH_TRACER */ -- 2.17.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 4/4] MIPS: add DYNAMIC_FTRACE_WITH_REGS 2021-03-05 10:19 ` [PATCH 4/4] MIPS: add DYNAMIC_FTRACE_WITH_REGS Huang Pei @ 2021-03-07 10:50 ` kernel test robot 0 siblings, 0 replies; 7+ messages in thread From: kernel test robot @ 2021-03-07 10:50 UTC (permalink / raw) To: Huang Pei, Thomas Bogendoerfer, ambrosehua Cc: kbuild-all, Bibo Mao, Andrew Morton, Linux Memory Management List, linux-mips, linux-arch, Jiaxun Yang, Paul Burton, Li Xuefeng [-- Attachment #1: Type: text/plain, Size: 36479 bytes --] Hi Huang, Thank you for the patch! Yet something to improve: [auto build test ERROR on tip/perf/core] [also build test ERROR on linus/master hnaz-linux-mm/master v5.12-rc2 next-20210305] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Huang-Pei/MIPS-replace-pg-with-CC_FLAGS_FTRACE/20210307-115946 base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 8bcfdd7cad3dffdd340f9a79098cbf331eb2cd53 config: mips-randconfig-r003-20210307 (attached as .config) compiler: mips-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/32a9684a1c08df48b3dcf8402a201ae5b0244472 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Huang-Pei/MIPS-replace-pg-with-CC_FLAGS_FTRACE/20210307-115946 git checkout 32a9684a1c08df48b3dcf8402a201ae5b0244472 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>): {standard input}: Assembler messages: >> {standard input}:118: Error: junk at end of line, first unrecognized character is `%' {standard input}:119: Error: junk at end of line, first unrecognized character is `%' {standard input}:120: Error: junk at end of line, first unrecognized character is `%' {standard input}:146: Error: junk at end of line, first unrecognized character is `%' {standard input}:147: Error: junk at end of line, first unrecognized character is `%' {standard input}:148: Error: junk at end of line, first unrecognized character is `%' {standard input}:192: Error: junk at end of line, first unrecognized character is `%' {standard input}:193: Error: junk at end of line, first unrecognized character is `%' {standard input}:194: Error: junk at end of line, first unrecognized character is `%' {standard input}:245: Error: junk at end of line, first unrecognized character is `%' {standard input}:246: Error: junk at end of line, first unrecognized character is `%' {standard input}:247: Error: junk at end of line, first unrecognized character is `%' {standard input}:329: Error: junk at end of line, first unrecognized character is `%' {standard input}:330: Error: junk at end of line, first unrecognized character is `%' {standard input}:331: Error: junk at end of line, first unrecognized character is `%' {standard input}:357: Error: junk at end of line, first unrecognized character is `%' {standard input}:358: Error: junk at end of line, first unrecognized character is `%' {standard input}:359: Error: junk at end of line, first unrecognized character is `%' {standard input}:431: Error: junk at end of line, first unrecognized character is `%' {standard input}:432: Error: junk at end of line, first unrecognized character is `%' {standard input}:433: Error: junk at end of line, first unrecognized character is `%' {standard input}:539: Error: junk at end of line, first unrecognized character is `%' {standard input}:540: Error: junk at end of line, first unrecognized character is `%' {standard input}:541: Error: junk at end of line, first unrecognized character is `%' {standard input}:640: Error: junk at end of line, first unrecognized character is `%' {standard input}:641: Error: junk at end of line, first unrecognized character is `%' {standard input}:642: Error: junk at end of line, first unrecognized character is `%' {standard input}:733: Error: junk at end of line, first unrecognized character is `%' {standard input}:734: Error: junk at end of line, first unrecognized character is `%' {standard input}:735: Error: junk at end of line, first unrecognized character is `%' {standard input}:854: Error: junk at end of line, first unrecognized character is `%' {standard input}:855: Error: junk at end of line, first unrecognized character is `%' {standard input}:856: Error: junk at end of line, first unrecognized character is `%' {standard input}:898: Error: junk at end of line, first unrecognized character is `%' {standard input}:899: Error: junk at end of line, first unrecognized character is `%' {standard input}:900: Error: junk at end of line, first unrecognized character is `%' {standard input}:1159: Error: junk at end of line, first unrecognized character is `%' {standard input}:1160: Error: junk at end of line, first unrecognized character is `%' {standard input}:1161: Error: junk at end of line, first unrecognized character is `%' {standard input}:1415: Error: junk at end of line, first unrecognized character is `%' {standard input}:1416: Error: junk at end of line, first unrecognized character is `%' {standard input}:1417: Error: junk at end of line, first unrecognized character is `%' {standard input}:2114: Error: junk at end of line, first unrecognized character is `%' {standard input}:2115: Error: junk at end of line, first unrecognized character is `%' {standard input}:2116: Error: junk at end of line, first unrecognized character is `%' {standard input}:2416: Error: junk at end of line, first unrecognized character is `%' {standard input}:2417: Error: junk at end of line, first unrecognized character is `%' {standard input}:2418: Error: junk at end of line, first unrecognized character is `%' {standard input}:3109: Error: junk at end of line, first unrecognized character is `%' {standard input}:3110: Error: junk at end of line, first unrecognized character is `%' {standard input}:3111: Error: junk at end of line, first unrecognized character is `%' {standard input}:3318: Error: junk at end of line, first unrecognized character is `%' {standard input}:3319: Error: junk at end of line, first unrecognized character is `%' {standard input}:3320: Error: junk at end of line, first unrecognized character is `%' {standard input}:3655: Error: junk at end of line, first unrecognized character is `%' {standard input}:3656: Error: junk at end of line, first unrecognized character is `%' {standard input}:3657: Error: junk at end of line, first unrecognized character is `%' {standard input}:3690: Error: junk at end of line, first unrecognized character is `%' {standard input}:3691: Error: junk at end of line, first unrecognized character is `%' {standard input}:3692: Error: junk at end of line, first unrecognized character is `%' -- {standard input}: Assembler messages: {standard input}:117: Error: junk at end of line, first unrecognized character is `%' >> {standard input}:118: Error: junk at end of line, first unrecognized character is `%' {standard input}:119: Error: junk at end of line, first unrecognized character is `%' {standard input}:158: Error: junk at end of line, first unrecognized character is `%' {standard input}:159: Error: junk at end of line, first unrecognized character is `%' {standard input}:160: Error: junk at end of line, first unrecognized character is `%' {standard input}:187: Error: junk at end of line, first unrecognized character is `%' {standard input}:188: Error: junk at end of line, first unrecognized character is `%' {standard input}:189: Error: junk at end of line, first unrecognized character is `%' {standard input}:232: Error: junk at end of line, first unrecognized character is `%' {standard input}:233: Error: junk at end of line, first unrecognized character is `%' {standard input}:234: Error: junk at end of line, first unrecognized character is `%' {standard input}:260: Error: junk at end of line, first unrecognized character is `%' {standard input}:261: Error: junk at end of line, first unrecognized character is `%' {standard input}:262: Error: junk at end of line, first unrecognized character is `%' {standard input}:448: Error: junk at end of line, first unrecognized character is `%' {standard input}:449: Error: junk at end of line, first unrecognized character is `%' {standard input}:450: Error: junk at end of line, first unrecognized character is `%' {standard input}:496: Error: junk at end of line, first unrecognized character is `%' {standard input}:497: Error: junk at end of line, first unrecognized character is `%' {standard input}:498: Error: junk at end of line, first unrecognized character is `%' {standard input}:537: Error: junk at end of line, first unrecognized character is `%' {standard input}:538: Error: junk at end of line, first unrecognized character is `%' {standard input}:539: Error: junk at end of line, first unrecognized character is `%' {standard input}:565: Error: junk at end of line, first unrecognized character is `%' {standard input}:566: Error: junk at end of line, first unrecognized character is `%' {standard input}:567: Error: junk at end of line, first unrecognized character is `%' {standard input}:610: Error: junk at end of line, first unrecognized character is `%' {standard input}:611: Error: junk at end of line, first unrecognized character is `%' {standard input}:612: Error: junk at end of line, first unrecognized character is `%' {standard input}:782: Error: junk at end of line, first unrecognized character is `%' {standard input}:783: Error: junk at end of line, first unrecognized character is `%' {standard input}:784: Error: junk at end of line, first unrecognized character is `%' {standard input}:858: Error: junk at end of line, first unrecognized character is `%' {standard input}:859: Error: junk at end of line, first unrecognized character is `%' {standard input}:860: Error: junk at end of line, first unrecognized character is `%' {standard input}:977: Error: junk at end of line, first unrecognized character is `%' {standard input}:978: Error: junk at end of line, first unrecognized character is `%' {standard input}:979: Error: junk at end of line, first unrecognized character is `%' {standard input}:1048: Error: junk at end of line, first unrecognized character is `%' {standard input}:1049: Error: junk at end of line, first unrecognized character is `%' {standard input}:1050: Error: junk at end of line, first unrecognized character is `%' {standard input}:1121: Error: junk at end of line, first unrecognized character is `%' {standard input}:1122: Error: junk at end of line, first unrecognized character is `%' {standard input}:1123: Error: junk at end of line, first unrecognized character is `%' {standard input}:1175: Error: junk at end of line, first unrecognized character is `%' {standard input}:1176: Error: junk at end of line, first unrecognized character is `%' {standard input}:1177: Error: junk at end of line, first unrecognized character is `%' {standard input}:1290: Error: junk at end of line, first unrecognized character is `%' {standard input}:1291: Error: junk at end of line, first unrecognized character is `%' {standard input}:1292: Error: junk at end of line, first unrecognized character is `%' {standard input}:1626: Error: junk at end of line, first unrecognized character is `%' {standard input}:1627: Error: junk at end of line, first unrecognized character is `%' {standard input}:1628: Error: junk at end of line, first unrecognized character is `%' {standard input}:1902: Error: junk at end of line, first unrecognized character is `%' {standard input}:1903: Error: junk at end of line, first unrecognized character is `%' {standard input}:1904: Error: junk at end of line, first unrecognized character is `%' {standard input}:2421: Error: junk at end of line, first unrecognized character is `%' {standard input}:2422: Error: junk at end of line, first unrecognized character is `%' {standard input}:2423: Error: junk at end of line, first unrecognized character is `%' {standard input}:2569: Error: junk at end of line, first unrecognized character is `%' {standard input}:2570: Error: junk at end of line, first unrecognized character is `%' {standard input}:2571: Error: junk at end of line, first unrecognized character is `%' {standard input}:2916: Error: junk at end of line, first unrecognized character is `%' {standard input}:2917: Error: junk at end of line, first unrecognized character is `%' {standard input}:2918: Error: junk at end of line, first unrecognized character is `%' {standard input}:2951: Error: junk at end of line, first unrecognized character is `%' {standard input}:2952: Error: junk at end of line, first unrecognized character is `%' {standard input}:2953: Error: junk at end of line, first unrecognized character is `%' -- drivers/net/ethernet/hisilicon/hns_mdio.c:553:36: warning: 'hns_mdio_acpi_match' defined but not used [-Wunused-const-variable=] 553 | static const struct acpi_device_id hns_mdio_acpi_match[] = { | ^~~~~~~~~~~~~~~~~~~ {standard input}: Assembler messages: >> {standard input}:118: Error: junk at end of line, first unrecognized character is `%' {standard input}:119: Error: junk at end of line, first unrecognized character is `%' {standard input}:120: Error: junk at end of line, first unrecognized character is `%' {standard input}:146: Error: junk at end of line, first unrecognized character is `%' {standard input}:147: Error: junk at end of line, first unrecognized character is `%' {standard input}:148: Error: junk at end of line, first unrecognized character is `%' {standard input}:214: Error: junk at end of line, first unrecognized character is `%' {standard input}:215: Error: junk at end of line, first unrecognized character is `%' {standard input}:216: Error: junk at end of line, first unrecognized character is `%' {standard input}:461: Error: junk at end of line, first unrecognized character is `%' {standard input}:462: Error: junk at end of line, first unrecognized character is `%' {standard input}:463: Error: junk at end of line, first unrecognized character is `%' {standard input}:520: Error: junk at end of line, first unrecognized character is `%' {standard input}:521: Error: junk at end of line, first unrecognized character is `%' {standard input}:522: Error: junk at end of line, first unrecognized character is `%' {standard input}:627: Error: junk at end of line, first unrecognized character is `%' {standard input}:628: Error: junk at end of line, first unrecognized character is `%' {standard input}:629: Error: junk at end of line, first unrecognized character is `%' {standard input}:756: Error: junk at end of line, first unrecognized character is `%' {standard input}:757: Error: junk at end of line, first unrecognized character is `%' {standard input}:758: Error: junk at end of line, first unrecognized character is `%' {standard input}:799: Error: junk at end of line, first unrecognized character is `%' {standard input}:800: Error: junk at end of line, first unrecognized character is `%' {standard input}:801: Error: junk at end of line, first unrecognized character is `%' {standard input}:989: Error: junk at end of line, first unrecognized character is `%' {standard input}:990: Error: junk at end of line, first unrecognized character is `%' {standard input}:991: Error: junk at end of line, first unrecognized character is `%' -- {standard input}: Assembler messages: >> {standard input}:118: Error: junk at end of line, first unrecognized character is `%' {standard input}:119: Error: junk at end of line, first unrecognized character is `%' {standard input}:120: Error: junk at end of line, first unrecognized character is `%' {standard input}:146: Error: junk at end of line, first unrecognized character is `%' {standard input}:147: Error: junk at end of line, first unrecognized character is `%' {standard input}:148: Error: junk at end of line, first unrecognized character is `%' {standard input}:200: Error: junk at end of line, first unrecognized character is `%' {standard input}:201: Error: junk at end of line, first unrecognized character is `%' {standard input}:202: Error: junk at end of line, first unrecognized character is `%' {standard input}:288: Error: junk at end of line, first unrecognized character is `%' {standard input}:289: Error: junk at end of line, first unrecognized character is `%' {standard input}:290: Error: junk at end of line, first unrecognized character is `%' {standard input}:328: Error: junk at end of line, first unrecognized character is `%' {standard input}:329: Error: junk at end of line, first unrecognized character is `%' {standard input}:330: Error: junk at end of line, first unrecognized character is `%' {standard input}:395: Error: junk at end of line, first unrecognized character is `%' {standard input}:396: Error: junk at end of line, first unrecognized character is `%' {standard input}:397: Error: junk at end of line, first unrecognized character is `%' {standard input}:439: Error: junk at end of line, first unrecognized character is `%' {standard input}:440: Error: junk at end of line, first unrecognized character is `%' {standard input}:441: Error: junk at end of line, first unrecognized character is `%' {standard input}:497: Error: junk at end of line, first unrecognized character is `%' {standard input}:498: Error: junk at end of line, first unrecognized character is `%' {standard input}:499: Error: junk at end of line, first unrecognized character is `%' {standard input}:773: Error: junk at end of line, first unrecognized character is `%' {standard input}:774: Error: junk at end of line, first unrecognized character is `%' {standard input}:775: Error: junk at end of line, first unrecognized character is `%' {standard input}:823: Error: junk at end of line, first unrecognized character is `%' {standard input}:824: Error: junk at end of line, first unrecognized character is `%' {standard input}:825: Error: junk at end of line, first unrecognized character is `%' {standard input}:1384: Error: junk at end of line, first unrecognized character is `%' {standard input}:1385: Error: junk at end of line, first unrecognized character is `%' {standard input}:1386: Error: junk at end of line, first unrecognized character is `%' {standard input}:1432: Error: junk at end of line, first unrecognized character is `%' {standard input}:1433: Error: junk at end of line, first unrecognized character is `%' {standard input}:1434: Error: junk at end of line, first unrecognized character is `%' {standard input}:1650: Error: junk at end of line, first unrecognized character is `%' {standard input}:1651: Error: junk at end of line, first unrecognized character is `%' {standard input}:1652: Error: junk at end of line, first unrecognized character is `%' {standard input}:1717: Error: junk at end of line, first unrecognized character is `%' {standard input}:1718: Error: junk at end of line, first unrecognized character is `%' {standard input}:1719: Error: junk at end of line, first unrecognized character is `%' {standard input}:1773: Error: junk at end of line, first unrecognized character is `%' {standard input}:1774: Error: junk at end of line, first unrecognized character is `%' {standard input}:1775: Error: junk at end of line, first unrecognized character is `%' {standard input}:1818: Error: junk at end of line, first unrecognized character is `%' {standard input}:1819: Error: junk at end of line, first unrecognized character is `%' {standard input}:1820: Error: junk at end of line, first unrecognized character is `%' {standard input}:1919: Error: junk at end of line, first unrecognized character is `%' {standard input}:1920: Error: junk at end of line, first unrecognized character is `%' {standard input}:1921: Error: junk at end of line, first unrecognized character is `%' {standard input}:2107: Error: junk at end of line, first unrecognized character is `%' {standard input}:2108: Error: junk at end of line, first unrecognized character is `%' {standard input}:2109: Error: junk at end of line, first unrecognized character is `%' {standard input}:2169: Error: junk at end of line, first unrecognized character is `%' {standard input}:2170: Error: junk at end of line, first unrecognized character is `%' {standard input}:2171: Error: junk at end of line, first unrecognized character is `%' {standard input}:2417: Error: junk at end of line, first unrecognized character is `%' {standard input}:2418: Error: junk at end of line, first unrecognized character is `%' {standard input}:2419: Error: junk at end of line, first unrecognized character is `%' {standard input}:2555: Error: junk at end of line, first unrecognized character is `%' {standard input}:2556: Error: junk at end of line, first unrecognized character is `%' {standard input}:2557: Error: junk at end of line, first unrecognized character is `%' {standard input}:2686: Error: junk at end of line, first unrecognized character is `%' {standard input}:2687: Error: junk at end of line, first unrecognized character is `%' {standard input}:2688: Error: junk at end of line, first unrecognized character is `%' {standard input}:3101: Error: junk at end of line, first unrecognized character is `%' {standard input}:3102: Error: junk at end of line, first unrecognized character is `%' {standard input}:3103: Error: junk at end of line, first unrecognized character is `%' -- {standard input}: Assembler messages: {standard input}:117: Error: junk at end of line, first unrecognized character is `%' >> {standard input}:118: Error: junk at end of line, first unrecognized character is `%' {standard input}:119: Error: junk at end of line, first unrecognized character is `%' {standard input}:147: Error: junk at end of line, first unrecognized character is `%' {standard input}:148: Error: junk at end of line, first unrecognized character is `%' {standard input}:149: Error: junk at end of line, first unrecognized character is `%' {standard input}:193: Error: junk at end of line, first unrecognized character is `%' {standard input}:194: Error: junk at end of line, first unrecognized character is `%' {standard input}:195: Error: junk at end of line, first unrecognized character is `%' {standard input}:254: Error: junk at end of line, first unrecognized character is `%' {standard input}:255: Error: junk at end of line, first unrecognized character is `%' {standard input}:256: Error: junk at end of line, first unrecognized character is `%' {standard input}:328: Error: junk at end of line, first unrecognized character is `%' {standard input}:329: Error: junk at end of line, first unrecognized character is `%' {standard input}:330: Error: junk at end of line, first unrecognized character is `%' {standard input}:368: Error: junk at end of line, first unrecognized character is `%' {standard input}:369: Error: junk at end of line, first unrecognized character is `%' {standard input}:370: Error: junk at end of line, first unrecognized character is `%' {standard input}:418: Error: junk at end of line, first unrecognized character is `%' {standard input}:419: Error: junk at end of line, first unrecognized character is `%' {standard input}:420: Error: junk at end of line, first unrecognized character is `%' {standard input}:527: Error: junk at end of line, first unrecognized character is `%' {standard input}:528: Error: junk at end of line, first unrecognized character is `%' {standard input}:529: Error: junk at end of line, first unrecognized character is `%' {standard input}:619: Error: junk at end of line, first unrecognized character is `%' {standard input}:620: Error: junk at end of line, first unrecognized character is `%' {standard input}:621: Error: junk at end of line, first unrecognized character is `%' {standard input}:671: Error: junk at end of line, first unrecognized character is `%' {standard input}:672: Error: junk at end of line, first unrecognized character is `%' {standard input}:673: Error: junk at end of line, first unrecognized character is `%' {standard input}:977: Error: junk at end of line, first unrecognized character is `%' {standard input}:978: Error: junk at end of line, first unrecognized character is `%' {standard input}:979: Error: junk at end of line, first unrecognized character is `%' {standard input}:1059: Error: junk at end of line, first unrecognized character is `%' {standard input}:1060: Error: junk at end of line, first unrecognized character is `%' {standard input}:1061: Error: junk at end of line, first unrecognized character is `%' {standard input}:1168: Error: junk at end of line, first unrecognized character is `%' {standard input}:1169: Error: junk at end of line, first unrecognized character is `%' {standard input}:1170: Error: junk at end of line, first unrecognized character is `%' {standard input}:1201: Error: junk at end of line, first unrecognized character is `%' {standard input}:1202: Error: junk at end of line, first unrecognized character is `%' {standard input}:1203: Error: junk at end of line, first unrecognized character is `%' {standard input}:1244: Error: junk at end of line, first unrecognized character is `%' {standard input}:1245: Error: junk at end of line, first unrecognized character is `%' {standard input}:1246: Error: junk at end of line, first unrecognized character is `%' {standard input}:1375: Error: junk at end of line, first unrecognized character is `%' {standard input}:1376: Error: junk at end of line, first unrecognized character is `%' {standard input}:1377: Error: junk at end of line, first unrecognized character is `%' {standard input}:1669: Error: junk at end of line, first unrecognized character is `%' {standard input}:1670: Error: junk at end of line, first unrecognized character is `%' {standard input}:1671: Error: junk at end of line, first unrecognized character is `%' {standard input}:1821: Error: junk at end of line, first unrecognized character is `%' {standard input}:1822: Error: junk at end of line, first unrecognized character is `%' {standard input}:1823: Error: junk at end of line, first unrecognized character is `%' {standard input}:1962: Error: junk at end of line, first unrecognized character is `%' {standard input}:1963: Error: junk at end of line, first unrecognized character is `%' {standard input}:1964: Error: junk at end of line, first unrecognized character is `%' -- {standard input}: Assembler messages: {standard input}:117: Error: junk at end of line, first unrecognized character is `%' >> {standard input}:118: Error: junk at end of line, first unrecognized character is `%' {standard input}:119: Error: junk at end of line, first unrecognized character is `%' {standard input}:143: Error: junk at end of line, first unrecognized character is `%' {standard input}:144: Error: junk at end of line, first unrecognized character is `%' {standard input}:145: Error: junk at end of line, first unrecognized character is `%' {standard input}:205: Error: junk at end of line, first unrecognized character is `%' {standard input}:206: Error: junk at end of line, first unrecognized character is `%' {standard input}:207: Error: junk at end of line, first unrecognized character is `%' {standard input}:230: Error: junk at end of line, first unrecognized character is `%' {standard input}:231: Error: junk at end of line, first unrecognized character is `%' {standard input}:232: Error: junk at end of line, first unrecognized character is `%' {standard input}:255: Error: junk at end of line, first unrecognized character is `%' {standard input}:256: Error: junk at end of line, first unrecognized character is `%' {standard input}:257: Error: junk at end of line, first unrecognized character is `%' {standard input}:285: Error: junk at end of line, first unrecognized character is `%' {standard input}:286: Error: junk at end of line, first unrecognized character is `%' {standard input}:287: Error: junk at end of line, first unrecognized character is `%' {standard input}:315: Error: junk at end of line, first unrecognized character is `%' {standard input}:316: Error: junk at end of line, first unrecognized character is `%' {standard input}:317: Error: junk at end of line, first unrecognized character is `%' {standard input}:381: Error: junk at end of line, first unrecognized character is `%' {standard input}:382: Error: junk at end of line, first unrecognized character is `%' {standard input}:383: Error: junk at end of line, first unrecognized character is `%' {standard input}:457: Error: junk at end of line, first unrecognized character is `%' {standard input}:458: Error: junk at end of line, first unrecognized character is `%' {standard input}:459: Error: junk at end of line, first unrecognized character is `%' {standard input}:525: Error: junk at end of line, first unrecognized character is `%' {standard input}:526: Error: junk at end of line, first unrecognized character is `%' {standard input}:527: Error: junk at end of line, first unrecognized character is `%' {standard input}:630: Error: junk at end of line, first unrecognized character is `%' {standard input}:631: Error: junk at end of line, first unrecognized character is `%' {standard input}:632: Error: junk at end of line, first unrecognized character is `%' {standard input}:655: Error: junk at end of line, first unrecognized character is `%' {standard input}:656: Error: junk at end of line, first unrecognized character is `%' {standard input}:657: Error: junk at end of line, first unrecognized character is `%' {standard input}:690: Error: junk at end of line, first unrecognized character is `%' {standard input}:691: Error: junk at end of line, first unrecognized character is `%' {standard input}:692: Error: junk at end of line, first unrecognized character is `%' {standard input}:767: Error: junk at end of line, first unrecognized character is `%' {standard input}:768: Error: junk at end of line, first unrecognized character is `%' {standard input}:769: Error: junk at end of line, first unrecognized character is `%' {standard input}:888: Error: junk at end of line, first unrecognized character is `%' {standard input}:889: Error: junk at end of line, first unrecognized character is `%' {standard input}:890: Error: junk at end of line, first unrecognized character is `%' {standard input}:1014: Error: junk at end of line, first unrecognized character is `%' {standard input}:1015: Error: junk at end of line, first unrecognized character is `%' {standard input}:1016: Error: junk at end of line, first unrecognized character is `%' {standard input}:1225: Error: junk at end of line, first unrecognized character is `%' {standard input}:1226: Error: junk at end of line, first unrecognized character is `%' {standard input}:1227: Error: junk at end of line, first unrecognized character is `%' {standard input}:1256: Error: junk at end of line, first unrecognized character is `%' {standard input}:1257: Error: junk at end of line, first unrecognized character is `%' {standard input}:1258: Error: junk at end of line, first unrecognized character is `%' {standard input}:1342: Error: junk at end of line, first unrecognized character is `%' {standard input}:1343: Error: junk at end of line, first unrecognized character is `%' {standard input}:1344: Error: junk at end of line, first unrecognized character is `%' {standard input}:1446: Error: junk at end of line, first unrecognized character is `%' {standard input}:1447: Error: junk at end of line, first unrecognized character is `%' {standard input}:1448: Error: junk at end of line, first unrecognized character is `%' {standard input}:1481: Error: junk at end of line, first unrecognized character is `%' {standard input}:1482: Error: junk at end of line, first unrecognized character is `%' {standard input}:1483: Error: junk at end of line, first unrecognized character is `%' {standard input}:1516: Error: junk at end of line, first unrecognized character is `%' {standard input}:1517: Error: junk at end of line, first unrecognized character is `%' {standard input}:1518: Error: junk at end of line, first unrecognized character is `%' {standard input}:1551: Error: junk at end of line, first unrecognized character is `%' {standard input}:1552: Error: junk at end of line, first unrecognized character is `%' {standard input}:1553: Error: junk at end of line, first unrecognized character is `%' {standard input}:1591: Error: junk at end of line, first unrecognized character is `%' {standard input}:1592: Error: junk at end of line, first unrecognized character is `%' {standard input}:1593: Error: junk at end of line, first unrecognized character is `%' {standard input}:1674: Error: junk at end of line, first unrecognized character is `%' {standard input}:1675: Error: junk at end of line, first unrecognized character is `%' {standard input}:1676: Error: junk at end of line, first unrecognized character is `%' {standard input}:1703: Error: junk at end of line, first unrecognized character is `%' {standard input}:1704: Error: junk at end of line, first unrecognized character is `%' {standard input}:1705: Error: junk at end of line, first unrecognized character is `%' {standard input}:1782: Error: junk at end of line, first unrecognized character is `%' {standard input}:1783: Error: junk at end of line, first unrecognized character is `%' {standard input}:1784: Error: junk at end of line, first unrecognized character is `%' {standard input}:1830: Error: junk at end of line, first unrecognized character is `%' {standard input}:1831: Error: junk at end of line, first unrecognized character is `%' {standard input}:1832: Error: junk at end of line, first unrecognized character is `%' {standard input}:1855: Error: junk at end of line, first unrecognized character is `%' {standard input}:1856: Error: junk at end of line, first unrecognized character is `%' {standard input}:1857: Error: junk at end of line, first unrecognized character is `%' {standard input}:1932: Error: junk at end of line, first unrecognized character is `%' {standard input}:1933: Error: junk at end of line, first unrecognized character is `%' {standard input}:1934: Error: junk at end of line, first unrecognized character is `%' {standard input}:1979: Error: junk at end of line, first unrecognized character is `%' {standard input}:1980: Error: junk at end of line, first unrecognized character is `%' {standard input}:1981: Error: junk at end of line, first unrecognized character is `%' {standard input}:2042: Error: junk at end of line, first unrecognized character is `%' {standard input}:2043: Error: junk at end of line, first unrecognized character is `%' {standard input}:2044: Error: junk at end of line, first unrecognized character is `%' {standard input}:2093: Error: junk at end of line, first unrecognized character is `%' {standard input}:2094: Error: junk at end of line, first unrecognized character is `%' {standard input}:2095: Error: junk at end of line, first unrecognized character is `%' {standard input}:2118: Error: junk at end of line, first unrecognized character is `%' {standard input}:2119: Error: junk at end of line, first unrecognized character is `%' {standard input}:2120: Error: junk at end of line, first unrecognized character is `%' .. --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [-- Attachment #2: .config.gz --] [-- Type: application/gzip, Size: 33888 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 4/4] MIPS: add DYNAMIC_FTRACE_WITH_REGS @ 2021-03-07 10:50 ` kernel test robot 0 siblings, 0 replies; 7+ messages in thread From: kernel test robot @ 2021-03-07 10:50 UTC (permalink / raw) To: kbuild-all [-- Attachment #1: Type: text/plain, Size: 36913 bytes --] Hi Huang, Thank you for the patch! Yet something to improve: [auto build test ERROR on tip/perf/core] [also build test ERROR on linus/master hnaz-linux-mm/master v5.12-rc2 next-20210305] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Huang-Pei/MIPS-replace-pg-with-CC_FLAGS_FTRACE/20210307-115946 base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 8bcfdd7cad3dffdd340f9a79098cbf331eb2cd53 config: mips-randconfig-r003-20210307 (attached as .config) compiler: mips-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/32a9684a1c08df48b3dcf8402a201ae5b0244472 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Huang-Pei/MIPS-replace-pg-with-CC_FLAGS_FTRACE/20210307-115946 git checkout 32a9684a1c08df48b3dcf8402a201ae5b0244472 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>): {standard input}: Assembler messages: >> {standard input}:118: Error: junk at end of line, first unrecognized character is `%' {standard input}:119: Error: junk at end of line, first unrecognized character is `%' {standard input}:120: Error: junk at end of line, first unrecognized character is `%' {standard input}:146: Error: junk at end of line, first unrecognized character is `%' {standard input}:147: Error: junk at end of line, first unrecognized character is `%' {standard input}:148: Error: junk at end of line, first unrecognized character is `%' {standard input}:192: Error: junk at end of line, first unrecognized character is `%' {standard input}:193: Error: junk at end of line, first unrecognized character is `%' {standard input}:194: Error: junk at end of line, first unrecognized character is `%' {standard input}:245: Error: junk at end of line, first unrecognized character is `%' {standard input}:246: Error: junk at end of line, first unrecognized character is `%' {standard input}:247: Error: junk at end of line, first unrecognized character is `%' {standard input}:329: Error: junk at end of line, first unrecognized character is `%' {standard input}:330: Error: junk at end of line, first unrecognized character is `%' {standard input}:331: Error: junk at end of line, first unrecognized character is `%' {standard input}:357: Error: junk at end of line, first unrecognized character is `%' {standard input}:358: Error: junk at end of line, first unrecognized character is `%' {standard input}:359: Error: junk at end of line, first unrecognized character is `%' {standard input}:431: Error: junk at end of line, first unrecognized character is `%' {standard input}:432: Error: junk at end of line, first unrecognized character is `%' {standard input}:433: Error: junk at end of line, first unrecognized character is `%' {standard input}:539: Error: junk at end of line, first unrecognized character is `%' {standard input}:540: Error: junk at end of line, first unrecognized character is `%' {standard input}:541: Error: junk at end of line, first unrecognized character is `%' {standard input}:640: Error: junk at end of line, first unrecognized character is `%' {standard input}:641: Error: junk at end of line, first unrecognized character is `%' {standard input}:642: Error: junk at end of line, first unrecognized character is `%' {standard input}:733: Error: junk at end of line, first unrecognized character is `%' {standard input}:734: Error: junk at end of line, first unrecognized character is `%' {standard input}:735: Error: junk at end of line, first unrecognized character is `%' {standard input}:854: Error: junk at end of line, first unrecognized character is `%' {standard input}:855: Error: junk at end of line, first unrecognized character is `%' {standard input}:856: Error: junk at end of line, first unrecognized character is `%' {standard input}:898: Error: junk at end of line, first unrecognized character is `%' {standard input}:899: Error: junk at end of line, first unrecognized character is `%' {standard input}:900: Error: junk at end of line, first unrecognized character is `%' {standard input}:1159: Error: junk at end of line, first unrecognized character is `%' {standard input}:1160: Error: junk at end of line, first unrecognized character is `%' {standard input}:1161: Error: junk at end of line, first unrecognized character is `%' {standard input}:1415: Error: junk at end of line, first unrecognized character is `%' {standard input}:1416: Error: junk at end of line, first unrecognized character is `%' {standard input}:1417: Error: junk at end of line, first unrecognized character is `%' {standard input}:2114: Error: junk at end of line, first unrecognized character is `%' {standard input}:2115: Error: junk at end of line, first unrecognized character is `%' {standard input}:2116: Error: junk at end of line, first unrecognized character is `%' {standard input}:2416: Error: junk at end of line, first unrecognized character is `%' {standard input}:2417: Error: junk at end of line, first unrecognized character is `%' {standard input}:2418: Error: junk at end of line, first unrecognized character is `%' {standard input}:3109: Error: junk at end of line, first unrecognized character is `%' {standard input}:3110: Error: junk at end of line, first unrecognized character is `%' {standard input}:3111: Error: junk at end of line, first unrecognized character is `%' {standard input}:3318: Error: junk at end of line, first unrecognized character is `%' {standard input}:3319: Error: junk at end of line, first unrecognized character is `%' {standard input}:3320: Error: junk at end of line, first unrecognized character is `%' {standard input}:3655: Error: junk at end of line, first unrecognized character is `%' {standard input}:3656: Error: junk at end of line, first unrecognized character is `%' {standard input}:3657: Error: junk at end of line, first unrecognized character is `%' {standard input}:3690: Error: junk at end of line, first unrecognized character is `%' {standard input}:3691: Error: junk at end of line, first unrecognized character is `%' {standard input}:3692: Error: junk at end of line, first unrecognized character is `%' -- {standard input}: Assembler messages: {standard input}:117: Error: junk at end of line, first unrecognized character is `%' >> {standard input}:118: Error: junk at end of line, first unrecognized character is `%' {standard input}:119: Error: junk at end of line, first unrecognized character is `%' {standard input}:158: Error: junk at end of line, first unrecognized character is `%' {standard input}:159: Error: junk at end of line, first unrecognized character is `%' {standard input}:160: Error: junk at end of line, first unrecognized character is `%' {standard input}:187: Error: junk at end of line, first unrecognized character is `%' {standard input}:188: Error: junk at end of line, first unrecognized character is `%' {standard input}:189: Error: junk at end of line, first unrecognized character is `%' {standard input}:232: Error: junk at end of line, first unrecognized character is `%' {standard input}:233: Error: junk at end of line, first unrecognized character is `%' {standard input}:234: Error: junk at end of line, first unrecognized character is `%' {standard input}:260: Error: junk at end of line, first unrecognized character is `%' {standard input}:261: Error: junk at end of line, first unrecognized character is `%' {standard input}:262: Error: junk at end of line, first unrecognized character is `%' {standard input}:448: Error: junk at end of line, first unrecognized character is `%' {standard input}:449: Error: junk at end of line, first unrecognized character is `%' {standard input}:450: Error: junk at end of line, first unrecognized character is `%' {standard input}:496: Error: junk at end of line, first unrecognized character is `%' {standard input}:497: Error: junk at end of line, first unrecognized character is `%' {standard input}:498: Error: junk at end of line, first unrecognized character is `%' {standard input}:537: Error: junk at end of line, first unrecognized character is `%' {standard input}:538: Error: junk at end of line, first unrecognized character is `%' {standard input}:539: Error: junk at end of line, first unrecognized character is `%' {standard input}:565: Error: junk at end of line, first unrecognized character is `%' {standard input}:566: Error: junk at end of line, first unrecognized character is `%' {standard input}:567: Error: junk at end of line, first unrecognized character is `%' {standard input}:610: Error: junk at end of line, first unrecognized character is `%' {standard input}:611: Error: junk at end of line, first unrecognized character is `%' {standard input}:612: Error: junk at end of line, first unrecognized character is `%' {standard input}:782: Error: junk at end of line, first unrecognized character is `%' {standard input}:783: Error: junk at end of line, first unrecognized character is `%' {standard input}:784: Error: junk at end of line, first unrecognized character is `%' {standard input}:858: Error: junk at end of line, first unrecognized character is `%' {standard input}:859: Error: junk at end of line, first unrecognized character is `%' {standard input}:860: Error: junk at end of line, first unrecognized character is `%' {standard input}:977: Error: junk at end of line, first unrecognized character is `%' {standard input}:978: Error: junk at end of line, first unrecognized character is `%' {standard input}:979: Error: junk at end of line, first unrecognized character is `%' {standard input}:1048: Error: junk at end of line, first unrecognized character is `%' {standard input}:1049: Error: junk at end of line, first unrecognized character is `%' {standard input}:1050: Error: junk at end of line, first unrecognized character is `%' {standard input}:1121: Error: junk at end of line, first unrecognized character is `%' {standard input}:1122: Error: junk at end of line, first unrecognized character is `%' {standard input}:1123: Error: junk at end of line, first unrecognized character is `%' {standard input}:1175: Error: junk at end of line, first unrecognized character is `%' {standard input}:1176: Error: junk at end of line, first unrecognized character is `%' {standard input}:1177: Error: junk at end of line, first unrecognized character is `%' {standard input}:1290: Error: junk at end of line, first unrecognized character is `%' {standard input}:1291: Error: junk at end of line, first unrecognized character is `%' {standard input}:1292: Error: junk at end of line, first unrecognized character is `%' {standard input}:1626: Error: junk at end of line, first unrecognized character is `%' {standard input}:1627: Error: junk at end of line, first unrecognized character is `%' {standard input}:1628: Error: junk at end of line, first unrecognized character is `%' {standard input}:1902: Error: junk at end of line, first unrecognized character is `%' {standard input}:1903: Error: junk at end of line, first unrecognized character is `%' {standard input}:1904: Error: junk at end of line, first unrecognized character is `%' {standard input}:2421: Error: junk at end of line, first unrecognized character is `%' {standard input}:2422: Error: junk at end of line, first unrecognized character is `%' {standard input}:2423: Error: junk at end of line, first unrecognized character is `%' {standard input}:2569: Error: junk at end of line, first unrecognized character is `%' {standard input}:2570: Error: junk at end of line, first unrecognized character is `%' {standard input}:2571: Error: junk at end of line, first unrecognized character is `%' {standard input}:2916: Error: junk at end of line, first unrecognized character is `%' {standard input}:2917: Error: junk at end of line, first unrecognized character is `%' {standard input}:2918: Error: junk at end of line, first unrecognized character is `%' {standard input}:2951: Error: junk at end of line, first unrecognized character is `%' {standard input}:2952: Error: junk at end of line, first unrecognized character is `%' {standard input}:2953: Error: junk at end of line, first unrecognized character is `%' -- drivers/net/ethernet/hisilicon/hns_mdio.c:553:36: warning: 'hns_mdio_acpi_match' defined but not used [-Wunused-const-variable=] 553 | static const struct acpi_device_id hns_mdio_acpi_match[] = { | ^~~~~~~~~~~~~~~~~~~ {standard input}: Assembler messages: >> {standard input}:118: Error: junk at end of line, first unrecognized character is `%' {standard input}:119: Error: junk at end of line, first unrecognized character is `%' {standard input}:120: Error: junk at end of line, first unrecognized character is `%' {standard input}:146: Error: junk at end of line, first unrecognized character is `%' {standard input}:147: Error: junk at end of line, first unrecognized character is `%' {standard input}:148: Error: junk at end of line, first unrecognized character is `%' {standard input}:214: Error: junk at end of line, first unrecognized character is `%' {standard input}:215: Error: junk at end of line, first unrecognized character is `%' {standard input}:216: Error: junk at end of line, first unrecognized character is `%' {standard input}:461: Error: junk at end of line, first unrecognized character is `%' {standard input}:462: Error: junk at end of line, first unrecognized character is `%' {standard input}:463: Error: junk at end of line, first unrecognized character is `%' {standard input}:520: Error: junk at end of line, first unrecognized character is `%' {standard input}:521: Error: junk at end of line, first unrecognized character is `%' {standard input}:522: Error: junk at end of line, first unrecognized character is `%' {standard input}:627: Error: junk at end of line, first unrecognized character is `%' {standard input}:628: Error: junk at end of line, first unrecognized character is `%' {standard input}:629: Error: junk at end of line, first unrecognized character is `%' {standard input}:756: Error: junk at end of line, first unrecognized character is `%' {standard input}:757: Error: junk at end of line, first unrecognized character is `%' {standard input}:758: Error: junk at end of line, first unrecognized character is `%' {standard input}:799: Error: junk at end of line, first unrecognized character is `%' {standard input}:800: Error: junk at end of line, first unrecognized character is `%' {standard input}:801: Error: junk at end of line, first unrecognized character is `%' {standard input}:989: Error: junk at end of line, first unrecognized character is `%' {standard input}:990: Error: junk at end of line, first unrecognized character is `%' {standard input}:991: Error: junk at end of line, first unrecognized character is `%' -- {standard input}: Assembler messages: >> {standard input}:118: Error: junk at end of line, first unrecognized character is `%' {standard input}:119: Error: junk at end of line, first unrecognized character is `%' {standard input}:120: Error: junk at end of line, first unrecognized character is `%' {standard input}:146: Error: junk at end of line, first unrecognized character is `%' {standard input}:147: Error: junk at end of line, first unrecognized character is `%' {standard input}:148: Error: junk at end of line, first unrecognized character is `%' {standard input}:200: Error: junk at end of line, first unrecognized character is `%' {standard input}:201: Error: junk at end of line, first unrecognized character is `%' {standard input}:202: Error: junk at end of line, first unrecognized character is `%' {standard input}:288: Error: junk at end of line, first unrecognized character is `%' {standard input}:289: Error: junk at end of line, first unrecognized character is `%' {standard input}:290: Error: junk at end of line, first unrecognized character is `%' {standard input}:328: Error: junk at end of line, first unrecognized character is `%' {standard input}:329: Error: junk at end of line, first unrecognized character is `%' {standard input}:330: Error: junk at end of line, first unrecognized character is `%' {standard input}:395: Error: junk at end of line, first unrecognized character is `%' {standard input}:396: Error: junk at end of line, first unrecognized character is `%' {standard input}:397: Error: junk at end of line, first unrecognized character is `%' {standard input}:439: Error: junk at end of line, first unrecognized character is `%' {standard input}:440: Error: junk at end of line, first unrecognized character is `%' {standard input}:441: Error: junk at end of line, first unrecognized character is `%' {standard input}:497: Error: junk at end of line, first unrecognized character is `%' {standard input}:498: Error: junk at end of line, first unrecognized character is `%' {standard input}:499: Error: junk at end of line, first unrecognized character is `%' {standard input}:773: Error: junk at end of line, first unrecognized character is `%' {standard input}:774: Error: junk at end of line, first unrecognized character is `%' {standard input}:775: Error: junk at end of line, first unrecognized character is `%' {standard input}:823: Error: junk at end of line, first unrecognized character is `%' {standard input}:824: Error: junk at end of line, first unrecognized character is `%' {standard input}:825: Error: junk at end of line, first unrecognized character is `%' {standard input}:1384: Error: junk at end of line, first unrecognized character is `%' {standard input}:1385: Error: junk at end of line, first unrecognized character is `%' {standard input}:1386: Error: junk at end of line, first unrecognized character is `%' {standard input}:1432: Error: junk at end of line, first unrecognized character is `%' {standard input}:1433: Error: junk at end of line, first unrecognized character is `%' {standard input}:1434: Error: junk at end of line, first unrecognized character is `%' {standard input}:1650: Error: junk at end of line, first unrecognized character is `%' {standard input}:1651: Error: junk at end of line, first unrecognized character is `%' {standard input}:1652: Error: junk at end of line, first unrecognized character is `%' {standard input}:1717: Error: junk at end of line, first unrecognized character is `%' {standard input}:1718: Error: junk at end of line, first unrecognized character is `%' {standard input}:1719: Error: junk at end of line, first unrecognized character is `%' {standard input}:1773: Error: junk at end of line, first unrecognized character is `%' {standard input}:1774: Error: junk at end of line, first unrecognized character is `%' {standard input}:1775: Error: junk at end of line, first unrecognized character is `%' {standard input}:1818: Error: junk at end of line, first unrecognized character is `%' {standard input}:1819: Error: junk at end of line, first unrecognized character is `%' {standard input}:1820: Error: junk at end of line, first unrecognized character is `%' {standard input}:1919: Error: junk at end of line, first unrecognized character is `%' {standard input}:1920: Error: junk at end of line, first unrecognized character is `%' {standard input}:1921: Error: junk at end of line, first unrecognized character is `%' {standard input}:2107: Error: junk at end of line, first unrecognized character is `%' {standard input}:2108: Error: junk at end of line, first unrecognized character is `%' {standard input}:2109: Error: junk at end of line, first unrecognized character is `%' {standard input}:2169: Error: junk at end of line, first unrecognized character is `%' {standard input}:2170: Error: junk at end of line, first unrecognized character is `%' {standard input}:2171: Error: junk at end of line, first unrecognized character is `%' {standard input}:2417: Error: junk at end of line, first unrecognized character is `%' {standard input}:2418: Error: junk at end of line, first unrecognized character is `%' {standard input}:2419: Error: junk at end of line, first unrecognized character is `%' {standard input}:2555: Error: junk at end of line, first unrecognized character is `%' {standard input}:2556: Error: junk at end of line, first unrecognized character is `%' {standard input}:2557: Error: junk at end of line, first unrecognized character is `%' {standard input}:2686: Error: junk at end of line, first unrecognized character is `%' {standard input}:2687: Error: junk at end of line, first unrecognized character is `%' {standard input}:2688: Error: junk at end of line, first unrecognized character is `%' {standard input}:3101: Error: junk at end of line, first unrecognized character is `%' {standard input}:3102: Error: junk at end of line, first unrecognized character is `%' {standard input}:3103: Error: junk at end of line, first unrecognized character is `%' -- {standard input}: Assembler messages: {standard input}:117: Error: junk at end of line, first unrecognized character is `%' >> {standard input}:118: Error: junk at end of line, first unrecognized character is `%' {standard input}:119: Error: junk at end of line, first unrecognized character is `%' {standard input}:147: Error: junk at end of line, first unrecognized character is `%' {standard input}:148: Error: junk at end of line, first unrecognized character is `%' {standard input}:149: Error: junk at end of line, first unrecognized character is `%' {standard input}:193: Error: junk at end of line, first unrecognized character is `%' {standard input}:194: Error: junk at end of line, first unrecognized character is `%' {standard input}:195: Error: junk at end of line, first unrecognized character is `%' {standard input}:254: Error: junk at end of line, first unrecognized character is `%' {standard input}:255: Error: junk at end of line, first unrecognized character is `%' {standard input}:256: Error: junk at end of line, first unrecognized character is `%' {standard input}:328: Error: junk at end of line, first unrecognized character is `%' {standard input}:329: Error: junk at end of line, first unrecognized character is `%' {standard input}:330: Error: junk at end of line, first unrecognized character is `%' {standard input}:368: Error: junk at end of line, first unrecognized character is `%' {standard input}:369: Error: junk at end of line, first unrecognized character is `%' {standard input}:370: Error: junk at end of line, first unrecognized character is `%' {standard input}:418: Error: junk at end of line, first unrecognized character is `%' {standard input}:419: Error: junk at end of line, first unrecognized character is `%' {standard input}:420: Error: junk at end of line, first unrecognized character is `%' {standard input}:527: Error: junk at end of line, first unrecognized character is `%' {standard input}:528: Error: junk at end of line, first unrecognized character is `%' {standard input}:529: Error: junk at end of line, first unrecognized character is `%' {standard input}:619: Error: junk at end of line, first unrecognized character is `%' {standard input}:620: Error: junk at end of line, first unrecognized character is `%' {standard input}:621: Error: junk at end of line, first unrecognized character is `%' {standard input}:671: Error: junk at end of line, first unrecognized character is `%' {standard input}:672: Error: junk at end of line, first unrecognized character is `%' {standard input}:673: Error: junk at end of line, first unrecognized character is `%' {standard input}:977: Error: junk at end of line, first unrecognized character is `%' {standard input}:978: Error: junk at end of line, first unrecognized character is `%' {standard input}:979: Error: junk at end of line, first unrecognized character is `%' {standard input}:1059: Error: junk at end of line, first unrecognized character is `%' {standard input}:1060: Error: junk at end of line, first unrecognized character is `%' {standard input}:1061: Error: junk at end of line, first unrecognized character is `%' {standard input}:1168: Error: junk at end of line, first unrecognized character is `%' {standard input}:1169: Error: junk at end of line, first unrecognized character is `%' {standard input}:1170: Error: junk at end of line, first unrecognized character is `%' {standard input}:1201: Error: junk at end of line, first unrecognized character is `%' {standard input}:1202: Error: junk at end of line, first unrecognized character is `%' {standard input}:1203: Error: junk at end of line, first unrecognized character is `%' {standard input}:1244: Error: junk at end of line, first unrecognized character is `%' {standard input}:1245: Error: junk at end of line, first unrecognized character is `%' {standard input}:1246: Error: junk at end of line, first unrecognized character is `%' {standard input}:1375: Error: junk at end of line, first unrecognized character is `%' {standard input}:1376: Error: junk at end of line, first unrecognized character is `%' {standard input}:1377: Error: junk at end of line, first unrecognized character is `%' {standard input}:1669: Error: junk at end of line, first unrecognized character is `%' {standard input}:1670: Error: junk at end of line, first unrecognized character is `%' {standard input}:1671: Error: junk at end of line, first unrecognized character is `%' {standard input}:1821: Error: junk at end of line, first unrecognized character is `%' {standard input}:1822: Error: junk at end of line, first unrecognized character is `%' {standard input}:1823: Error: junk at end of line, first unrecognized character is `%' {standard input}:1962: Error: junk at end of line, first unrecognized character is `%' {standard input}:1963: Error: junk at end of line, first unrecognized character is `%' {standard input}:1964: Error: junk at end of line, first unrecognized character is `%' -- {standard input}: Assembler messages: {standard input}:117: Error: junk at end of line, first unrecognized character is `%' >> {standard input}:118: Error: junk at end of line, first unrecognized character is `%' {standard input}:119: Error: junk at end of line, first unrecognized character is `%' {standard input}:143: Error: junk at end of line, first unrecognized character is `%' {standard input}:144: Error: junk at end of line, first unrecognized character is `%' {standard input}:145: Error: junk at end of line, first unrecognized character is `%' {standard input}:205: Error: junk at end of line, first unrecognized character is `%' {standard input}:206: Error: junk at end of line, first unrecognized character is `%' {standard input}:207: Error: junk at end of line, first unrecognized character is `%' {standard input}:230: Error: junk at end of line, first unrecognized character is `%' {standard input}:231: Error: junk at end of line, first unrecognized character is `%' {standard input}:232: Error: junk at end of line, first unrecognized character is `%' {standard input}:255: Error: junk at end of line, first unrecognized character is `%' {standard input}:256: Error: junk at end of line, first unrecognized character is `%' {standard input}:257: Error: junk at end of line, first unrecognized character is `%' {standard input}:285: Error: junk at end of line, first unrecognized character is `%' {standard input}:286: Error: junk at end of line, first unrecognized character is `%' {standard input}:287: Error: junk at end of line, first unrecognized character is `%' {standard input}:315: Error: junk at end of line, first unrecognized character is `%' {standard input}:316: Error: junk at end of line, first unrecognized character is `%' {standard input}:317: Error: junk at end of line, first unrecognized character is `%' {standard input}:381: Error: junk at end of line, first unrecognized character is `%' {standard input}:382: Error: junk at end of line, first unrecognized character is `%' {standard input}:383: Error: junk at end of line, first unrecognized character is `%' {standard input}:457: Error: junk at end of line, first unrecognized character is `%' {standard input}:458: Error: junk at end of line, first unrecognized character is `%' {standard input}:459: Error: junk at end of line, first unrecognized character is `%' {standard input}:525: Error: junk at end of line, first unrecognized character is `%' {standard input}:526: Error: junk at end of line, first unrecognized character is `%' {standard input}:527: Error: junk at end of line, first unrecognized character is `%' {standard input}:630: Error: junk at end of line, first unrecognized character is `%' {standard input}:631: Error: junk at end of line, first unrecognized character is `%' {standard input}:632: Error: junk at end of line, first unrecognized character is `%' {standard input}:655: Error: junk at end of line, first unrecognized character is `%' {standard input}:656: Error: junk at end of line, first unrecognized character is `%' {standard input}:657: Error: junk at end of line, first unrecognized character is `%' {standard input}:690: Error: junk at end of line, first unrecognized character is `%' {standard input}:691: Error: junk at end of line, first unrecognized character is `%' {standard input}:692: Error: junk at end of line, first unrecognized character is `%' {standard input}:767: Error: junk at end of line, first unrecognized character is `%' {standard input}:768: Error: junk at end of line, first unrecognized character is `%' {standard input}:769: Error: junk at end of line, first unrecognized character is `%' {standard input}:888: Error: junk at end of line, first unrecognized character is `%' {standard input}:889: Error: junk at end of line, first unrecognized character is `%' {standard input}:890: Error: junk at end of line, first unrecognized character is `%' {standard input}:1014: Error: junk at end of line, first unrecognized character is `%' {standard input}:1015: Error: junk at end of line, first unrecognized character is `%' {standard input}:1016: Error: junk at end of line, first unrecognized character is `%' {standard input}:1225: Error: junk at end of line, first unrecognized character is `%' {standard input}:1226: Error: junk at end of line, first unrecognized character is `%' {standard input}:1227: Error: junk at end of line, first unrecognized character is `%' {standard input}:1256: Error: junk at end of line, first unrecognized character is `%' {standard input}:1257: Error: junk at end of line, first unrecognized character is `%' {standard input}:1258: Error: junk at end of line, first unrecognized character is `%' {standard input}:1342: Error: junk at end of line, first unrecognized character is `%' {standard input}:1343: Error: junk at end of line, first unrecognized character is `%' {standard input}:1344: Error: junk at end of line, first unrecognized character is `%' {standard input}:1446: Error: junk at end of line, first unrecognized character is `%' {standard input}:1447: Error: junk at end of line, first unrecognized character is `%' {standard input}:1448: Error: junk at end of line, first unrecognized character is `%' {standard input}:1481: Error: junk at end of line, first unrecognized character is `%' {standard input}:1482: Error: junk at end of line, first unrecognized character is `%' {standard input}:1483: Error: junk at end of line, first unrecognized character is `%' {standard input}:1516: Error: junk at end of line, first unrecognized character is `%' {standard input}:1517: Error: junk at end of line, first unrecognized character is `%' {standard input}:1518: Error: junk at end of line, first unrecognized character is `%' {standard input}:1551: Error: junk at end of line, first unrecognized character is `%' {standard input}:1552: Error: junk at end of line, first unrecognized character is `%' {standard input}:1553: Error: junk at end of line, first unrecognized character is `%' {standard input}:1591: Error: junk at end of line, first unrecognized character is `%' {standard input}:1592: Error: junk at end of line, first unrecognized character is `%' {standard input}:1593: Error: junk at end of line, first unrecognized character is `%' {standard input}:1674: Error: junk at end of line, first unrecognized character is `%' {standard input}:1675: Error: junk at end of line, first unrecognized character is `%' {standard input}:1676: Error: junk at end of line, first unrecognized character is `%' {standard input}:1703: Error: junk at end of line, first unrecognized character is `%' {standard input}:1704: Error: junk at end of line, first unrecognized character is `%' {standard input}:1705: Error: junk at end of line, first unrecognized character is `%' {standard input}:1782: Error: junk at end of line, first unrecognized character is `%' {standard input}:1783: Error: junk at end of line, first unrecognized character is `%' {standard input}:1784: Error: junk at end of line, first unrecognized character is `%' {standard input}:1830: Error: junk at end of line, first unrecognized character is `%' {standard input}:1831: Error: junk at end of line, first unrecognized character is `%' {standard input}:1832: Error: junk at end of line, first unrecognized character is `%' {standard input}:1855: Error: junk at end of line, first unrecognized character is `%' {standard input}:1856: Error: junk at end of line, first unrecognized character is `%' {standard input}:1857: Error: junk at end of line, first unrecognized character is `%' {standard input}:1932: Error: junk at end of line, first unrecognized character is `%' {standard input}:1933: Error: junk at end of line, first unrecognized character is `%' {standard input}:1934: Error: junk at end of line, first unrecognized character is `%' {standard input}:1979: Error: junk at end of line, first unrecognized character is `%' {standard input}:1980: Error: junk at end of line, first unrecognized character is `%' {standard input}:1981: Error: junk at end of line, first unrecognized character is `%' {standard input}:2042: Error: junk at end of line, first unrecognized character is `%' {standard input}:2043: Error: junk at end of line, first unrecognized character is `%' {standard input}:2044: Error: junk at end of line, first unrecognized character is `%' {standard input}:2093: Error: junk at end of line, first unrecognized character is `%' {standard input}:2094: Error: junk at end of line, first unrecognized character is `%' {standard input}:2095: Error: junk at end of line, first unrecognized character is `%' {standard input}:2118: Error: junk at end of line, first unrecognized character is `%' {standard input}:2119: Error: junk at end of line, first unrecognized character is `%' {standard input}:2120: Error: junk at end of line, first unrecognized character is `%' .. --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org [-- Attachment #2: config.gz --] [-- Type: application/gzip, Size: 33888 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2021-03-07 10:52 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-03-05 10:19 [RFC]: MIPS: new ftrace implementation Huang Pei 2021-03-05 10:19 ` [PATCH 1/4] MIPS: replace -pg with CC_FLAGS_FTRACE Huang Pei 2021-03-05 10:19 ` [PATCH 2/4] MIPS: move FTRACE_SYSCALLS from ftrace.c into syscall.c Huang Pei 2021-03-05 10:19 ` [PATCH 3/4] MIPS: prepare for new ftrace implementation Huang Pei 2021-03-05 10:19 ` [PATCH 4/4] MIPS: add DYNAMIC_FTRACE_WITH_REGS Huang Pei 2021-03-07 10:50 ` kernel test robot 2021-03-07 10:50 ` kernel test robot
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.