All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kiryl Shutsemau <kas@kernel.org>
To: "Jose A. Perez de Azpillaga" <azpijr@gmail.com>
Cc: "Tal Zussman" <tz2294@columbia.edu>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Mike Rapoport" <rppt@kernel.org>, "Peter Xu" <peterx@redhat.com>,
	"James Houghton" <jthoughton@google.com>,
	"Andrea Arcangeli" <aarcange@redhat.com>,
	"Suren Baghdasaryan" <surenb@google.com>,
	"Balbir Singh" <balbirs@nvidia.com>,
	"Liam R. Howlett" <liam@infradead.org>,
	"Lorenzo Stoakes" <ljs@kernel.org>,
	"Vlastimil Babka" <vbabka@kernel.org>,
	"Jann Horn" <jannh@google.com>,
	"Pedro Falcato" <pfalcato@suse.de>,
	"Michał Mirosław" <mirq-linux@rere.qmqm.pl>,
	"Andrei Vagin" <avagin@gmail.com>,
	"Stephen Rothwell" <sfr@canb.auug.org.au>,
	"Arnd Bergmann" <arnd@arndb.de>,
	"Muhammad Usama Anjum" <usama.anjum@arm.com>,
	"David Hildenbrand" <david@kernel.org>, "Zi Yan" <ziy@nvidia.com>,
	"Matthew Brost" <matthew.brost@intel.com>,
	"Joshua Hahn" <joshua.hahnjy@gmail.com>,
	"Byungchul Park" <byungchul@sk.com>,
	"Gregory Price" <gourry@gourry.net>,
	"Ying Huang" <ying.huang@linux.alibaba.com>,
	"Alistair Popple" <apopple@nvidia.com>,
	"Baolin Wang" <baolin.wang@linux.alibaba.com>,
	"Nico Pache" <nico.pache@linux.dev>,
	"Ryan Roberts" <ryan.roberts@arm.com>,
	"Dev Jain" <dev.jain@arm.com>, "Barry Song" <baohua@kernel.org>,
	"Lance Yang" <lance.yang@linux.dev>,
	"Usama Arif" <usama.arif@linux.dev>,
	"Chris Down" <chris@chrisdown.name>,
	"Muchun Song" <muchun.song@linux.dev>,
	"Oscar Salvador" <osalvador@suse.de>,
	"Mikołaj Lenczewski" <miko.lenczewski@arm.com>,
	"Michal Hocko" <mhocko@suse.com>,
	"Mike Kravetz" <mike.kravetz@oracle.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH 11/12] mm/madvise: send UFFD_EVENT_REMOVE when installing guard regions
Date: Thu, 12 Nov 2026 11:57:17 +0000	[thread overview]
Message-ID: <avWnaR7VVEGa7yNp@thinkstation> (raw)
In-Reply-To: <db9ed03f-0b85-4360-a2e9-f6719773c7eb@gmail.com>

On Thu, Nov 12, 2026 at 10:40:38AM +0100, Jose A. Perez de Azpillaga wrote:
> On 11/12/26 12:21 AM, Tal Zussman wrote:
> > + Jose
> > 
> > On 11/11/26 2:25 PM, Kiryl Shutsemau wrote:
> >> On Wed, Nov 11, 2026 at 12:55:19PM -0500, Tal Zussman wrote:
> >>> On an anonymous VMA, the zap drops uffd-wp and RWP protection along with
> >>> the pages. Writes and accesses to the range after the guard is removed
> >>> are then not reported, and the manager cannot know that it has to
> >>> protect the range again.
> >>
> >> For RWP this only holds if the range is registered without MISSING.
> >>
> >> The zap frees the pages, so with MISSING the first access after the
> >> guard is removed is reported as a missing fault. And there is nothing to
> >> protect again: RWP only covers present PTEs, and a page faulted back in
> >> shows up as accessed in PAGEMAP_SCAN.
> >>
> > So this makes sense, but I think this gets at the documentation point
> > raised in the other thread. It seems that to use sync RWP "properly" it
> > needs to be combined with MINOR for shmem and hugetlb (and MISSING for
> > holes) and with MISSING for anonymous memory. Is that accurate?

Yes. Async mode needs neither: a page faulted back in is mapped without
the uffd bit and PAGEMAP_SCAN reports it as accessed.

> > If so, this should be stated much more explicitly in the
> > documentation + man page. I see that co-registering with MISSING is
> > mentioned, but not the rest of the points (reclaim, collapse, etc.)
> > The example in userfaultfd.rst also registers a MAP_SHARED mapping
> > only with RWP and MISSING, no MINOR, so that should be clarified
> > too.

Without MINOR the example can lose data. Eviction runs in sync mode,
but an offset that is not mapped in guest_mem, either pre-populated or
zapped by shmem reclaim or collapse, is mapped back on access without a
fault. A vCPU write between the pwrite() and the hole punch is lost.
With MINOR the access faults and waits for the handler, like an RWP
fault.

> > Hopefully this will make it into Jose's documentation patch.
> 
> okay, if Kiryl is okay with that I will add it to my upcoming patch.

Yes, please.

