[GIT PULL] RISC-V Patches for the 6.16 Merge Window, Part 1
Palmer Dabbelt
palmer at dabbelt.com
Thu May 29 08:26:19 PDT 2025
On Tue, 13 May 2025 12:49:26 PDT (-0700), alex at ghiti.fr wrote:
> Hi Palmer,
>
> On 09/05/2025 10:28, Alexandre Ghiti wrote:
>> The following changes since commit
>> 9c32cda43eb78f78c73aee4aa344b777714e259b:
>>
>> Linux 6.15-rc3 (2025-04-20 13:43:47 -0700)
>>
>> are available in the Git repository at:
>>
>> git://git.kernel.org/pub/scm/linux/kernel/git/alexghiti/linux
>> tags/riscv-mw1-6.16-rc1
>>
>> for you to fetch changes up to 135452d0c6114619fb954eaf9496210b5be0701d:
>>
>> riscv: Improve Kconfig help for RISCV_ISA_V_PREEMPTIVE (2025-05-09
>> 06:35:10 +0000)
>>
>> ----------------------------------------------------------------
>> riscv patches for 6.16-rc1
>>
>> * Implement atomic patching support for ftrace which finally allows to
>> get rid of stop_machine()
>> * Support for user_access_begin() to avoid toggling the SUM bit at
>> each userspace access, improving the performance of our user copies
>> * Support for kexec_file_load() syscall
>> * Improve module loading time by changing the algorithm that counts
>> the number of plt/got entries in a module
>> * Zicbop is now used in the kernel to prefetch instructions
>>
>> ----------------------------------------------------------------
>> Alexandre Ghiti (8):
>> riscv: Add support for PUD THP
>> Merge patch series "riscv: uaccess: optimisations"
>> riscv: Introduce Zicbop instructions
>> riscv: Add support for Zicbop
>> Merge patch series "riscv: ftrace: atmoic patching and preempt
>> improvements"
>> Merge patch series "riscv: kexec_file: Support loading Image
>> binary file"
>> riscv: hwprobe: export Zabha extension
>> Merge patch series "riscv: Add Zicbop & prefetchw support"
>>
>> Andy Chiu (11):
>> riscv: ftrace: support fastcc in Clang for WITH_ARGS
>> riscv: ftrace factor out code defined by !WITH_ARG
>> riscv: ftrace: align patchable functions to 4 Byte boundary
>> kernel: ftrace: export ftrace_sync_ipi
>> riscv: ftrace: prepare ftrace for atomic code patching
>> riscv: ftrace: do not use stop_machine to update code
>> riscv: vector: Support calling schedule() for preemptible Vector
>> riscv: add a data fence for CMODX in the kernel mode
>> riscv: ftrace: support PREEMPT
>> riscv: ftrace: support direct call using call_ops
>> riscv: Documentation: add a description about dynamic ftrace
>>
>> Atish Patra (1):
>> MAINTAINERS: Update Atish's email address
>>
>> Ben Dooks (1):
>> riscv: save the SR_SUM status over switches
>>
>> Guo Ren (2):
>> riscv: Add ARCH_HAS_PREFETCH[W] support with Zicbop
>> riscv: xchg: Prefetch the destination word for sc.w
>>
>> Haibo Xu (1):
>> perf symbols: Ignore mapping symbols on riscv
>>
>> Jisheng Zhang (4):
>> riscv: implement user_access_begin() and families
>> riscv: uaccess: use input constraints for ptr of __put_user()
>> riscv: uaccess: use 'asm goto' for put_user()
>> riscv: uaccess: use 'asm_goto_output' for get_user()
>>
>> Miquel Sabaté Solà (1):
>> riscv: Improve Kconfig help for RISCV_ISA_V_PREEMPTIVE
>>
>> Puranjay Mohan (1):
>> riscv: Implement HAVE_DYNAMIC_FTRACE_WITH_CALL_OPS
>>
>> Samuel Holland (1):
>> riscv: module: Optimize PLT/GOT entry counting
>>
>> Song Shuai (2):
>> riscv: kexec_file: Split the loading of kernel and others
>> riscv: kexec_file: Support loading Image binary file
>>
>> Tiezhu Yang (1):
>> riscv: Make regs_irqs_disabled() more clear
>>
>> Yao Zi (1):
>> riscv/kexec_file: Fix comment in purgatory relocator
>>
>> 谢致邦 (XIE Zhibang) (1):
>> RISC-V: Kconfig: Fix help text of CMDLINE_EXTEND
>>
>> .mailmap | 3 +-
>> Documentation/arch/riscv/cmodx.rst | 46 +++-
>> Documentation/arch/riscv/hwprobe.rst | 4 +
>> MAINTAINERS | 4 +-
>> arch/riscv/Kconfig | 36 ++-
>> arch/riscv/Makefile | 4 +-
>> arch/riscv/include/asm/barrier.h | 5 -
>> arch/riscv/include/asm/cacheflush.h | 1 +
>> arch/riscv/include/asm/cmpxchg.h | 4 +-
>> arch/riscv/include/asm/ftrace.h | 62 ++---
>> arch/riscv/include/asm/hwcap.h | 1 +
>> arch/riscv/include/asm/image.h | 2 +
>> arch/riscv/include/asm/insn-def.h | 66 ++++++
>> arch/riscv/include/asm/kexec.h | 6 +
>> arch/riscv/include/asm/pgtable-64.h | 5 +-
>> arch/riscv/include/asm/pgtable.h | 97 ++++++++
>> arch/riscv/include/asm/processor.h | 31 ++-
>> arch/riscv/include/asm/ptrace.h | 2 +-
>> arch/riscv/include/asm/tlbflush.h | 2 +
>> arch/riscv/include/asm/uaccess.h | 218 ++++++++++++-----
>> arch/riscv/include/asm/vector.h | 22 +-
>> arch/riscv/include/uapi/asm/hwprobe.h | 1 +
>> arch/riscv/kernel/Makefile | 2 +-
>> arch/riscv/kernel/asm-offsets.c | 18 ++
>> arch/riscv/kernel/cpufeature.c | 21 ++
>> arch/riscv/kernel/elf_kexec.c | 485
>> --------------------------------------
>> arch/riscv/kernel/entry.S | 8 +
>> arch/riscv/kernel/ftrace.c | 242 ++++++++++---------
>> arch/riscv/kernel/kexec_elf.c | 144 +++++++++++
>> arch/riscv/kernel/kexec_image.c | 96 ++++++++
>> arch/riscv/kernel/machine_kexec_file.c | 361
>> ++++++++++++++++++++++++++++
>> arch/riscv/kernel/mcount-dyn.S | 117 +++++----
>> arch/riscv/kernel/module-sections.c | 81 +++++--
>> arch/riscv/kernel/sys_hwprobe.c | 1 +
>> arch/riscv/mm/cacheflush.c | 29 ++-
>> arch/riscv/mm/pgtable.c | 10 +
>> arch/riscv/mm/tlbflush.c | 7 +
>> include/linux/ftrace.h | 2 +
>> kernel/trace/ftrace.c | 2 +-
>> tools/perf/util/symbol-elf.c | 6 +
>> 40 files changed, 1470 insertions(+), 784 deletions(-)
>> delete mode 100644 arch/riscv/kernel/elf_kexec.c
>> create mode 100644 arch/riscv/kernel/kexec_elf.c
>> create mode 100644 arch/riscv/kernel/kexec_image.c
>>
>>
>> _______________________________________________
>> linux-riscv mailing list
>> linux-riscv at lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-riscv
>
>
> kernel test robot reported warnings
> (https://lore.kernel.org/oe-kbuild-all/202505122357.aPWWHCbX-lkp@intel.com/)
> that the following diff fixes, can you squash that into commit ("riscv:
> uaccess: use 'asm_goto_output' for get_user()")?
>
> diff --git a/arch/riscv/include/asm/uaccess.h
> b/arch/riscv/include/asm/uaccess.h
> index 87d01168f80af..76c278dd2439f 100644
> --- a/arch/riscv/include/asm/uaccess.h
> +++ b/arch/riscv/include/asm/uaccess.h
> @@ -127,6 +127,7 @@ do { \
>
> #ifdef CONFIG_CC_HAS_ASM_GOTO_OUTPUT
> #define __get_user_8(x, ptr, label) \
> +do { \
> u32 __user *__ptr = (u32 __user *)(ptr); \
> u32 __lo, __hi; \
> asm_goto_output( \
> @@ -141,7 +142,7 @@ do { \
> : : label); \
> (x) = (__typeof__(x))((__typeof__((x) - (x)))( \
> (((u64)__hi << 32) | __lo))); \
> -
> +} while (0)
> #else /* !CONFIG_CC_HAS_ASM_GOTO_OUTPUT */
> #define __get_user_8(x, ptr, label) \
> do { \
I did, but I'm getting a PLT in my VDSO. A rebase is pointing to my
merge, so not sure if I just screwed something up with the "git rebase
-ir" or if something else is broken...
>
>
> Thanks,
>
> Alex
>
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
More information about the linux-riscv
mailing list