All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH v2 0/3] mm/gup: fix gup_fast with dynamic page table folding
@ 2020-09-07 18:00 ` Gerald Schaefer
  0 siblings, 0 replies; 313+ messages in thread
From: Gerald Schaefer @ 2020-09-07 18:00 UTC (permalink / raw)
  To: Jason Gunthorpe, John Hubbard
  Cc: LKML, linux-mm, linux-arch, Andrew Morton, Linus Torvalds,
	Russell King, Mike Rapoport, Catalin Marinas, Will Deacon,
	Michael Ellerman, Benjamin Herrenschmidt, Paul Mackerras,
	Jeff Dike, Richard Weinberger, Dave Hansen, Andy Lutomirski,
	Peter Zijlstra, Thomas Gleixner, Ingo Molnar, Borislav Petkov,
	Arnd Bergmann, Andrey Ryabinin, linux-x86, linux-arm,
	linux-power, linux-sparc, linux-um, linux-s390,
	Alexander Gordeev, Vasily Gorbik, Heiko Carstens,
	Christian Borntraeger, Claudio Imbrenda

This is v2 of an RFC previously discussed here:
https://lore.kernel.org/lkml/20200828140314.8556-1-gerald.schaefer@linux.ibm.com/

Patch 1 is a fix for a regression in gup_fast on s390, after our conversion
to common gup_fast code. It will introduce special helper functions
pXd_addr_end_folded(), which have to be used in places where pagetable walk
is done w/o lock and with READ_ONCE, so currently only in gup_fast.

Patch 2 is an attempt to make that more generic, i.e. change pXd_addr_end()
themselves by adding an extra pXd value parameter. That was suggested by
Jason during v1 discussion, because he is already thinking of some other
places where he might want to switch to the READ_ONCE logic for pagetable
walks. In general, that would be the cleanest / safest solution, but there
is some impact on other architectures and common code, hence the new and
greatly enlarged recipient list.

Patch 3 is a "nice to have" add-on, which makes pXd_addr_end() inline
functions instead of #defines, so that we get some type checking for the
new pXd value parameter.

Not sure about Fixes/stable tags for the generic solution. Only patch 1
fixes a real bug on s390, and has Fixes/stable tags. Patches 2 + 3 might
still be nice to have in stable, to ease future backports, but I guess
"nice to have" does not really qualify for stable backports.

Changes in v2:
- Pick option 2 from v1 discussion (pXd_addr_end_folded helpers)
- Add patch 2 + 3 for more generic approach

Alexander Gordeev (3):
  mm/gup: fix gup_fast with dynamic page table folding
  mm: make pXd_addr_end() functions page-table entry aware
  mm: make generic pXd_addr_end() macros inline functions

 arch/arm/include/asm/pgtable-2level.h    |  2 +-
 arch/arm/mm/idmap.c                      |  6 ++--
 arch/arm/mm/mmu.c                        |  8 ++---
 arch/arm64/kernel/hibernate.c            | 16 +++++----
 arch/arm64/kvm/mmu.c                     | 16 ++++-----
 arch/arm64/mm/kasan_init.c               |  8 ++---
 arch/arm64/mm/mmu.c                      | 25 +++++++-------
 arch/powerpc/mm/book3s64/radix_pgtable.c |  7 ++--
 arch/powerpc/mm/hugetlbpage.c            |  6 ++--
 arch/s390/include/asm/pgtable.h          | 42 ++++++++++++++++++++++++
 arch/s390/mm/page-states.c               |  8 ++---
 arch/s390/mm/pageattr.c                  |  8 ++---
 arch/s390/mm/vmem.c                      |  8 ++---
 arch/sparc/mm/hugetlbpage.c              |  6 ++--
 arch/um/kernel/tlb.c                     |  8 ++---
 arch/x86/mm/init_64.c                    | 15 ++++-----
 arch/x86/mm/kasan_init_64.c              | 16 ++++-----
 include/asm-generic/pgtable-nop4d.h      |  2 +-
 include/asm-generic/pgtable-nopmd.h      |  2 +-
 include/asm-generic/pgtable-nopud.h      |  2 +-
 include/linux/pgtable.h                  | 38 ++++++++++++---------
 mm/gup.c                                 |  8 ++---
 mm/ioremap.c                             |  8 ++---
 mm/kasan/init.c                          | 17 +++++-----
 mm/madvise.c                             |  4 +--
 mm/memory.c                              | 40 +++++++++++-----------
 mm/mlock.c                               | 18 +++++++---
 mm/mprotect.c                            |  8 ++---
 mm/pagewalk.c                            |  8 ++---
 mm/swapfile.c                            |  8 ++---
 mm/vmalloc.c                             | 16 ++++-----
 31 files changed, 219 insertions(+), 165 deletions(-)

-- 
2.17.1


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

end of thread, other threads:[~2020-09-18 15:15 UTC | newest]

Thread overview: 313+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-07 18:00 [RFC PATCH v2 0/3] mm/gup: fix gup_fast with dynamic page table folding Gerald Schaefer
2020-09-07 18:00 ` Gerald Schaefer
2020-09-07 18:00 ` Gerald Schaefer
2020-09-07 18:00 ` Gerald Schaefer
2020-09-07 18:00 ` Gerald Schaefer
2020-09-07 18:00 ` [RFC PATCH v2 1/3] " Gerald Schaefer
2020-09-07 18:00   ` Gerald Schaefer
2020-09-07 18:00   ` Gerald Schaefer
2020-09-07 18:00   ` Gerald Schaefer
2020-09-07 18:00   ` Gerald Schaefer
2020-09-08  5:06   ` Christophe Leroy
2020-09-08  5:06     ` Christophe Leroy
2020-09-08  5:06     ` Christophe Leroy
2020-09-08  5:06     ` Christophe Leroy
2020-09-08  5:06     ` Christophe Leroy
2020-09-08 12:09     ` Christian Borntraeger
2020-09-08 12:09       ` Christian Borntraeger
2020-09-08 12:09       ` Christian Borntraeger
2020-09-08 12:09       ` Christian Borntraeger
2020-09-08 12:09       ` Christian Borntraeger
2020-09-08 12:40       ` Christophe Leroy
2020-09-08 12:40         ` Christophe Leroy
2020-09-08 12:40         ` Christophe Leroy
2020-09-08 12:40         ` Christophe Leroy
2020-09-08 12:40         ` Christophe Leroy
2020-09-08 13:38         ` Gerald Schaefer
2020-09-08 13:38           ` Gerald Schaefer
2020-09-08 13:38           ` Gerald Schaefer
2020-09-08 13:38           ` Gerald Schaefer
2020-09-08 13:38           ` Gerald Schaefer
2020-09-08 14:30   ` Dave Hansen
2020-09-08 14:30     ` Dave Hansen
2020-09-08 14:30     ` Dave Hansen
2020-09-08 14:30     ` Dave Hansen
2020-09-08 17:59     ` Gerald Schaefer
2020-09-08 17:59       ` Gerald Schaefer
2020-09-08 17:59       ` Gerald Schaefer
2020-09-08 17:59       ` Gerald Schaefer
2020-09-08 17:59       ` Gerald Schaefer
2020-09-09 12:29     ` Gerald Schaefer
2020-09-09 12:29       ` Gerald Schaefer
2020-09-09 12:29       ` Gerald Schaefer
2020-09-09 12:29       ` Gerald Schaefer
2020-09-09 12:29       ` Gerald Schaefer
2020-09-09 16:18       ` Dave Hansen
2020-09-09 16:18         ` Dave Hansen
2020-09-09 16:18         ` Dave Hansen
2020-09-09 16:18         ` Dave Hansen
2020-09-09 16:18         ` Dave Hansen
2020-09-09 17:25         ` Gerald Schaefer
2020-09-09 17:25           ` Gerald Schaefer
2020-09-09 17:25           ` Gerald Schaefer
2020-09-09 17:25           ` Gerald Schaefer
2020-09-09 17:25           ` Gerald Schaefer
2020-09-09 18:03           ` Jason Gunthorpe
2020-09-09 18:03             ` Jason Gunthorpe
2020-09-09 18:03             ` Jason Gunthorpe
2020-09-09 18:03             ` Jason Gunthorpe
2020-09-09 18:03             ` Jason Gunthorpe
2020-09-10  9:39             ` Alexander Gordeev
2020-09-10  9:39               ` Alexander Gordeev
2020-09-10  9:39               ` Alexander Gordeev
2020-09-10  9:39               ` Alexander Gordeev
2020-09-10  9:39               ` Alexander Gordeev
2020-09-10 13:02               ` Jason Gunthorpe
2020-09-10 13:02                 ` Jason Gunthorpe
2020-09-10 13:02                 ` Jason Gunthorpe
2020-09-10 13:02                 ` Jason Gunthorpe
2020-09-10 13:02                 ` Jason Gunthorpe
2020-09-10 13:28                 ` Gerald Schaefer
2020-09-10 13:28                   ` Gerald Schaefer
2020-09-10 13:28                   ` Gerald Schaefer
2020-09-10 13:28                   ` Gerald Schaefer
2020-09-10 13:28                   ` Gerald Schaefer
2020-09-10 15:10                   ` Jason Gunthorpe
2020-09-10 15:10                     ` Jason Gunthorpe
2020-09-10 15:10                     ` Jason Gunthorpe
2020-09-10 15:10                     ` Jason Gunthorpe
2020-09-10 15:10                     ` Jason Gunthorpe
2020-09-10 17:07                     ` Gerald Schaefer
2020-09-10 17:07                       ` Gerald Schaefer
2020-09-10 17:07                       ` Gerald Schaefer
2020-09-10 17:07                       ` Gerald Schaefer
2020-09-10 17:07                       ` Gerald Schaefer
2020-09-10 17:19                       ` Jason Gunthorpe
2020-09-10 17:19                         ` Jason Gunthorpe
2020-09-10 17:19                         ` Jason Gunthorpe
2020-09-10 17:19                         ` Jason Gunthorpe
2020-09-10 17:19                         ` Jason Gunthorpe
2020-09-10 17:57                 ` Gerald Schaefer
2020-09-10 17:57                   ` Gerald Schaefer
2020-09-10 17:57                   ` Gerald Schaefer
2020-09-10 17:57                   ` Gerald Schaefer
2020-09-10 17:57                   ` Gerald Schaefer
2020-09-10 23:21                   ` Jason Gunthorpe
2020-09-10 23:21                     ` Jason Gunthorpe
2020-09-10 23:21                     ` Jason Gunthorpe
2020-09-10 23:21                     ` Jason Gunthorpe
2020-09-10 23:21                     ` Jason Gunthorpe
2020-09-10 17:35               ` Linus Torvalds
2020-09-10 17:35                 ` Linus Torvalds
2020-09-10 17:35                 ` Linus Torvalds
2020-09-10 17:35                 ` Linus Torvalds
2020-09-10 17:35                 ` Linus Torvalds
2020-09-10 17:35                 ` Linus Torvalds
2020-09-10 18:13                 ` Jason Gunthorpe
2020-09-10 18:13                   ` Jason Gunthorpe
2020-09-10 18:13                   ` Jason Gunthorpe
2020-09-10 18:13                   ` Jason Gunthorpe
2020-09-10 18:13                   ` Jason Gunthorpe
2020-09-10 18:33                   ` Linus Torvalds
2020-09-10 18:33                     ` Linus Torvalds
2020-09-10 18:33                     ` Linus Torvalds
2020-09-10 18:33                     ` Linus Torvalds
2020-09-10 18:33                     ` Linus Torvalds
2020-09-10 19:10                     ` Gerald Schaefer
2020-09-10 19:10                       ` Gerald Schaefer
2020-09-10 19:10                       ` Gerald Schaefer
2020-09-10 19:10                       ` Gerald Schaefer
2020-09-10 19:10                       ` Gerald Schaefer
2020-09-10 19:32                       ` Linus Torvalds
2020-09-10 19:32                         ` Linus Torvalds
2020-09-10 19:32                         ` Linus Torvalds
2020-09-10 19:32                         ` Linus Torvalds
2020-09-10 19:32                         ` Linus Torvalds
2020-09-10 21:59                         ` Jason Gunthorpe
2020-09-10 21:59                           ` Jason Gunthorpe
2020-09-10 21:59                           ` Jason Gunthorpe
2020-09-10 21:59                           ` Jason Gunthorpe
2020-09-10 21:59                           ` Jason Gunthorpe
2020-09-11  7:09                           ` peterz
2020-09-11  7:09                             ` peterz
2020-09-11  7:09                             ` peterz
2020-09-11  7:09                             ` peterz
2020-09-11  7:09                             ` peterz
2020-09-11 11:19                             ` Jason Gunthorpe
2020-09-11 11:19                               ` Jason Gunthorpe
2020-09-11 11:19                               ` Jason Gunthorpe
2020-09-11 11:19                               ` Jason Gunthorpe
2020-09-11 11:19                               ` Jason Gunthorpe
2020-09-11 19:03                             ` [PATCH] " Vasily Gorbik
2020-09-11 19:03                               ` Vasily Gorbik
2020-09-11 19:03                               ` Vasily Gorbik
2020-09-11 19:03                               ` Vasily Gorbik
2020-09-11 19:03                               ` Vasily Gorbik
2020-09-11 19:09                               ` Linus Torvalds
2020-09-11 19:09                                 ` Linus Torvalds
2020-09-11 19:09                                 ` Linus Torvalds
2020-09-11 19:09                                 ` Linus Torvalds
2020-09-11 19:09                                 ` Linus Torvalds
2020-09-11 19:40                               ` Jason Gunthorpe
2020-09-11 19:40                                 ` Jason Gunthorpe
2020-09-11 19:40                                 ` Jason Gunthorpe
2020-09-11 19:40                                 ` Jason Gunthorpe
2020-09-11 19:40                                 ` Jason Gunthorpe
2020-09-11 20:05                                 ` Jason Gunthorpe
2020-09-11 20:05                                   ` Jason Gunthorpe
2020-09-11 20:05                                   ` Jason Gunthorpe
2020-09-11 20:05                                   ` Jason Gunthorpe
2020-09-11 20:05                                   ` Jason Gunthorpe
2020-09-11 20:36                                   ` [PATCH v2] " Vasily Gorbik
2020-09-11 20:36                                     ` Vasily Gorbik
2020-09-11 20:36                                     ` Vasily Gorbik
2020-09-11 20:36                                     ` Vasily Gorbik
2020-09-11 20:36                                     ` Vasily Gorbik
2020-09-15 17:09                                     ` Vasily Gorbik
2020-09-15 17:09                                       ` Vasily Gorbik
2020-09-15 17:09                                       ` Vasily Gorbik
2020-09-15 17:09                                       ` Vasily Gorbik
2020-09-15 17:09                                       ` Vasily Gorbik
2020-09-15 17:14                                     ` Jason Gunthorpe
2020-09-15 17:14                                       ` Jason Gunthorpe
2020-09-15 17:14                                       ` Jason Gunthorpe
2020-09-15 17:14                                       ` Jason Gunthorpe
2020-09-15 17:14                                       ` Jason Gunthorpe
2020-09-15 17:18                                     ` Mike Rapoport
2020-09-15 17:18                                       ` Mike Rapoport
2020-09-15 17:18                                       ` Mike Rapoport
2020-09-15 17:18                                       ` Mike Rapoport
2020-09-15 17:18                                       ` Mike Rapoport
2020-09-15 17:31                                     ` John Hubbard
2020-09-15 17:31                                       ` John Hubbard
2020-09-15 17:31                                       ` John Hubbard
2020-09-15 17:31                                       ` John Hubbard
2020-09-15 17:31                                       ` John Hubbard
2020-09-17 15:53                                     ` Sasha Levin
2020-09-18 15:15                                       ` Vasily Gorbik
2020-09-18 15:15                                         ` [PATCH stable-5.4.y backport] " Vasily Gorbik
2020-09-10 21:22                   ` [RFC PATCH v2 1/3] " John Hubbard
2020-09-10 21:22                     ` John Hubbard
2020-09-10 21:22                     ` John Hubbard
2020-09-10 21:22                     ` John Hubbard
2020-09-10 21:22                     ` John Hubbard
2020-09-10 22:11                     ` Jason Gunthorpe
2020-09-10 22:11                       ` Jason Gunthorpe
2020-09-10 22:11                       ` Jason Gunthorpe
2020-09-10 22:11                       ` Jason Gunthorpe
2020-09-10 22:11                       ` Jason Gunthorpe
2020-09-10 22:17                       ` John Hubbard
2020-09-10 22:17                         ` John Hubbard
2020-09-10 22:17                         ` John Hubbard
2020-09-10 22:17                         ` John Hubbard
2020-09-10 22:17                         ` John Hubbard
2020-09-11 12:19                       ` Alexander Gordeev
2020-09-11 12:19                         ` Alexander Gordeev
2020-09-11 12:19                         ` Alexander Gordeev
2020-09-11 12:19                         ` Alexander Gordeev
2020-09-11 12:19                         ` Alexander Gordeev
2020-09-11 16:45                         ` Linus Torvalds
2020-09-11 16:45                           ` Linus Torvalds
2020-09-11 16:45                           ` Linus Torvalds
2020-09-11 16:45                           ` Linus Torvalds
2020-09-11 16:45                           ` Linus Torvalds
2020-09-10 13:11             ` Gerald Schaefer
2020-09-10 13:11               ` Gerald Schaefer
2020-09-10 13:11               ` Gerald Schaefer
2020-09-10 13:11               ` Gerald Schaefer
2020-09-10 13:11               ` Gerald Schaefer
2020-09-07 18:00 ` [RFC PATCH v2 2/3] mm: make pXd_addr_end() functions page-table entry aware Gerald Schaefer
2020-09-07 18:00   ` Gerald Schaefer
2020-09-07 18:00   ` Gerald Schaefer
2020-09-07 18:00   ` Gerald Schaefer
2020-09-07 18:00   ` Gerald Schaefer
2020-09-08  5:14   ` Christophe Leroy
2020-09-08  5:14     ` Christophe Leroy
2020-09-08  5:14     ` Christophe Leroy
2020-09-08  5:14     ` Christophe Leroy
2020-09-08  5:14     ` Christophe Leroy
2020-09-08  7:46     ` Alexander Gordeev
2020-09-08  7:46       ` Alexander Gordeev
2020-09-08  7:46       ` Alexander Gordeev
2020-09-08  7:46       ` Alexander Gordeev
2020-09-08  7:46       ` Alexander Gordeev
2020-09-08  8:16       ` Christophe Leroy
2020-09-08  8:16         ` Christophe Leroy
2020-09-08  8:16         ` Christophe Leroy
2020-09-08  8:16         ` Christophe Leroy
2020-09-08  8:16         ` Christophe Leroy
2020-09-08 14:15         ` Alexander Gordeev
2020-09-08 14:15           ` Alexander Gordeev
2020-09-08 14:15           ` Alexander Gordeev
2020-09-08 14:15           ` Alexander Gordeev
2020-09-08 14:15           ` Alexander Gordeev
2020-09-09  8:38           ` Christophe Leroy
2020-09-09  8:38             ` Christophe Leroy
2020-09-09  8:38             ` Christophe Leroy
2020-09-09  8:38             ` Christophe Leroy
2020-09-09  8:38             ` Christophe Leroy
2020-09-08 14:25     ` Alexander Gordeev
2020-09-08 14:25       ` Alexander Gordeev
2020-09-08 14:25       ` Alexander Gordeev
2020-09-08 14:25       ` Alexander Gordeev
2020-09-08 14:25       ` Alexander Gordeev
2020-09-08 13:26   ` Jason Gunthorpe
2020-09-08 13:26     ` Jason Gunthorpe
2020-09-08 13:26     ` Jason Gunthorpe
2020-09-08 13:26     ` Jason Gunthorpe
2020-09-08 13:26     ` Jason Gunthorpe
2020-09-08 14:33   ` Dave Hansen
2020-09-08 14:33     ` Dave Hansen
2020-09-08 14:33     ` Dave Hansen
2020-09-08 14:33     ` Dave Hansen
2020-09-07 18:00 ` [RFC PATCH v2 3/3] mm: make generic pXd_addr_end() macros inline functions Gerald Schaefer
2020-09-07 18:00   ` Gerald Schaefer
2020-09-07 18:00   ` Gerald Schaefer
2020-09-07 18:00   ` Gerald Schaefer
2020-09-07 18:00   ` Gerald Schaefer
2020-09-07 20:15   ` Mike Rapoport
2020-09-07 20:15     ` Mike Rapoport
2020-09-07 20:15     ` Mike Rapoport
2020-09-07 20:15     ` Mike Rapoport
2020-09-07 20:15     ` Mike Rapoport
2020-09-08  5:19   ` Christophe Leroy
2020-09-08  5:19     ` Christophe Leroy
2020-09-08  5:19     ` Christophe Leroy
2020-09-08  5:19     ` Christophe Leroy
2020-09-08  5:19     ` Christophe Leroy
2020-09-08 15:48     ` Alexander Gordeev
2020-09-08 15:48       ` Alexander Gordeev
2020-09-08 15:48       ` Alexander Gordeev
2020-09-08 15:48       ` Alexander Gordeev
2020-09-08 15:48       ` Alexander Gordeev
2020-09-08 17:20       ` Christophe Leroy
2020-09-08 17:20         ` Christophe Leroy
2020-09-08 17:20         ` Christophe Leroy
2020-09-08 17:20         ` Christophe Leroy
2020-09-08 17:20         ` Christophe Leroy
2020-09-08 16:05   ` kernel test robot
2020-09-07 20:12 ` [RFC PATCH v2 0/3] mm/gup: fix gup_fast with dynamic page table folding Mike Rapoport
2020-09-07 20:12   ` Mike Rapoport
2020-09-07 20:12   ` Mike Rapoport
2020-09-07 20:12   ` Mike Rapoport
2020-09-07 20:12   ` Mike Rapoport
2020-09-08  5:22   ` Christophe Leroy
2020-09-08  5:22     ` Christophe Leroy
2020-09-08  5:22     ` Christophe Leroy
2020-09-08  5:22     ` Christophe Leroy
2020-09-08  5:22     ` Christophe Leroy
2020-09-08 17:36     ` Gerald Schaefer
2020-09-08 17:36       ` Gerald Schaefer
2020-09-08 17:36       ` Gerald Schaefer
2020-09-08 17:36       ` Gerald Schaefer
2020-09-08 17:36       ` Gerald Schaefer
2020-09-09 16:12       ` Gerald Schaefer
2020-09-09 16:12         ` Gerald Schaefer
2020-09-09 16:12         ` Gerald Schaefer
2020-09-09 16:12         ` Gerald Schaefer
2020-09-09 16:12         ` Gerald Schaefer
2020-09-08  4:42 ` Christophe Leroy
2020-09-08  4:42   ` Christophe Leroy
2020-09-08  4:42   ` Christophe Leroy
2020-09-08  4:42   ` Christophe Leroy
2020-09-08  4:42   ` Christophe Leroy

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.