mbox series

[v3,00/23] Use asm-generic for mmu_context no-op functions

Message ID 20200901141539.1757549-1-npiggin@gmail.com (mailing list archive)
Headers show
Series Use asm-generic for mmu_context no-op functions | expand

Message

Nicholas Piggin Sept. 1, 2020, 2:15 p.m. UTC
It would be nice to be able to modify mmu_context functions or add a
hook without updating all architectures, many of which will be no-ops.

The motivation for this series is a change to lazy mmu handling, but
this series stands on its own as a good cleanup whether or not we end
up making that change.

Since v2:
- Fixed build failure on arm64 (fingers crossed), did more cross
  compiling.
- Accounted for feedback and added acks (thanks all).

Arnd, most of the main archs have acks, and I asked for ack/nack
from ones which are missing. We could give those a bit more time
then merge.

Thanks,
Nick

Nicholas Piggin (23):
  asm-generic: add generic MMU versions of mmu context functions
  alpha: use asm-generic/mmu_context.h for no-op implementations
  arc: use asm-generic/mmu_context.h for no-op implementations
  arm: use asm-generic/mmu_context.h for no-op implementations
  arm64: use asm-generic/mmu_context.h for no-op implementations
  csky: use asm-generic/mmu_context.h for no-op implementations
  hexagon: use asm-generic/mmu_context.h for no-op implementations
  ia64: use asm-generic/mmu_context.h for no-op implementations
  m68k: use asm-generic/mmu_context.h for no-op implementations
  microblaze: use asm-generic/mmu_context.h for no-op implementations
  mips: use asm-generic/mmu_context.h for no-op implementations
  nds32: use asm-generic/mmu_context.h for no-op implementations
  nios2: use asm-generic/mmu_context.h for no-op implementations
  openrisc: use asm-generic/mmu_context.h for no-op implementations
  parisc: use asm-generic/mmu_context.h for no-op implementations
  powerpc: use asm-generic/mmu_context.h for no-op implementations
  riscv: use asm-generic/mmu_context.h for no-op implementations
  s390: use asm-generic/mmu_context.h for no-op implementations
  sh: use asm-generic/mmu_context.h for no-op implementations
  sparc: use asm-generic/mmu_context.h for no-op implementations
  um: use asm-generic/mmu_context.h for no-op implementations
  x86: use asm-generic/mmu_context.h for no-op implementations
  xtensa: use asm-generic/mmu_context.h for no-op implementations

 arch/alpha/include/asm/mmu_context.h         | 12 ++--
 arch/arc/include/asm/mmu_context.h           | 17 +++---
 arch/arm/include/asm/mmu_context.h           | 26 +--------
 arch/arm64/include/asm/mmu_context.h         |  7 +--
 arch/c6x/include/asm/mmu_context.h           |  6 ++
 arch/csky/include/asm/mmu_context.h          |  8 +--
 arch/hexagon/include/asm/mmu_context.h       | 33 ++---------
 arch/ia64/include/asm/mmu_context.h          | 17 ++----
 arch/m68k/include/asm/mmu_context.h          | 37 +++----------
 arch/microblaze/include/asm/mmu_context.h    |  2 +-
 arch/microblaze/include/asm/mmu_context_mm.h |  8 +--
 arch/microblaze/include/asm/processor.h      |  3 -
 arch/mips/include/asm/mmu_context.h          | 11 ++--
 arch/nds32/include/asm/mmu_context.h         | 10 +---
 arch/nios2/include/asm/mmu_context.h         | 21 ++-----
 arch/openrisc/include/asm/mmu_context.h      |  8 +--
 arch/parisc/include/asm/mmu_context.h        | 12 ++--
 arch/powerpc/include/asm/mmu_context.h       | 13 +++--
 arch/riscv/include/asm/mmu_context.h         | 22 +-------
 arch/s390/include/asm/mmu_context.h          |  9 ++-
 arch/sh/include/asm/mmu_context.h            |  7 +--
 arch/sh/include/asm/mmu_context_32.h         |  9 ---
 arch/sparc/include/asm/mmu_context_32.h      | 10 ++--
 arch/sparc/include/asm/mmu_context_64.h      | 10 ++--
 arch/um/include/asm/mmu_context.h            | 12 ++--
 arch/x86/include/asm/mmu_context.h           |  6 ++
 arch/xtensa/include/asm/mmu_context.h        | 11 +---
 arch/xtensa/include/asm/nommu_context.h      | 26 +--------
 include/asm-generic/mmu_context.h            | 58 +++++++++++++++-----
 include/asm-generic/nommu_context.h          | 19 +++++++
 30 files changed, 174 insertions(+), 276 deletions(-)
 create mode 100644 arch/c6x/include/asm/mmu_context.h
 create mode 100644 include/asm-generic/nommu_context.h

