All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Gunthorpe <jgg@nvidia.com>
Cc: Alistair Popple <apopple@nvidia.com>,
	David Hildenbrand <david@redhat.com>,
	David Howells <dhowells@redhat.com>,
	Christoph Hellwig <hch@infradead.org>,
	John Hubbard <jhubbard@nvidia.com>,
	linux-mm@kvack.org, "Mike Rapoport (IBM)" <rppt@kernel.org>
Subject: [PATCH v2 00/13] Simplify the external interface for GUP
Date: Tue, 24 Jan 2023 16:34:21 -0400	[thread overview]
Message-ID: <0-v2-987e91b59705+36b-gup_tidy_jgg@nvidia.com> (raw)

It is quite a maze of EXPORTED symbols leading up to the three actual
worker functions of GUP. Simplify this by reorganizing some of the code so
the EXPORTED symbols directly call the correct internal function with
validated and consistent arguments.

Consolidate all the assertions into one place at the top of the call
chains.

Remove some dead code.

Move more things into the mm/internal.h header

v2:
 - Call the new flag FOLL_UNLOCKABLE
 - Revise comments around locked to reflect FOLL_UNLOCKABLE
 - s/lock_dropped/must_unlock/
 - Various grammer fixes
 - Add missing FOLL_UNLOCKABLE users populate_vma_page_range,
   faultin_vma_page_range
 - Make the mmap_lock assertion unconditional
 - Move internal FOLL_ flags to mm/internal.h
 - Rebase onto 41c457e96ba5 ("Merge branch 'mm-nonmm-unstable' into mm-everything")
v1: https://lore.kernel.org/r/0-v1-dd94f8f0d5ad+716-gup_tidy_jgg@nvidia.com

Jason Gunthorpe (13):
  mm/gup: have internal functions get the mmap_read_lock()
  mm/gup: remove obsolete FOLL_LONGTERM comment
  mm/gup: don't call __gup_longterm_locked() if FOLL_LONGTERM cannot be
    set
  mm/gup: move try_grab_page() to mm/internal.h
  mm/gup: simplify the external interface functions and consolidate
    invariants
  mm/gup: add an assertion that the mmap lock is locked
  mm/gup: remove locked being NULL from faultin_vma_page_range()
  mm/gup: add FOLL_UNLOCKABLE
  mm/gup: make locked never NULL in the internal GUP functions
  mm/gup: remove pin_user_pages_fast_only()
  mm/gup: make get_user_pages_fast_only() return the common return value
  mm/gup: move gup_must_unshare() to mm/internal.h
  mm/gup: move private gup FOLL_ flags to internal.h

 include/linux/mm.h       |  69 --------
 include/linux/mm_types.h |  62 ++++---
 mm/gup.c                 | 370 +++++++++++++++++++--------------------
 mm/huge_memory.c         |  10 --
 mm/internal.h            |  81 +++++++++
 5 files changed, 292 insertions(+), 300 deletions(-)


base-commit: 41c457e96ba51547c6e80b125dcba91aa6a00699
-- 
2.39.0



             reply	other threads:[~2023-01-24 20:34 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-24 20:34 Jason Gunthorpe [this message]
2023-01-24 20:34 ` [PATCH v2 01/13] mm/gup: have internal functions get the mmap_read_lock() Jason Gunthorpe
2023-01-25  2:11   ` John Hubbard
2023-01-25  2:52     ` John Hubbard
2023-01-25 16:38     ` Jason Gunthorpe
2023-01-25 18:48       ` John Hubbard
2023-01-24 20:34 ` [PATCH v2 02/13] mm/gup: remove obsolete FOLL_LONGTERM comment Jason Gunthorpe
2023-01-25  2:13   ` John Hubbard
2023-02-08 14:25   ` David Hildenbrand
2023-01-24 20:34 ` [PATCH v2 03/13] mm/gup: don't call __gup_longterm_locked() if FOLL_LONGTERM cannot be set Jason Gunthorpe
2023-02-08 14:26   ` David Hildenbrand
2023-01-24 20:34 ` [PATCH v2 04/13] mm/gup: move try_grab_page() to mm/internal.h Jason Gunthorpe
2023-01-25  2:15   ` John Hubbard
2023-02-08 14:26   ` David Hildenbrand
2023-01-24 20:34 ` [PATCH v2 05/13] mm/gup: simplify the external interface functions and consolidate invariants Jason Gunthorpe
2023-01-25  2:30   ` John Hubbard
2023-01-24 20:34 ` [PATCH v2 06/13] mm/gup: add an assertion that the mmap lock is locked Jason Gunthorpe
2023-01-25  2:34   ` John Hubbard
2023-01-24 20:34 ` [PATCH v2 07/13] mm/gup: remove locked being NULL from faultin_vma_page_range() Jason Gunthorpe
2023-01-25  2:38   ` John Hubbard
2023-01-24 20:34 ` [PATCH v2 08/13] mm/gup: add FOLL_UNLOCKABLE Jason Gunthorpe
2023-01-24 20:34 ` [PATCH v2 09/13] mm/gup: make locked never NULL in the internal GUP functions Jason Gunthorpe
2023-01-25  3:00   ` John Hubbard
2023-01-24 20:34 ` [PATCH v2 10/13] mm/gup: remove pin_user_pages_fast_only() Jason Gunthorpe
2023-01-24 20:34 ` [PATCH v2 11/13] mm/gup: make get_user_pages_fast_only() return the common return value Jason Gunthorpe
2023-01-24 20:34 ` [PATCH v2 12/13] mm/gup: move gup_must_unshare() to mm/internal.h Jason Gunthorpe
2023-01-25  2:41   ` John Hubbard
2023-01-26 11:29   ` David Hildenbrand
2023-01-24 20:34 ` [PATCH v2 13/13] mm/gup: move private gup FOLL_ flags to internal.h Jason Gunthorpe
2023-01-25  2:44   ` John Hubbard
2023-01-26 12:48   ` David Hildenbrand
2023-01-26 12:55     ` Jason Gunthorpe
2023-01-26 13:06       ` David Hildenbrand
2023-01-26 14:41       ` Claudio Imbrenda
2023-01-26 14:46         ` David Hildenbrand
2023-01-26 15:05           ` Jason Gunthorpe
2023-01-26 15:39             ` Claudio Imbrenda
2023-01-26 16:35               ` Jason Gunthorpe
2023-01-26 17:24                 ` Claudio Imbrenda
2023-01-30 18:21                 ` Claudio Imbrenda
2023-01-30 18:24                   ` Jason Gunthorpe
2023-02-07 11:31                     ` Claudio Imbrenda
2023-02-07 12:40                       ` Jason Gunthorpe
2023-02-06 23:46 ` [PATCH v2 00/13] Simplify the external interface for GUP Jason Gunthorpe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0-v2-987e91b59705+36b-gup_tidy_jgg@nvidia.com \
    --to=jgg@nvidia.com \
    --cc=apopple@nvidia.com \
    --cc=david@redhat.com \
    --cc=dhowells@redhat.com \
    --cc=hch@infradead.org \
    --cc=jhubbard@nvidia.com \
    --cc=linux-mm@kvack.org \
    --cc=rppt@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.