[RFC PR] RISC-V changes for 4.17
Palmer Dabbelt
palmer at sifive.com
Mon Apr 2 20:58:56 PDT 2018
Here's the PR I'm planning on submitting to Linus for the first half of the
4.17 merge window. Unless anyone knows of any problems I'll submit the PR on
Wednesday morning. I haven't given this a much testing as I probably should
have, so please go give things a shot!
I don't want to take any new code for Wednesday, but I'm planning on taking the
perf stuff for next week if some small issues iron themselves out.
Thanks to everyone for all the help!
The following changes since commit 0adb32858b0bddf4ada5f364a84ed60b196dbcda:
Linux 4.16 (2018-04-01 14:20:27 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/palmer/riscv-linux.git tags/riscv-for-linus-4.17-mw0
for you to fetch changes up to 7a8e7da42250138adf202ba2596ef7f68651060a:
RISC-V: Fixes to module loading (2018-04-02 20:43:14 -0700)
----------------------------------------------------------------
RISC-V changes for 4.17
This tag contains the new features we'd like to incorporate into the
RISC-V port for 4.17. We might have a bit more stuff land later in the
merge window, but I wanted to get this out earlier just so everyone can
see where we currently stand.
A short summary of the changes is:
* We've added support for dynamic ftrace on RISC-V targets.
* There have been a handful of cleanups to our atomic and locking
routines. They now more closely match the released RISC-V memory
model draft.
* Our module loading support has been cleaned up and is now enabled by
default, despite some limitations still existing.
There's more information in the merge commits for each patch set.
----------------------------------------------------------------
Alan Kao (6):
riscv/ftrace: Add RECORD_MCOUNT support
riscv/ftrace: Add dynamic function tracer support
riscv/ftrace: Add dynamic function graph tracer support
riscv/ftrace: Add ARCH_SUPPORTS_FTRACE_OPS support
riscv/ftrace: Add DYNAMIC_FTRACE_WITH_REGS support
riscv/ftrace: Add HAVE_FUNCTION_GRAPH_RET_ADDR_PTR support
Andrea Parri (3):
riscv/barrier: Define __smp_{store_release,load_acquire}
riscv/spinlock: Strengthen implementations with fences
riscv/atomic: Strengthen implementations with fences
Palmer Dabbelt (3):
RISC-V: Add dynamic ftrace support for RISC-V platforms
RISC-V: Assorted memory model fixes
RISC-V: Fixes to module loading
Zong Li (11):
RISC-V: Add sections of PLT and GOT for kernel module
RISC-V: Add section of GOT.PLT for kernel module
RISC-V: Support GOT_HI20/CALL_PLT relocation type in kernel module
RISC-V: Support CALL relocation type in kernel module
RISC-V: Support HI20/LO12_I/LO12_S relocation type in kernel module
RISC-V: Support RVC_BRANCH/JUMP relocation type in kernel modulewq
RISC-V: Support ALIGN relocation type in kernel module
RISC-V: Support ADD32 relocation type in kernel module
RISC-V: Support SUB32 relocation type in kernel module
RISC-V: Enable module support in defconfig
RISC-V: Add definition of relocation types
arch/riscv/Kconfig | 8 +
arch/riscv/Makefile | 8 +
arch/riscv/configs/defconfig | 2 +
arch/riscv/include/asm/atomic.h | 417 +++++++++++++++++++++++-------------
arch/riscv/include/asm/barrier.h | 15 ++
arch/riscv/include/asm/cmpxchg.h | 391 +++++++++++++++++++++++++++------
arch/riscv/include/asm/fence.h | 12 ++
arch/riscv/include/asm/ftrace.h | 56 +++++
arch/riscv/include/asm/module.h | 113 ++++++++++
arch/riscv/include/asm/spinlock.h | 29 +--
arch/riscv/include/uapi/asm/elf.h | 7 +
arch/riscv/kernel/Makefile | 6 +-
arch/riscv/kernel/ftrace.c | 175 ++++++++++++++-
arch/riscv/kernel/mcount-dyn.S | 239 +++++++++++++++++++++
arch/riscv/kernel/mcount.S | 22 +-
arch/riscv/kernel/module-sections.c | 156 ++++++++++++++
arch/riscv/kernel/module.c | 179 +++++++++++++++-
arch/riscv/kernel/module.lds | 8 +
arch/riscv/kernel/stacktrace.c | 6 +
scripts/recordmcount.pl | 5 +
20 files changed, 1601 insertions(+), 253 deletions(-)
create mode 100644 arch/riscv/include/asm/fence.h
create mode 100644 arch/riscv/include/asm/module.h
create mode 100644 arch/riscv/kernel/mcount-dyn.S
create mode 100644 arch/riscv/kernel/module-sections.c
create mode 100644 arch/riscv/kernel/module.lds
More information about the linux-riscv
mailing list