Comments

Arnd Bergmann Sept. 9, 2020, 11:27 a.m. UTC | #1
On Wed, 2 Sep 2020 00:15:16 +1000, Nicholas Piggin wrote:
> It would be nice to be able to modify mmu_context functions or add a
> hook without updating all architectures, many of which will be no-ops.
> 
> The motivation for this series is a change to lazy mmu handling, but
> this series stands on its own as a good cleanup whether or not we end
> up making that change.
> 
> [...]

Applied to asm-generic, thanks!

[01/23] asm-generic: add generic MMU versions of mmu context functions
        (no commit info)
[02/23] alpha: use asm-generic/mmu_context.h for no-op implementations
        (no commit info)
[03/23] arc: use asm-generic/mmu_context.h for no-op implementations
        (no commit info)
[04/23] arm: use asm-generic/mmu_context.h for no-op implementations
        (no commit info)
[05/23] arm64: use asm-generic/mmu_context.h for no-op implementations
        (no commit info)
[06/23] csky: use asm-generic/mmu_context.h for no-op implementations
        (no commit info)
[07/23] hexagon: use asm-generic/mmu_context.h for no-op implementations
        (no commit info)
[08/23] ia64: use asm-generic/mmu_context.h for no-op implementations
        (no commit info)
[09/23] m68k: use asm-generic/mmu_context.h for no-op implementations
        (no commit info)
[10/23] microblaze: use asm-generic/mmu_context.h for no-op implementations
        (no commit info)
[11/23] mips: use asm-generic/mmu_context.h for no-op implementations
        (no commit info)
[12/23] nds32: use asm-generic/mmu_context.h for no-op implementations
        (no commit info)
[13/23] nios2: use asm-generic/mmu_context.h for no-op implementations
        (no commit info)
[14/23] openrisc: use asm-generic/mmu_context.h for no-op implementations
        (no commit info)
[15/23] parisc: use asm-generic/mmu_context.h for no-op implementations
        (no commit info)
[16/23] powerpc: use asm-generic/mmu_context.h for no-op implementations
        (no commit info)
[17/23] riscv: use asm-generic/mmu_context.h for no-op implementations
        (no commit info)
[18/23] s390: use asm-generic/mmu_context.h for no-op implementations
        (no commit info)
[19/23] sh: use asm-generic/mmu_context.h for no-op implementations
        (no commit info)
[20/23] sparc: use asm-generic/mmu_context.h for no-op implementations
        (no commit info)
[21/23] um: use asm-generic/mmu_context.h for no-op implementations
        (no commit info)
[22/23] x86: use asm-generic/mmu_context.h for no-op implementations
        (no commit info)
[23/23] xtensa: use asm-generic/mmu_context.h for no-op implementations
        (no commit info)

       Arnd
Arnd Bergmann Oct. 9, 2020, 2:01 p.m. UTC | #2
On Wed, Sep 9, 2020 at 1:27 PM Arnd Bergmann <arnd@arndb.de> wrote:
>
> On Wed, 2 Sep 2020 00:15:16 +1000, Nicholas Piggin wrote:
> > It would be nice to be able to modify mmu_context functions or add a
> > hook without updating all architectures, many of which will be no-ops.
> >
> > The motivation for this series is a change to lazy mmu handling, but
> > this series stands on its own as a good cleanup whether or not we end
> > up making that change.
> >
> > [...]
>
> Applied to asm-generic, thanks!

Hi Nick,

I just noticed a fatal mistake I made when pushing it to the branch on
kernel.org: I used to have both a 'master' and an 'asm-generic' branch
in asm-generic.git but tried to remove the 'master' one as there is not
really any point in having two.

Unfortunately I forgot to check which one of the two was part of
linux-next, and it was the other one, so none of the patches I picked
up ever saw any wider testing aside from the 0day bot building it
(successfully).

Are there other changes that depend on this? If not, I would
just wait until -rc1 and then either push the branch correctly or
rebase the patches on that first, to avoid pushing something that
did not see the necessary testing.

      Arnd
Stephen Rothwell Oct. 10, 2020, 2:02 a.m. UTC | #3
Hi Arnd,

