Messages in this thread | | | From | Vitaly Wool <> | Date | Mon, 24 May 2021 21:32:38 +0200 | Subject | Re: [PATCH] riscv: code patching only works on !XIP_KERNEL |
| |
On Sat, May 22, 2021 at 7:15 PM Palmer Dabbelt <palmer@dabbelt.com> wrote: > > On Mon, 10 May 2021 11:19:30 PDT (-0700), vitaly.wool@konsulko.com wrote: > > On Mon, May 10, 2021 at 6:35 PM Jisheng Zhang <jszhang3@mail.ustc.edu.cn> wrote: > >> > >> From: Jisheng Zhang <jszhang@kernel.org> > >> > >> Some features which need code patching such as KPROBES, DYNAMIC_FTRACE > >> KGDB can only work on !XIP_KERNEL. Add dependencies for these features > >> that rely on code patching. > > > > Since we can define extra RW sections to place some tiny code bits in > > RAM, I would suggest that you hold back this patch for a while. > > I am not going to support the idea of e. g. compiling KGDB support > > into a XIP kernel, but disabling the whole HAVE_ARCH_JUMP_LABEL is > > hardly the way to go. > > Do you have any updates on this? The SOC_SIFIVE disable thread floated > back to the top of my inbox and I didn't see anything there. I'd prefer > to avoid chasing around Kconfig disables for a bunch of stuff that we're > just going to fix soon, but if this is going to be a big change then > it's likely for next cycle anyway so in that case I'll start picking up > these compile disable patches.
Sorry, was caught up in fixing other stuff but now I'm on it so expect some updates soon.
Best regards, Vitaly
> Not trying to rush any thing here, just don't want to have a bunch of > broken configs. > > > > > Best regards, > > Vitaly > > > >> Signed-off-by: Jisheng Zhang <jszhang@kernel.org> > >> --- > >> Hi, > >> > >> Currently, the RISCV_ERRATA_ALTERNATIVE also only works on !XIP_KERNEL > >> but from the maillist it seem there's effort to make the co-exist, so > >> I drop RISCV_ERRATA_ALTERNATIVE dependency on !XIP_KERNEL. > >> > >> Thanks > >> > >> arch/riscv/Kconfig | 18 +++++++++--------- > >> 1 file changed, 9 insertions(+), 9 deletions(-) > >> > >> diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > >> index a8ad8eb76120..61320b94ef97 100644 > >> --- a/arch/riscv/Kconfig > >> +++ b/arch/riscv/Kconfig > >> @@ -60,11 +60,11 @@ config RISCV > >> select GENERIC_TIME_VSYSCALL if MMU && 64BIT > >> select HANDLE_DOMAIN_IRQ > >> select HAVE_ARCH_AUDITSYSCALL > >> - select HAVE_ARCH_JUMP_LABEL > >> - select HAVE_ARCH_JUMP_LABEL_RELATIVE > >> + select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL > >> + select HAVE_ARCH_JUMP_LABEL_RELATIVE if !XIP_KERNEL > >> select HAVE_ARCH_KASAN if MMU && 64BIT > >> select HAVE_ARCH_KASAN_VMALLOC if MMU && 64BIT > >> - select HAVE_ARCH_KGDB > >> + select HAVE_ARCH_KGDB if !XIP_KERNEL > >> select HAVE_ARCH_KGDB_QXFER_PKT > >> select HAVE_ARCH_MMAP_RND_BITS if MMU > >> select HAVE_ARCH_SECCOMP_FILTER > >> @@ -79,9 +79,9 @@ config RISCV > >> select HAVE_GCC_PLUGINS > >> select HAVE_GENERIC_VDSO if MMU && 64BIT > >> select HAVE_IRQ_TIME_ACCOUNTING > >> - select HAVE_KPROBES > >> - select HAVE_KPROBES_ON_FTRACE > >> - select HAVE_KRETPROBES > >> + select HAVE_KPROBES if !XIP_KERNEL > >> + select HAVE_KPROBES_ON_FTRACE if !XIP_KERNEL > >> + select HAVE_KRETPROBES if !XIP_KERNEL > >> select HAVE_PCI > >> select HAVE_PERF_EVENTS > >> select HAVE_PERF_REGS > >> @@ -230,11 +230,11 @@ config ARCH_RV64I > >> bool "RV64I" > >> select 64BIT > >> select ARCH_SUPPORTS_INT128 if CC_HAS_INT128 && GCC_VERSION >= 50000 > >> - select HAVE_DYNAMIC_FTRACE if MMU && $(cc-option,-fpatchable-function-entry=8) > >> + select HAVE_DYNAMIC_FTRACE if !XIP_KERNEL && MMU && $(cc-option,-fpatchable-function-entry=8) > >> select HAVE_DYNAMIC_FTRACE_WITH_REGS if HAVE_DYNAMIC_FTRACE > >> - select HAVE_FTRACE_MCOUNT_RECORD > >> + select HAVE_FTRACE_MCOUNT_RECORD if !XIP_KERNEL > >> select HAVE_FUNCTION_GRAPH_TRACER > >> - select HAVE_FUNCTION_TRACER > >> + select HAVE_FUNCTION_TRACER if !XIP_KERNEL > >> select SWIOTLB if MMU > >> > >> endchoice > >> -- > >> 2.31.0 > >> > >> > >> > >> _______________________________________________ > >> linux-riscv mailing list > >> linux-riscv@lists.infradead.org > >> http://lists.infradead.org/mailman/listinfo/linux-riscv
| |