-- 
  Kiryl Shutsemau / Kirill A. Shutemov

  reply	other threads:[~2026-11-12 11:57 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-11 17:55 [PATCH 00/12] userfaultfd: assorted fixes (part 1) Tal Zussman
2026-11-11 17:55 ` [PATCH 01/12] userfaultfd: use anonymous memory for UFFDIO_ZEROPAGE on private file mappings Tal Zussman
2026-11-12 18:05   ` Lorenzo Stoakes (ARM)
2026-11-11 17:55 ` [PATCH 02/12] userfaultfd: refuse UFFDIO_MOVE into a non-present huge destination PMD Tal Zussman
2026-11-12 17:56   ` sashiko-bot
2026-11-12 18:07   ` Lorenzo Stoakes (ARM)
2026-11-11 17:55 ` [PATCH 03/12] fs/proc/task_mmu: downgrade writable migration entries in PAGEMAP_SCAN write-protect Tal Zussman
2026-11-12 18:34   ` Lorenzo Stoakes (ARM)
2026-11-11 17:55 ` [PATCH 04/12] mm/migrate: keep the uffd bit when restoring a writable migration entry Tal Zussman
2026-11-12 18:44   ` Lorenzo Stoakes (ARM)
2026-11-11 17:55 ` [PATCH 05/12] fs/proc/task_mmu: write-protect device-private THPs in PAGEMAP_SCAN Tal Zussman
2026-11-12 19:34   ` Lorenzo Stoakes (ARM)
2026-11-11 17:55 ` [PATCH 06/12] mm/huge_memory: build the moved huge zero PMD from the destination VMA Tal Zussman
2026-11-11 19:12   ` Kiryl Shutsemau
2026-11-12 17:57   ` sashiko-bot
2026-11-11 17:55 ` [PATCH 07/12] mm/mremap: resolve uffd state when the context is dropped, not during the move Tal Zussman
2026-11-11 19:20   ` Kiryl Shutsemau
2026-11-11 22:39     ` Tal Zussman
2026-11-12 11:44   ` Lorenzo Stoakes (ARM)
2026-11-12 16:00     ` Tal Zussman
2026-11-12 17:57   ` sashiko-bot
2026-11-11 17:55 ` [PATCH 08/12] mm/migrate_device: do not migrate a uffd-protected zero page Tal Zussman
2026-11-11 17:55 ` [PATCH 09/12] mm/madvise: let a guard marker carry the uffd-wp bit Tal Zussman
2026-11-12 11:21   ` Lorenzo Stoakes (ARM)
2026-11-12 16:06     ` Tal Zussman
2026-11-11 17:55 ` [PATCH 10/12] mm: set the uffd-wp bit on a guard marker when write-protecting Tal Zussman
2026-11-12 11:43   ` Lorenzo Stoakes (ARM)
2026-11-11 17:55 ` [PATCH 11/12] mm/madvise: send UFFD_EVENT_REMOVE when installing guard regions Tal Zussman
2026-11-11 19:25   ` Kiryl Shutsemau
2026-11-11 23:21     ` Tal Zussman
2026-11-12  9:40       ` Jose A. Perez de Azpillaga
2026-11-12 11:57         ` Kiryl Shutsemau [this message]
2026-11-12 11:03   ` Lorenzo Stoakes (ARM)
2026-11-12 11:06     ` Lorenzo Stoakes (ARM)
2026-11-12 15:56     ` Tal Zussman
2026-11-12 17:57   ` sashiko-bot
2026-11-11 17:55 ` [PATCH 12/12] mm/userfaultfd: check hugetlb end alignment in UFFDIO_UNREGISTER pre-scan Tal Zussman
2026-11-12 19:52   ` Lorenzo Stoakes (ARM)

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=avWnaR7VVEGa7yNp@thinkstation \
    --to=kas@kernel.org \
    --cc=aarcange@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=apopple@nvidia.com \
    --cc=arnd@arndb.de \
    --cc=avagin@gmail.com \
    --cc=azpijr@gmail.com \
    --cc=balbirs@nvidia.com \
    --cc=baohua@kernel.org \
    --cc=baolin.wang@linux.alibaba.com \
    --cc=byungchul@sk.com \
    --cc=chris@chrisdown.name \
    --cc=david@kernel.org \
    --cc=dev.jain@arm.com \
    --cc=gourry@gourry.net \
    --cc=jannh@google.com \
    --cc=joshua.hahnjy@gmail.com \
    --cc=jthoughton@google.com \
    --cc=lance.yang@linux.dev \
    --cc=liam@infradead.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=ljs@kernel.org \
    --cc=matthew.brost@intel.com \
    --cc=mhocko@suse.com \
    --cc=mike.kravetz@oracle.com \
    --cc=miko.lenczewski@arm.com \
    --cc=mirq-linux@rere.qmqm.pl \
    --cc=muchun.song@linux.dev \
    --cc=nico.pache@linux.dev \
    --cc=osalvador@suse.de \
    --cc=peterx@redhat.com \
    --cc=pfalcato@suse.de \
    --cc=rppt@kernel.org \
    --cc=ryan.roberts@arm.com \
    --cc=sfr@canb.auug.org.au \
    --cc=surenb@google.com \
    --cc=tz2294@columbia.edu \
    --cc=usama.anjum@arm.com \
    --cc=usama.arif@linux.dev \
    --cc=vbabka@kernel.org \
    --cc=ying.huang@linux.alibaba.com \
    --cc=ziy@nvidia.com \
    /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.