linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [GIT PULL] RISC-V Port for Linux 4.15 v9
@ 2017-11-13 21:56 Palmer Dabbelt
  2017-11-14  9:04 ` Arnd Bergmann
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Palmer Dabbelt @ 2017-11-13 21:56 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-kernel, patches, Arnd Bergmann, Olof Johansson

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 22910 bytes --]

The following changes since commit bebc6082da0a9f5d47a1ea2edc099bf671058bd4:

  Linux 4.14 (2017-11-12 10:46:13 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/palmer/linux.git tags/riscv-for-linus-4.15-arch-v9

for you to fetch changes up to 512d88db5ef3de56f392f761657c2ab2cadc0498:

  Merge tag 'v4.14' into for-linus (2017-11-13 13:17:51 -0800)

----------------------------------------------------------------
RISC-V Port for Linux 4.15 v9

This tag contains the core RISC-V Linux port, which has been through
nine rounds of review on various mailing lists.  The port is not
complete: there's some cleanup patches moving through the review
process, a whole bunch of drivers that need some work, and a lot of
feature additions that will be needed.

The patches contained in this tag have been through nine rounds of
review on the various mailing lists.  I have some outstanding cleanup
patches, but since there's been so much review on these patches I
thought it would be best to submit them as-is and then submit explicit
cleanup patches so everyone can review them.  This first patch set is
big enough that it's a bit of a pain to constantly rewrite, and it's
caused a few headaches with various contributors.

The port is definately a work in progress.  While what's there builds
and boots with 4.14, it's a bit hard to actually see anything happen
because there are no device drivers yet.  I maintain a staging branch
that contains all the device drivers and cleanup that actually works,
but those patches won't all be ready for a while.  I'd like to get what
we currently have into your tree so everyone can start working from a
single base -- of particular importance is allowing the glibc
upstreaming process to proceed so we can sort out any possibly lingering
user-visible ABI problems we might have.

Copied below is the ChangeLog that contains the history of this patch
set:

(v9) As per suggestions on our v8 patch set, I've split the core architecture code
out from our drivers and would like to submit this patch set to be included
into linux-next, with the goal being to be merged in during the next merge
window.  This patch set is based on 4.14-rc2, but if it's better to have it
based on something else then I can change it around.

This patch set contains just the core arch code for RISC-V, so while it builds
an nominally boots, you can't print or take an interrupt so it's not that
useful.  If you're looking to actually boot a system it would probably be
better to use the full patch set listed below.

We've collected a handful of tags from reviewers, and the remainder of the
patch set only got minimal feedback last time.  Here's what changed:

 * We now use the device tree to initialize the timer driver so it's less
   tighly coupled with the arch port.
 * I cleaned up the defconfigs -- there's actually now just one, and it's
   empty.  For now I think we're OK with what the kernel sets as defaults, but
   I anticipate we'll begin to expand this as people start to use the port
   more.
 * The VDSO symbols version is sane.
 * We WFI while spinning in the boot loop.
 * A handful of comments have been added.

While there are still a handful of FIXMEs in this patch set, we've started to
get enough interest from various users and contributors that maintaining an out
of tree patch set is starting to become a big burden.  Hopefully the patches
are good enough to merge now, which will at least get everyone working in a
more reasonable manner as we clean up the remaining issues.

This patch set is also availiable on github

  https://github.com/riscv/riscv-linux/tree/riscv-for-submission-v9-arch

as is the entire patch set necessary to get a more functional RISC-V system up
and running, including a handful of patches that aren't ready for upstream yet.

  https://github.com/riscv/riscv-linux/tree/riscv-for-submission-v9

Hopefully I've managed to get everyone's feedback

Here's the change highlights from the whole patch set:

(v8) I know it may not be the ideal time to submit a patch set right now, as
it's the middle of the merge window, but things have calmed down quite a bit in
the last month so I thought it would be good to get everyone on the same page.
There's been a handful of changes since the last patch set, but most of them
are fairly minor:

* We changed PAGE_OFFSET to allowing mapping more physical memory on 64-bit
  systems.  This is user configurable, as it triggers a different code model
  that generates slightly less efficient code.
* The device tree binding documentation is back, I'd managed to lose it at some
  point.
* We now pass the atomic64 test suite.  The SBI timer driver has been
* refactored.

(v7) It's been a while since my last patch set, but the changes han been fairly
minimal:

 * The PCI cleanup patches have been dropped, we'll do them as a separate patch
   set later.
 * We've the Kconfig entries from CONFIG_ISA_* to CONFIG_RISCV_ISA_*, to make
   grep easier.
 * There have been a handful of memory model related tweaks in I/O land,
   particularly relating the PCI and the upcoming platform specification.
   There are significant comments in the relevant files.  This is still a WIP,
   but I think we're close to getting as good as we're going to get until we
   end up with some more specifications.

(v6) As it's been only a day since the v5 patch set, the changes are pretty
minimal:

 * The patch set is now based on linux-next/master, which I believe is a better
   base now that we're getting closer to upstream.
 * EARLY_PRINTK is no longer an option.  Since the SBI console is reasonable,
   there's no penalty to enabling it (and thus no benefit to disabling it).
 * The mmap syscalls were refactored a bit.

(v5) Things have really started to calm down, so this is fairly similar to the
v4 patch set.  The most interesting changes include:

 * We've moved back to a single patch set.

 * SMP support has been fixed, I was accidentally running on a non-SMP
   configuration.  There were various mistakes all over the tree as a result of
   this.

 * The cmpxchg syscalls have been removed, as they were deemed a bad idea.  As
   a result, RISC-V Linux systems mandate the A extension.  The corresponding
   Kconfig entry to enable builds on non-A systems has been removed.

 * A few more atomic fixes: mostly fence changes, but those resulted in a
   handful of additional macros that were no longer necessary.

 * riscv_early_sie has been removed.

(v4) There have only been a few changes since the v3 patch set:

 * The cmpxchg64 syscall is no longer enabled on 32-bit systems.  It's not
   possible to provide this on SMP systems, and it's not necessary as glibc
   knows not to call it.

 * We provide a ELF_HWCAP so users can determine the ISA of the machine the
   kernel is running on.

 * The multi-line comments are in a better form.

 * There were a handful of headers that could be replaced with the asm-generic
   versions, and a few unnecessary definitions.

 * We no longer use printk, but instead use pr_*.

 * A few Kconfig and defconfig entries have been cleaned up.

(v3) A highlight of the changes since the v2 patch set includes:

 * We've split out all our drivers into separate patch sets, which I've already
   sent out to the relevant maintainers.  I haven't included those patches in
   this patch set, but some of them are necessary to build our port.  A git
   tree that contains all our patch sets merged together lives at
   <https://github.com/riscv/riscv-linux/tree/riscv-for-submission-v3>.

 * The patch set is now split up differently: rather than being split per
   directory it is split per topic.  Hopefully this will make it easier to
   review the port on the mailing list.  The split is a bit rough, so you
   probably still want to look at the patch set as a whole.

 * atomic.h has been completely rewritten and is hopefully now correct.  I've
   attempted to sanitize the various other memory model related code as well,
   and I think it should all be sane now aside from a handful of FIXMEs
   commented in the code.

 * We've changed the cmpexchg syscall to always exist and to not be
   multiplexed.  There is also a VDSO entry for compare and exchange, which
   allows kernels with the A extension to execute user code without the A
   extension reasonably fast.

 * Our user-visible register state now contains enough space for the Q
   extension for 128-bit floating point, as well as a few words to allow
   extensibility to future ISA extensions like the eventual V extension for
   vectors.

 * A handful of driver cleanups, but these have been split into separate patch
   sets now so I won't duplicate them here.

(v2) A highlight of the changes since the v1 patch set includes:

  * We've split out our drivers into the right places, which means now there's
    a lot more patches.  I'll be submitting these patches to various subsystem
    maintainers and including them in any future RISC-V patch sets until
    they've been merged.

  * The SBI console driver has been completely rewritten to use the HVC helpers
    and is now significantly smaller.

  * We've begun to use weaker barriers as opposed to just the big "fence".
    There's still some work to do here, specifically:
    - We need fences in the relaxed MMIO functions.
    - The non-relaxed MMIO functions are missing R/W bits on their fences.
    - Many AMOs need the aq and rl bits set.

  * We now have thread_info in task_struct.  As a result, sscratch now contains
    TP instead of SP.  This was necessary because thread_info is no longer on
    the stack.

  * A few shared routines have been added that we use instead of creating
    another arch copy.

----------------------------------------------------------------
Jonathan Neuschäfer (1):
      MAINTAINERS: Add RISC-V

Palmer Dabbelt (12):
      lib: Add shared copies of some GCC library routines
      dt-bindings: RISC-V CPU Bindings
      RISC-V: Init and Halt Code
      RISC-V: Atomic and Locking Code
      RISC-V: Generic library routines and assembly
      RISC-V: ELF and module implementation
      RISC-V: Task implementation
      RISC-V: Device, timer, IRQs, and the SBI
      RISC-V: Paging and MMU
      RISC-V: User-facing API
      RISC-V: Build Infrastructure
      Merge tag 'v4.14' into for-linus

 Documentation/devicetree/bindings/riscv/cpus.txt | 162 +++++++
 MAINTAINERS                                      |  10 +
 Makefile                                         |   3 +-
 arch/riscv/Kconfig                               | 310 ++++++++++++++
 arch/riscv/Makefile                              |  72 ++++
 arch/riscv/configs/defconfig                     |   0
 arch/riscv/include/asm/Kbuild                    |  61 +++
 arch/riscv/include/asm/asm-offsets.h             |   1 +
 arch/riscv/include/asm/asm.h                     |  76 ++++
 arch/riscv/include/asm/atomic.h                  | 375 +++++++++++++++++
 arch/riscv/include/asm/barrier.h                 |  68 +++
 arch/riscv/include/asm/bitops.h                  | 218 ++++++++++
 arch/riscv/include/asm/bug.h                     |  88 ++++
 arch/riscv/include/asm/cache.h                   |  22 +
 arch/riscv/include/asm/cacheflush.h              |  39 ++
 arch/riscv/include/asm/cmpxchg.h                 | 134 ++++++
 arch/riscv/include/asm/compat.h                  |  29 ++
 arch/riscv/include/asm/csr.h                     | 132 ++++++
 arch/riscv/include/asm/current.h                 |  45 ++
 arch/riscv/include/asm/delay.h                   |  28 ++
 arch/riscv/include/asm/dma-mapping.h             |  38 ++
 arch/riscv/include/asm/elf.h                     |  84 ++++
 arch/riscv/include/asm/hwcap.h                   |  37 ++
 arch/riscv/include/asm/io.h                      | 303 +++++++++++++
 arch/riscv/include/asm/irq.h                     |  28 ++
 arch/riscv/include/asm/irqflags.h                |  63 +++
 arch/riscv/include/asm/kprobes.h                 |  22 +
 arch/riscv/include/asm/linkage.h                 |  20 +
 arch/riscv/include/asm/mmu.h                     |  26 ++
 arch/riscv/include/asm/mmu_context.h             |  69 +++
 arch/riscv/include/asm/page.h                    | 130 ++++++
 arch/riscv/include/asm/pci.h                     |  48 +++
 arch/riscv/include/asm/pgalloc.h                 | 124 ++++++
 arch/riscv/include/asm/pgtable-32.h              |  25 ++
 arch/riscv/include/asm/pgtable-64.h              |  84 ++++
 arch/riscv/include/asm/pgtable-bits.h            |  48 +++
 arch/riscv/include/asm/pgtable.h                 | 430 +++++++++++++++++++
 arch/riscv/include/asm/processor.h               |  97 +++++
 arch/riscv/include/asm/ptrace.h                  | 118 ++++++
 arch/riscv/include/asm/sbi.h                     | 100 +++++
 arch/riscv/include/asm/smp.h                     |  52 +++
 arch/riscv/include/asm/spinlock.h                | 165 ++++++++
 arch/riscv/include/asm/spinlock_types.h          |  33 ++
 arch/riscv/include/asm/string.h                  |  26 ++
 arch/riscv/include/asm/switch_to.h               |  69 +++
 arch/riscv/include/asm/syscall.h                 | 102 +++++
 arch/riscv/include/asm/thread_info.h             |  94 +++++
 arch/riscv/include/asm/timex.h                   |  59 +++
 arch/riscv/include/asm/tlb.h                     |  24 ++
 arch/riscv/include/asm/tlbflush.h                |  64 +++
 arch/riscv/include/asm/uaccess.h                 | 513 +++++++++++++++++++++++
 arch/riscv/include/asm/unistd.h                  |  16 +
 arch/riscv/include/asm/vdso.h                    |  41 ++
 arch/riscv/include/asm/word-at-a-time.h          |  55 +++
 arch/riscv/include/uapi/asm/Kbuild               |  27 ++
 arch/riscv/include/uapi/asm/auxvec.h             |  24 ++
 arch/riscv/include/uapi/asm/bitsperlong.h        |  25 ++
 arch/riscv/include/uapi/asm/byteorder.h          |  23 +
 arch/riscv/include/uapi/asm/elf.h                |  83 ++++
 arch/riscv/include/uapi/asm/hwcap.h              |  36 ++
 arch/riscv/include/uapi/asm/ptrace.h             |  90 ++++
 arch/riscv/include/uapi/asm/sigcontext.h         |  30 ++
 arch/riscv/include/uapi/asm/siginfo.h            |  24 ++
 arch/riscv/include/uapi/asm/ucontext.h           |  45 ++
 arch/riscv/kernel/.gitignore                     |   1 +
 arch/riscv/kernel/Makefile                       |  33 ++
 arch/riscv/kernel/asm-offsets.c                  | 322 ++++++++++++++
 arch/riscv/kernel/cacheinfo.c                    | 105 +++++
 arch/riscv/kernel/cpu.c                          | 108 +++++
 arch/riscv/kernel/cpufeature.c                   |  61 +++
 arch/riscv/kernel/entry.S                        | 464 ++++++++++++++++++++
 arch/riscv/kernel/head.S                         | 157 +++++++
 arch/riscv/kernel/irq.c                          |  39 ++
 arch/riscv/kernel/module.c                       | 217 ++++++++++
 arch/riscv/kernel/process.c                      | 129 ++++++
 arch/riscv/kernel/ptrace.c                       | 125 ++++++
 arch/riscv/kernel/reset.c                        |  36 ++
 arch/riscv/kernel/riscv_ksyms.c                  |  15 +
 arch/riscv/kernel/setup.c                        | 257 ++++++++++++
 arch/riscv/kernel/signal.c                       | 292 +++++++++++++
 arch/riscv/kernel/smp.c                          | 110 +++++
 arch/riscv/kernel/smpboot.c                      | 114 +++++
 arch/riscv/kernel/stacktrace.c                   | 177 ++++++++
 arch/riscv/kernel/sys_riscv.c                    |  49 +++
 arch/riscv/kernel/syscall_table.c                |  25 ++
 arch/riscv/kernel/time.c                         |  61 +++
 arch/riscv/kernel/traps.c                        | 180 ++++++++
 arch/riscv/kernel/vdso.c                         | 125 ++++++
 arch/riscv/kernel/vdso/.gitignore                |   2 +
 arch/riscv/kernel/vdso/Makefile                  |  63 +++
 arch/riscv/kernel/vdso/rt_sigreturn.S            |  24 ++
 arch/riscv/kernel/vdso/vdso.S                    |  27 ++
 arch/riscv/kernel/vdso/vdso.lds.S                |  77 ++++
 arch/riscv/kernel/vmlinux.lds.S                  |  92 ++++
 arch/riscv/lib/Makefile                          |   6 +
 arch/riscv/lib/delay.c                           | 110 +++++
 arch/riscv/lib/memcpy.S                          | 115 +++++
 arch/riscv/lib/memset.S                          | 120 ++++++
 arch/riscv/lib/uaccess.S                         | 117 ++++++
 arch/riscv/lib/udivdi3.S                         |  38 ++
 arch/riscv/mm/Makefile                           |   4 +
 arch/riscv/mm/extable.c                          |  37 ++
 arch/riscv/mm/fault.c                            | 282 +++++++++++++
 arch/riscv/mm/init.c                             |  70 ++++
 arch/riscv/mm/ioremap.c                          |  92 ++++
 include/lib/libgcc.h                             |  43 ++
 lib/Kconfig                                      |  18 +
 lib/Makefile                                     |   8 +
 lib/ashldi3.c                                    |  44 ++
 lib/ashrdi3.c                                    |  46 ++
 lib/cmpdi2.c                                     |  42 ++
 lib/lshrdi3.c                                    |  45 ++
 lib/muldi3.c                                     |  72 ++++
 lib/ucmpdi2.c                                    |  35 ++
 114 files changed, 10317 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/devicetree/bindings/riscv/cpus.txt
 create mode 100644 arch/riscv/Kconfig
 create mode 100644 arch/riscv/Makefile
 create mode 100644 arch/riscv/configs/defconfig
 create mode 100644 arch/riscv/include/asm/Kbuild
 create mode 100644 arch/riscv/include/asm/asm-offsets.h
 create mode 100644 arch/riscv/include/asm/asm.h
 create mode 100644 arch/riscv/include/asm/atomic.h
 create mode 100644 arch/riscv/include/asm/barrier.h
 create mode 100644 arch/riscv/include/asm/bitops.h
 create mode 100644 arch/riscv/include/asm/bug.h
 create mode 100644 arch/riscv/include/asm/cache.h
 create mode 100644 arch/riscv/include/asm/cacheflush.h
 create mode 100644 arch/riscv/include/asm/cmpxchg.h
 create mode 100644 arch/riscv/include/asm/compat.h
 create mode 100644 arch/riscv/include/asm/csr.h
 create mode 100644 arch/riscv/include/asm/current.h
 create mode 100644 arch/riscv/include/asm/delay.h
 create mode 100644 arch/riscv/include/asm/dma-mapping.h
 create mode 100644 arch/riscv/include/asm/elf.h
 create mode 100644 arch/riscv/include/asm/hwcap.h
 create mode 100644 arch/riscv/include/asm/io.h
 create mode 100644 arch/riscv/include/asm/irq.h
 create mode 100644 arch/riscv/include/asm/irqflags.h
 create mode 100644 arch/riscv/include/asm/kprobes.h
 create mode 100644 arch/riscv/include/asm/linkage.h
 create mode 100644 arch/riscv/include/asm/mmu.h
 create mode 100644 arch/riscv/include/asm/mmu_context.h
 create mode 100644 arch/riscv/include/asm/page.h
 create mode 100644 arch/riscv/include/asm/pci.h
 create mode 100644 arch/riscv/include/asm/pgalloc.h
 create mode 100644 arch/riscv/include/asm/pgtable-32.h
 create mode 100644 arch/riscv/include/asm/pgtable-64.h
 create mode 100644 arch/riscv/include/asm/pgtable-bits.h
 create mode 100644 arch/riscv/include/asm/pgtable.h
 create mode 100644 arch/riscv/include/asm/processor.h
 create mode 100644 arch/riscv/include/asm/ptrace.h
 create mode 100644 arch/riscv/include/asm/sbi.h
 create mode 100644 arch/riscv/include/asm/smp.h
 create mode 100644 arch/riscv/include/asm/spinlock.h
 create mode 100644 arch/riscv/include/asm/spinlock_types.h
 create mode 100644 arch/riscv/include/asm/string.h
 create mode 100644 arch/riscv/include/asm/switch_to.h
 create mode 100644 arch/riscv/include/asm/syscall.h
 create mode 100644 arch/riscv/include/asm/thread_info.h
 create mode 100644 arch/riscv/include/asm/timex.h
 create mode 100644 arch/riscv/include/asm/tlb.h
 create mode 100644 arch/riscv/include/asm/tlbflush.h
 create mode 100644 arch/riscv/include/asm/uaccess.h
 create mode 100644 arch/riscv/include/asm/unistd.h
 create mode 100644 arch/riscv/include/asm/vdso.h
 create mode 100644 arch/riscv/include/asm/word-at-a-time.h
 create mode 100644 arch/riscv/include/uapi/asm/Kbuild
 create mode 100644 arch/riscv/include/uapi/asm/auxvec.h
 create mode 100644 arch/riscv/include/uapi/asm/bitsperlong.h
 create mode 100644 arch/riscv/include/uapi/asm/byteorder.h
 create mode 100644 arch/riscv/include/uapi/asm/elf.h
 create mode 100644 arch/riscv/include/uapi/asm/hwcap.h
 create mode 100644 arch/riscv/include/uapi/asm/ptrace.h
 create mode 100644 arch/riscv/include/uapi/asm/sigcontext.h
 create mode 100644 arch/riscv/include/uapi/asm/siginfo.h
 create mode 100644 arch/riscv/include/uapi/asm/ucontext.h
 create mode 100644 arch/riscv/kernel/.gitignore
 create mode 100644 arch/riscv/kernel/Makefile
 create mode 100644 arch/riscv/kernel/asm-offsets.c
 create mode 100644 arch/riscv/kernel/cacheinfo.c
 create mode 100644 arch/riscv/kernel/cpu.c
 create mode 100644 arch/riscv/kernel/cpufeature.c
 create mode 100644 arch/riscv/kernel/entry.S
 create mode 100644 arch/riscv/kernel/head.S
 create mode 100644 arch/riscv/kernel/irq.c
 create mode 100644 arch/riscv/kernel/module.c
 create mode 100644 arch/riscv/kernel/process.c
 create mode 100644 arch/riscv/kernel/ptrace.c
 create mode 100644 arch/riscv/kernel/reset.c
 create mode 100644 arch/riscv/kernel/riscv_ksyms.c
 create mode 100644 arch/riscv/kernel/setup.c
 create mode 100644 arch/riscv/kernel/signal.c
 create mode 100644 arch/riscv/kernel/smp.c
 create mode 100644 arch/riscv/kernel/smpboot.c
 create mode 100644 arch/riscv/kernel/stacktrace.c
 create mode 100644 arch/riscv/kernel/sys_riscv.c
 create mode 100644 arch/riscv/kernel/syscall_table.c
 create mode 100644 arch/riscv/kernel/time.c
 create mode 100644 arch/riscv/kernel/traps.c
 create mode 100644 arch/riscv/kernel/vdso.c
 create mode 100644 arch/riscv/kernel/vdso/.gitignore
 create mode 100644 arch/riscv/kernel/vdso/Makefile
 create mode 100644 arch/riscv/kernel/vdso/rt_sigreturn.S
 create mode 100644 arch/riscv/kernel/vdso/vdso.S
 create mode 100644 arch/riscv/kernel/vdso/vdso.lds.S
 create mode 100644 arch/riscv/kernel/vmlinux.lds.S
 create mode 100644 arch/riscv/lib/Makefile
 create mode 100644 arch/riscv/lib/delay.c
 create mode 100644 arch/riscv/lib/memcpy.S
 create mode 100644 arch/riscv/lib/memset.S
 create mode 100644 arch/riscv/lib/uaccess.S
 create mode 100644 arch/riscv/lib/udivdi3.S
 create mode 100644 arch/riscv/mm/Makefile
 create mode 100644 arch/riscv/mm/extable.c
 create mode 100644 arch/riscv/mm/fault.c
 create mode 100644 arch/riscv/mm/init.c
 create mode 100644 arch/riscv/mm/ioremap.c
 create mode 100644 include/lib/libgcc.h
 create mode 100644 lib/ashldi3.c
 create mode 100644 lib/ashrdi3.c
 create mode 100644 lib/cmpdi2.c
 create mode 100644 lib/lshrdi3.c
 create mode 100644 lib/muldi3.c
 create mode 100644 lib/ucmpdi2.c

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [GIT PULL] RISC-V Port for Linux 4.15 v9
  2017-11-13 21:56 [GIT PULL] RISC-V Port for Linux 4.15 v9 Palmer Dabbelt
@ 2017-11-14  9:04 ` Arnd Bergmann
  2017-11-14 16:00   ` Palmer Dabbelt
  2017-11-14 19:23 ` Will Deacon
  2017-11-15 18:51 ` Linus Torvalds
  2 siblings, 1 reply; 7+ messages in thread
From: Arnd Bergmann @ 2017-11-14  9:04 UTC (permalink / raw)
  To: Palmer Dabbelt
  Cc: Linus Torvalds, Linux Kernel Mailing List, patches, Olof Johansson

On Mon, Nov 13, 2017 at 10:56 PM, Palmer Dabbelt <palmer@dabbelt.com> wrote:
> The following changes since commit bebc6082da0a9f5d47a1ea2edc099bf671058bd4:
>
>   Linux 4.14 (2017-11-12 10:46:13 -0800)
>
> are available in the git repository at:
>
>   git://git.kernel.org/pub/scm/linux/kernel/git/palmer/linux.git tags/riscv-for-linus-4.15-arch-v9
>
> for you to fetch changes up to 512d88db5ef3de56f392f761657c2ab2cadc0498:
>
>   Merge tag 'v4.14' into for-linus (2017-11-13 13:17:51 -0800)
>
> ----------------------------------------------------------------
> RISC-V Port for Linux 4.15 v9
>
> This tag contains the core RISC-V Linux port, which has been through
> nine rounds of review on various mailing lists.  The port is not
> complete: there's some cleanup patches moving through the review
> process, a whole bunch of drivers that need some work, and a lot of
> feature additions that will be needed.
>
> The patches contained in this tag have been through nine rounds of
> review on the various mailing lists.  I have some outstanding cleanup
> patches, but since there's been so much review on these patches I
> thought it would be best to submit them as-is and then submit explicit
> cleanup patches so everyone can review them.  This first patch set is
> big enough that it's a bit of a pain to constantly rewrite, and it's
> caused a few headaches with various contributors.
>
> The port is definately a work in progress.  While what's there builds
> and boots with 4.14, it's a bit hard to actually see anything happen
> because there are no device drivers yet.  I maintain a staging branch
> that contains all the device drivers and cleanup that actually works,
> but those patches won't all be ready for a while.  I'd like to get what
> we currently have into your tree so everyone can start working from a
> single base -- of particular importance is allowing the glibc
> upstreaming process to proceed so we can sort out any possibly lingering
> user-visible ABI problems we might have.

For the contents:

Reviewed-by: Arnd Bergmann <arnd@arndb.de>

As you say, there are a few FIXME's left, but nothing that can't
just be handled after the merge.

Two small things I noticed about the pull request:

- I see you pulled in the v4.14 tag, presumably to have a cleaner
  merge base. It's better not to do that kind of "back-merge", it
  will mess up the git history and it doesn't really help with anything
  important like bisection through the series.

- The last commit before the backmerge is from Sep 26. I would
  assume that you have done other work since then (I saw at
  least one patch). Shouldn't they be included here?

       Arnd

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [GIT PULL] RISC-V Port for Linux 4.15 v9
  2017-11-14  9:04 ` Arnd Bergmann
