Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752661AbdLCDUO (ORCPT ); Sat, 2 Dec 2017 22:20:14 -0500 Received: from mail-wr0-f195.google.com ([209.85.128.195]:37186 "EHLO mail-wr0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751944AbdLCDUN (ORCPT ); Sat, 2 Dec 2017 22:20:13 -0500 X-Google-Smtp-Source: AGs4zMZ7SERdN+hJfb3AbTVkPFOmlymLIUCCWVhTh0IU47ZTDWXQjB46EMJLjey7xO9/KVbbAUOJmA== Date: Sun, 3 Dec 2017 04:20:02 +0100 From: Andrea Parri To: Palmer Dabbelt Cc: Linus Torvalds , linux-kernel@vger.kernel.org, patches@groups.riscv.org, Alan Stern , "Paul E. McKenney" Subject: Re: [GIT PULL] RISC-V Cleanups and ABI Fixes for 4.15-rc2 Message-ID: <20171203032002.GA4207@andrea> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 7139 Lines: 149 Hi Palmer, On Fri, Dec 01, 2017 at 01:39:12PM -0800, Palmer Dabbelt wrote: > The following changes since commit 4fbd8d194f06c8a3fd2af1ce560ddb31f7ec8323: > > Linux 4.15-rc1 (2017-11-26 16:01:47 -0800) > > are available in the git repository at: > > ssh://git@gitolite.kernel.org/pub/scm/linux/kernel/git/palmer/linux.git tags/riscv-for-linus-4.15-rc2_cleanups > > for you to fetch changes up to 3b62de26cf5ef17340a0e986d3e53eb4f74f96d5: > > RISC-V: Fixes for clean allmodconfig build (2017-12-01 13:31:31 -0800) > > ---------------------------------------------------------------- > RISC-V Cleanups and ABI Fixes for 4.15-rc2 > > This tag contains a handful of small cleanups that are a result of > feedback that didn't make it into our original patch set, either because > the feedback hadn't been given yet, I missed the original emails, or > we weren't ready to submit the changes yet. > > I've been maintaining the various cleanup patch sets I have as their own > branches, which I then merged together and signed. Each merge commit > has a short summary of the changes, and each branch is based on your > latest tag (4.15-rc1, in this case). If this isn't the right way to do > this then feel free to suggest something else, but it seems sane to me. > > Here's a short summary of the changes, roughly in order of how > interesting they are. > > * libgcc.h has been moved from include/lib, where it's the only member, > to include/linux. This is meant to avoid tab completion conflicts. > * VDSO entries for clock_get/gettimeofday/getcpu have been added. These > are simple syscalls now, but we want to let glibc use them from the > start so we can make them faster later. > * A VDSO entry for instruction cache flushing has been added so > userspace can flush the instruction cache. > * The VDSO symbol versions for __vdso_cmpxchg{32,64} have been removed, > as those VDSO entries don't actually exist. > * __io_writes has been corrected to respect the given type. > * A new READ_ONCE in arch_spin_is_locked(). > * __test_and_op_bit_ord() is now actually ordered. > * Various small fixes throughout the tree to enable allmodconfig to > build cleanly. > * Removal of some dead code in our atomic support headers. > * Improvements to various comments in our atomic support headers. > > ---------------------------------------------------------------- > Andrew Waterman (3): > RISC-V: Add VDSO entries for clock_get/gettimeofday/getcpu > RISC-V: Flush I$ when making a dirty page executable > RISC-V: Allow userspace to flush the instruction cache > > Christoph Hellwig (1): > move libgcc.h to include/linux > > Olof Johansson (8): > RISC-V: use generic serial.h > RISC-V: use RISCV_{INT,SHORT} instead of {INT,SHORT} for asm macros > RISC-V: io.h: type fixes for warnings > RISC-V: move empty_zero_page definition to C and export it > RISC-V: Export some expected symbols for modules > RISC-V: Provide stub of setup_profiling_timer() > RISC-V: Use define for get_cycles like other architectures > RISC-V: Add missing include > > Palmer Dabbelt (16): > RISC-V: Remove __vdso_cmpxchg{32,64} symbol versions > RISC-V: Remove unused arguments from ATOMIC_OP > RISC-V: Comment on why {,cmp}xchg is ordered how it is > RISC-V: Remove __smp_bp__{before,after}_atomic > RISC-V: Remove smb_mb__{before,after}_spinlock() I wonder whether you really meant to remove smp_mb__after_spinlock(): on the one hand, this primitive doesn't seem "obsolete" (as suggested by the commit message); on the other hand, the Draft Specification at https://marc.info/?l=linux-kernel&m=151218405830993&w=2 suggests that you need "to strengthen" the generic implementation for this primitive (considered the current spinlock.h in riscv). What am I missing? Andrea > RISC-V: __test_and_op_bit_ord should be strongly ordered > RISC-V: Add READ_ONCE in arch_spin_is_locked() > RISC-V: `sfence.vma` orderes the instruction cache > RISC-V: remove spin_unlock_wait() > RISC-V: Clean up an unused include > RISC-V: __io_writes should respect the length argument > RISC-V Atomic Cleanups > RISC-V: User-Visible Changes > RISC-V: __io_writes should respect the length argument > move libgcc.h to include/linux > RISC-V: Fixes for clean allmodconfig build > > arch/riscv/include/asm/Kbuild | 1 + > arch/riscv/include/asm/asm.h | 12 ++-- > arch/riscv/include/asm/atomic.h | 103 +++++++++++++++++---------------- > arch/riscv/include/asm/barrier.h | 23 -------- > arch/riscv/include/asm/bitops.h | 2 +- > arch/riscv/include/asm/bug.h | 6 +- > arch/riscv/include/asm/cacheflush.h | 30 ++++++++-- > arch/riscv/include/asm/io.h | 18 +++--- > arch/riscv/include/asm/mmu.h | 4 ++ > arch/riscv/include/asm/mmu_context.h | 45 ++++++++++++++ > arch/riscv/include/asm/pgtable.h | 58 ++++++++++--------- > arch/riscv/include/asm/spinlock.h | 11 +--- > arch/riscv/include/asm/timex.h | 3 +- > arch/riscv/include/asm/tlbflush.h | 7 ++- > arch/riscv/include/asm/vdso-syscalls.h | 28 +++++++++ > arch/riscv/include/asm/vdso.h | 4 ++ > arch/riscv/kernel/head.S | 3 - > arch/riscv/kernel/riscv_ksyms.c | 3 + > arch/riscv/kernel/setup.c | 5 ++ > arch/riscv/kernel/smp.c | 55 ++++++++++++++++++ > arch/riscv/kernel/sys_riscv.c | 33 ++++++++++- > arch/riscv/kernel/syscall_table.c | 2 + > arch/riscv/kernel/vdso/Makefile | 7 ++- > arch/riscv/kernel/vdso/clock_getres.S | 26 +++++++++ > arch/riscv/kernel/vdso/clock_gettime.S | 26 +++++++++ > arch/riscv/kernel/vdso/flush_icache.S | 31 ++++++++++ > arch/riscv/kernel/vdso/getcpu.S | 26 +++++++++ > arch/riscv/kernel/vdso/gettimeofday.S | 26 +++++++++ > arch/riscv/kernel/vdso/vdso.lds.S | 7 ++- > arch/riscv/lib/delay.c | 1 + > arch/riscv/mm/Makefile | 1 + > arch/riscv/mm/cacheflush.c | 23 ++++++++ > arch/riscv/mm/ioremap.c | 2 +- > include/{lib => linux}/libgcc.h | 0 > lib/ashldi3.c | 2 +- > lib/ashrdi3.c | 2 +- > lib/cmpdi2.c | 2 +- > lib/lshrdi3.c | 2 +- > lib/muldi3.c | 2 +- > lib/ucmpdi2.c | 2 +- > 40 files changed, 498 insertions(+), 146 deletions(-) > create mode 100644 arch/riscv/include/asm/vdso-syscalls.h > create mode 100644 arch/riscv/kernel/vdso/clock_getres.S > create mode 100644 arch/riscv/kernel/vdso/clock_gettime.S > create mode 100644 arch/riscv/kernel/vdso/flush_icache.S > create mode 100644 arch/riscv/kernel/vdso/getcpu.S > create mode 100644 arch/riscv/kernel/vdso/gettimeofday.S > create mode 100644 arch/riscv/mm/cacheflush.c > rename include/{lib => linux}/libgcc.h (100%)