[GIT PULL] RISC-V Patches for the 6.16 Merge Window, Part 1

Alexandre Ghiti alex at ghiti.fr
Thu May 29 22:48:20 PDT 2025


On 5/29/25 17:26, Palmer Dabbelt wrote:
> 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...


That's because you somehow have this commit in your branch "RISC-V: 
vDSO: Wire up getrandom() vDSO implementation". I sent a fixed version 
of this patch in the second PR.

Thanks,

Alex


>>
>>
>> Thanks,
>>
>> Alex
>>
>>
>> _______________________________________________
>> linux-riscv mailing list
>> linux-riscv at lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-riscv
>
> _______________________________________________
> 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