@ 2017-11-14 16:00   ` Palmer Dabbelt
  0 siblings, 0 replies; 7+ messages in thread
From: Palmer Dabbelt @ 2017-11-14 16:00 UTC (permalink / raw)
  To: Arnd Bergmann; +Cc: Linus Torvalds, linux-kernel, patches, Olof Johansson

On Tue, 14 Nov 2017 01:04:42 PST (-0800), Arnd Bergmann wrote:
> On Mon, Nov 13, 2017 at 10:56 PM, Palmer Dabbelt <palmer@dabbelt.com> wrote:
>> The following changes since commit bebc6082da0a9f5d47a1ea2edc099bf671058bd4:
>>
>>   Linux 4.14 (2017-11-12 10:46:13 -0800)
>>
>> are available in the git repository at:
>>
>>   git://git.kernel.org/pub/scm/linux/kernel/git/palmer/linux.git tags/riscv-for-linus-4.15-arch-v9
>>
>> for you to fetch changes up to 512d88db5ef3de56f392f761657c2ab2cadc0498:
>>
>>   Merge tag 'v4.14' into for-linus (2017-11-13 13:17:51 -0800)
>>
>> ----------------------------------------------------------------
>> RISC-V Port for Linux 4.15 v9
>>
>> This tag contains the core RISC-V Linux port, which has been through
>> nine rounds of review on various mailing lists.  The port is not
>> complete: there's some cleanup patches moving through the review
>> process, a whole bunch of drivers that need some work, and a lot of
>> feature additions that will be needed.
>>
>> The patches contained in this tag have been through nine rounds of
>> review on the various mailing lists.  I have some outstanding cleanup
>> patches, but since there's been so much review on these patches I
>> thought it would be best to submit them as-is and then submit explicit
>> cleanup patches so everyone can review them.  This first patch set is
>> big enough that it's a bit of a pain to constantly rewrite, and it's
>> caused a few headaches with various contributors.
>>
>> The port is definately a work in progress.  While what's there builds
>> and boots with 4.14, it's a bit hard to actually see anything happen
>> because there are no device drivers yet.  I maintain a staging branch
>> that contains all the device drivers and cleanup that actually works,
>> but those patches won't all be ready for a while.  I'd like to get what
>> we currently have into your tree so everyone can start working from a
>> single base -- of particular importance is allowing the glibc
>> upstreaming process to proceed so we can sort out any possibly lingering
>> user-visible ABI problems we might have.
>
> For the contents:
>
> Reviewed-by: Arnd Bergmann <arnd@arndb.de>

Thanks!

>
> As you say, there are a few FIXME's left, but nothing that can't
> just be handled after the merge.
>
> Two small things I noticed about the pull request:
>
> - I see you pulled in the v4.14 tag, presumably to have a cleaner
>   merge base. It's better not to do that kind of "back-merge", it
>   will mess up the git history and it doesn't really help with anything
>   important like bisection through the series.

Oh, sorry.  I wasn't sure what to do.  I've gone ahead and tagged

  riscv-for-linus-4.15-arch-v9-premerge

with my pre-merge commit, in case that's better to merge in.

> - The last commit before the backmerge is from Sep 26. I would
>   assume that you have done other work since then (I saw at
>   least one patch). Shouldn't they be included here?

I guess my thought was to include just the parts that had been fully through
the on-list review process, and then to submit another cleanup pull request
later with all our fixes.  The big chunk of those are going to come from
talking with the glibc people to finalize our ABI, which is easier to do once
we've been merged in.

It's a bit of a chicken and egg problem, so I thought I'd just break the cycle
by getting _something_ in :).

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [GIT PULL] RISC-V Port for Linux 4.15 v9
  2017-11-13 21:56 [GIT PULL] RISC-V Port for Linux 4.15 v9 Palmer Dabbelt
  2017-11-14  9:04 ` Arnd Bergmann