On Fri, 9 Oct 2020 16:01:22 +0200 Arnd Bergmann <arnd@arndb.de> wrote:
>
> On Wed, Sep 9, 2020 at 1:27 PM Arnd Bergmann <arnd@arndb.de> wrote:
> >
> > On Wed, 2 Sep 2020 00:15:16 +1000, Nicholas Piggin wrote:  
> > > It would be nice to be able to modify mmu_context functions or add a
> > > hook without updating all architectures, many of which will be no-ops.
> > >
> > > The motivation for this series is a change to lazy mmu handling, but
> > > this series stands on its own as a good cleanup whether or not we end
> > > up making that change.
> > >
> > > [...]  
> >
> > Applied to asm-generic, thanks!  
> 
> Hi Nick,
> 
> I just noticed a fatal mistake I made when pushing it to the branch on
> kernel.org: I used to have both a 'master' and an 'asm-generic' branch
> in asm-generic.git but tried to remove the 'master' one as there is not
> really any point in having two.
> 
> Unfortunately I forgot to check which one of the two was part of
> linux-next, and it was the other one, so none of the patches I picked
> up ever saw any wider testing aside from the 0day bot building it
> (successfully).
> 
> Are there other changes that depend on this? If not, I would
> just wait until -rc1 and then either push the branch correctly or
> rebase the patches on that first, to avoid pushing something that
> did not see the necessary testing.

If it is useful enough (or important enough), then put in in your
linux-next included branch, but don't ask Linus to merge it until the
second week of the merge window ... no worse than some other stuff I
see :-(
Arnd Bergmann Oct. 10, 2020, 8:25 a.m. UTC | #4
On Sat, Oct 10, 2020 at 4:02 AM Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> On Fri, 9 Oct 2020 16:01:22 +0200 Arnd Bergmann <arnd@arndb.de> wrote:
>
> > Are there other changes that depend on this? If not, I would
> > just wait until -rc1 and then either push the branch correctly or
> > rebase the patches on that first, to avoid pushing something that
> > did not see the necessary testing.
>
> If it is useful enough (or important enough), then put in in your
> linux-next included branch, but don't ask Linus to merge it until the
> second week of the merge window ... no worse than some other stuff I
> see :-(

By itself, it's a nice cleanup, but it doesn't provide any immediate
benefit over the previous state, while potentially introducing a
regression in one of the less tested architectures.

The question to me is really whether Nick has any pending work
that he would like to submit after this branch is merged into
mainline.

    Arnd
Stephen Rothwell Oct. 10, 2020, 7 p.m. UTC | #5
Hi Arnd,

On Sat, 10 Oct 2020 10:25:11 +0200 Arnd Bergmann <arnd@arndb.de> wrote:
>
> On Sat, Oct 10, 2020 at 4:02 AM Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> > On Fri, 9 Oct 2020 16:01:22 +0200 Arnd Bergmann <arnd@arndb.de> wrote:
> >  
> > > Are there other changes that depend on this? If not, I would
> > > just wait until -rc1 and then either push the branch correctly or
> > > rebase the patches on that first, to avoid pushing something that
> > > did not see the necessary testing.  
> >
> > If it is useful enough (or important enough), then put in in your
> > linux-next included branch, but don't ask Linus to merge it until the
> > second week of the merge window ... no worse than some other stuff I
> > see :-(  
> 
> By itself, it's a nice cleanup, but it doesn't provide any immediate
> benefit over the previous state, while potentially introducing a
> regression in one of the less tested architectures.

OK.

> The question to me is really whether Nick has any pending work
> that he would like to submit after this branch is merged into
> mainline.
Nicholas Piggin Oct. 19, 2020, 1 a.m. UTC | #6
Excerpts from Arnd Bergmann's message of October 10, 2020 6:25 pm:
> On Sat, Oct 10, 2020 at 4:02 AM Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>> On Fri, 9 Oct 2020 16:01:22 +0200 Arnd Bergmann <arnd@arndb.de> wrote:
>>
>> > Are there other changes that depend on this? If not, I would
>> > just wait until -rc1 and then either push the branch correctly or
>> > rebase the patches on that first, to avoid pushing something that
>> > did not see the necessary testing.
>>
>> If it is useful enough (or important enough), then put in in your
>> linux-next included branch, but don't ask Linus to merge it until the
>> second week of the merge window ... no worse than some other stuff I
>> see :-(
> 
> By itself, it's a nice cleanup, but it doesn't provide any immediate
> benefit over the previous state, while potentially introducing a
> regression in one of the less tested architectures.
> 
> The question to me is really whether Nick has any pending work
> that he would like to submit after this branch is merged into
> mainline.

Not for this merge window but I was hoping to submit something for
improving lazy tlb handling in the next one.

Thanks,
Nick