All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Gunthorpe <jgg@nvidia.com>
To: David Hildenbrand <david@redhat.com>
Cc: linux-kernel@vger.kernel.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Hugh Dickins <hughd@google.com>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	David Rientjes <rientjes@google.com>,
	Shakeel Butt <shakeelb@google.com>,
	John Hubbard <jhubbard@nvidia.com>,
	Mike Kravetz <mike.kravetz@oracle.com>,
	Mike Rapoport <rppt@linux.ibm.com>,
	Yang Shi <shy828301@gmail.com>,
	"Kirill A . Shutemov" <kirill.shutemov@linux.intel.com>,
	Matthew Wilcox <willy@infradead.org>,
	Vlastimil Babka <vbabka@suse.cz>, Jann Horn <jannh@google.com>,
	Michal Hocko <mhocko@kernel.org>, Nadav Amit <namit@vmware.com>,
	Rik van Riel <riel@surriel.com>, Roman Gushchin <guro@fb.com>,
	Andrea Arcangeli <aarcange@redhat.com>,
	Peter Xu <peterx@redhat.com>, Donald Dutile <ddutile@redhat.com>,
	Christoph Hellwig <hch@lst.de>, Oleg Nesterov <oleg@redhat.com>,
	Jan Kara <jack@suse.cz>, Liang Zhang <zhangliang5@huawei.com>,
	Pedro Gomes <pedrodemargomes@gmail.com>,
	Oded Gabbay <oded.gabbay@gmail.com>,
	linux-mm@kvack.org
Subject: Re: [PATCH RFC 12/13] mm/gup: trigger FAULT_FLAG_UNSHARE when R/O-pinning a possibly shared anonymous page
Date: Wed, 2 Mar 2022 16:59:34 -0400	[thread overview]
Message-ID: <20220302205934.GV219866@nvidia.com> (raw)
In-Reply-To: <fb895ba3-9d7e-7421-d5c6-f5e7a2d1231a@redhat.com>

On Wed, Mar 02, 2022 at 09:38:09PM +0100, David Hildenbrand wrote:

> (a) I want a R/O pin to observe file modifications.
> (b) I want the R/O pin to *not* observe file modifications but observe
>     my (eventual? if any) private modifications,

A scenario I know that motivated this is fairly straightfoward:

   static char data[] = {};

   ibv_reg_mr(data, READ_ONLY)
   data[0] = 1
   .. go touch data via DMA ..

We want to reliably observe the '1'

What is happening under the covers is that 'data' is placed in the
.data segment and becomes a file backed MAP_PRIVATE page. The write
COWs that page

It would work OK if it was in .bss instead

I think the FOLL_FORCE is there because otherwise the trick doesn't
work on true RO pages and the API becomes broken.

Jason


  reply	other threads:[~2022-03-02 20:59 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-24 12:26 [PATCH RFC 00/13] mm: COW fixes part 2: reliable GUP pins of anonymous pages David Hildenbrand
2022-02-24 12:26 ` [PATCH RFC 01/13] mm/rmap: fix missing swap_free() in try_to_unmap() after arch_unmap_one() failed David Hildenbrand
2022-02-24 16:26   ` Khalid Aziz
2022-02-24 12:26 ` [PATCH RFC 02/13] mm/hugetlb: take src_mm->write_protect_seq in copy_hugetlb_page_range() David Hildenbrand
2022-02-24 12:26 ` [PATCH RFC 03/13] mm/memory: slightly simplify copy_present_pte() David Hildenbrand
2022-02-25  5:15   ` Hillf Danton
2022-02-25  8:01     ` David Hildenbrand
2022-02-24 12:26 ` [PATCH RFC 04/13] mm/rmap: split page_dup_rmap() into page_dup_file_rmap() and page_try_dup_anon_rmap() David Hildenbrand
2022-02-24 12:26 ` [PATCH RFC 05/13] mm/rmap: remove do_page_add_anon_rmap() David Hildenbrand
2022-02-24 17:29   ` Linus Torvalds
2022-02-24 17:41     ` David Hildenbrand
2022-02-24 17:48       ` Linus Torvalds
2022-02-25  9:01         ` David Hildenbrand
2022-02-24 12:26 ` [PATCH RFC 06/13] mm/rmap: pass rmap flags to hugepage_add_anon_rmap() David Hildenbrand
2022-02-24 17:37   ` Linus Torvalds
2022-02-24 12:26 ` [PATCH RFC 07/13] mm/rmap: use page_move_anon_rmap() when reusing a mapped PageAnon() page exclusively David Hildenbrand
2022-02-24 12:26 ` [PATCH RFC 08/13] mm/page-flags: reuse PG_slab as PG_anon_exclusive for PageAnon() pages David Hildenbrand
2022-02-24 12:26 ` [PATCH RFC 09/13] mm: remember exclusively mapped anonymous pages with PG_anon_exclusive David Hildenbrand
2022-02-24 12:26 ` [PATCH RFC 10/13] mm/gup: disallow follow_page(FOLL_PIN) David Hildenbrand
2022-02-24 12:26 ` [PATCH RFC 11/13] mm: support GUP-triggered unsharing of anonymous pages David Hildenbrand
2022-02-24 12:26 ` [PATCH RFC 12/13] mm/gup: trigger FAULT_FLAG_UNSHARE when R/O-pinning a possibly shared anonymous page David Hildenbrand
2022-03-02 16:55   ` Jason Gunthorpe
2022-03-02 20:38     ` David Hildenbrand
2022-03-02 20:59       ` Jason Gunthorpe [this message]
2022-03-03  8:07         ` David Hildenbrand
2022-03-03  1:47       ` John Hubbard
2022-03-03  8:06         ` David Hildenbrand
2022-03-09  7:37           ` David Hildenbrand
2022-02-24 12:26 ` [PATCH RFC 13/13] mm/gup: sanity-check with CONFIG_DEBUG_VM that anonymous pages are exclusive when (un)pinning David Hildenbrand
2022-03-01  8:24 ` [PATCH RFC 00/13] mm: COW fixes part 2: reliable GUP pins of anonymous pages David Hildenbrand

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=20220302205934.GV219866@nvidia.com \
    --to=jgg@nvidia.com \
    --cc=aarcange@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=david@redhat.com \
    --cc=ddutile@redhat.com \
    --cc=guro@fb.com \
    --cc=hch@lst.de \
    --cc=hughd@google.com \
    --cc=jack@suse.cz \
    --cc=jannh@google.com \
    --cc=jhubbard@nvidia.com \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@kernel.org \
    --cc=mike.kravetz@oracle.com \
    --cc=namit@vmware.com \
    --cc=oded.gabbay@gmail.com \
    --cc=oleg@redhat.com \
    --cc=pedrodemargomes@gmail.com \
    --cc=peterx@redhat.com \
    --cc=riel@surriel.com \
    --cc=rientjes@google.com \
    --cc=rppt@linux.ibm.com \
    --cc=shakeelb@google.com \
    --cc=shy828301@gmail.com \
    --cc=torvalds@linux-foundation.org \
    --cc=vbabka@suse.cz \
    --cc=willy@infradead.org \
    --cc=zhangliang5@huawei.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.