@ 2017-11-14 19:23 ` Will Deacon
  2017-11-14 19:27   ` Palmer Dabbelt
  2017-11-15 18:51 ` Linus Torvalds
  2 siblings, 1 reply; 7+ messages in thread
From: Will Deacon @ 2017-11-14 19:23 UTC (permalink / raw)
  To: Palmer Dabbelt
  Cc: Linus Torvalds, linux-kernel, patches, Arnd Bergmann,
	Olof Johansson, peterz

Hi Palmer,

On Mon, Nov 13, 2017 at 01:56:22PM -0800, Palmer Dabbelt wrote:
> The following changes since commit bebc6082da0a9f5d47a1ea2edc099bf671058bd4:
> 
>   Linux 4.14 (2017-11-12 10:46:13 -0800)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/palmer/linux.git tags/riscv-for-linus-4.15-arch-v9
> 
> for you to fetch changes up to 512d88db5ef3de56f392f761657c2ab2cadc0498:
> 
>   Merge tag 'v4.14' into for-linus (2017-11-13 13:17:51 -0800)

[...]

>       RISC-V: Atomic and Locking Code

I had some open comments on this patch:

http://lkml.kernel.org/r/20171024141032.GD13445@arm.com

Amongst other things, you're adding a spin_unlock_wait and I think your
test bitops are missing barriers.

I'm not suggesting this holds up the merge, but a reply would've been
nice :/

Will

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [GIT PULL] RISC-V Port for Linux 4.15 v9
  2017-11-14 19:23 ` Will Deacon
@ 2017-11-14 19:27   ` Palmer Dabbelt
  0 siblings, 0 replies; 7+ messages in thread
From: Palmer Dabbelt @ 2017-11-14 19:27 UTC (permalink / raw)
  To: will.deacon
  Cc: Linus Torvalds, linux-kernel, patches, Arnd Bergmann,
	Olof Johansson, peterz

On Tue, 14 Nov 2017 11:23:08 PST (-0800), will.deacon@arm.com wrote:
> Hi Palmer,
>
> On Mon, Nov 13, 2017 at 01:56:22PM -0800, Palmer Dabbelt wrote:
>> The following changes since commit bebc6082da0a9f5d47a1ea2edc099bf671058bd4:
>>
>>   Linux 4.14 (2017-11-12 10:46:13 -0800)
>>
>> are available in the git repository at:
>>
>>   git://git.kernel.org/pub/scm/linux/kernel/git/palmer/linux.git tags/riscv-for-linus-4.15-arch-v9
>>
>> for you to fetch changes up to 512d88db5ef3de56f392f761657c2ab2cadc0498:
>>
>>   Merge tag 'v4.14' into for-linus (2017-11-13 13:17:51 -0800)
>
> [...]
>
>>       RISC-V: Atomic and Locking Code
>
> I had some open comments on this patch:
>
> http://lkml.kernel.org/r/20171024141032.GD13445@arm.com
>
> Amongst other things, you're adding a spin_unlock_wait and I think your
> test bitops are missing barriers.
>
> I'm not suggesting this holds up the merge, but a reply would've been
> nice :/

Sorry about that, it must have gotten buried in my inbox somewhere.  We have a 
patch already to remove spin_unlock_wait, it's just not in this because it 
didn't get any comments.

I'll look through the rest of your comments.

> Will

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [GIT PULL] RISC-V Port for Linux 4.15 v9
  2017-11-13 21:56 [GIT PULL] RISC-V Port for Linux 4.15 v9 Palmer Dabbelt
  2017-11-14  9:04 ` Arnd Bergmann
  2017-11-14 19:23 ` Will Deacon
@ 2017-11-15 18:51 ` Linus Torvalds
  2017-11-15 19:21   ` Palmer Dabbelt
  2 siblings, 1 reply; 7+ messages in thread
From: Linus Torvalds @ 2017-11-15 18:51 UTC (permalink / raw)
  To: Palmer Dabbelt
  Cc: Linux Kernel Mailing List, patches, Arnd Bergmann, Olof Johansson

On Mon, Nov 13, 2017 at 1:56 PM, Palmer Dabbelt <palmer@dabbelt.com> wrote:
>
> RISC-V Port for Linux 4.15 v9

Ok, this is merged in my tree now (the 'premerge' tag), with the
caveat that the merge may be broken, since we've had other changes
that affect architecture support in the 4.15 merge window.

In particular, we had some locking infrastructure changes.
spin_unlock_wait was already mentioned, but there were a few other
things too.

I *tried* to fix things up for the locking changes, but I expect I
might have missed something anyway.

But hopefully it's in good enough shape that fixups and continued
development should be fine.

              Linus

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [GIT PULL] RISC-V Port for Linux 4.15 v9
  2017-11-15 18:51 ` Linus Torvalds
@ 2017-11-15 19:21   ` Palmer Dabbelt
  0 siblings, 0 replies; 7+ messages in thread
From: Palmer Dabbelt @ 2017-11-15 19:21 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-kernel, patches, Arnd Bergmann, Olof Johansson

On Wed, 15 Nov 2017 10:51:59 PST (-0800), Linus Torvalds wrote:
> On Mon, Nov 13, 2017 at 1:56 PM, Palmer Dabbelt <palmer@dabbelt.com> wrote:
>>
>> RISC-V Port for Linux 4.15 v9
>
> Ok, this is merged in my tree now (the 'premerge' tag), with the
> caveat that the merge may be broken, since we've had other changes
> that affect architecture support in the 4.15 merge window.

Great!

> In particular, we had some locking infrastructure changes.
> spin_unlock_wait was already mentioned, but there were a few other
> things too.
>
> I *tried* to fix things up for the locking changes, but I expect I
> might have missed something anyway.
>
> But hopefully it's in good enough shape that fixups and continued
> development should be fine.

Sounds good.  I've got a pile of commits floating around on various trees, I'll 
get to wrangling everything and submit more code soon.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2017-11-15 19:21 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-13 21:56 [GIT PULL] RISC-V Port for Linux 4.15 v9 Palmer Dabbelt
2017-11-14  9:04 ` Arnd Bergmann
2017-11-14 16:00   ` Palmer Dabbelt
2017-11-14 19:23 ` Will Deacon
2017-11-14 19:27   ` Palmer Dabbelt
2017-11-15 18:51 ` Linus Torvalds
2017-11-15 19:21   ` Palmer Dabbelt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).