public inbox for linux-mm@kvack.org
 help / color / mirror / Atom feed
From: Anthony Yznaga <anthony.yznaga@oracle.com>
To: David Hildenbrand <david@redhat.com>,
	Matthew Wilcox <willy@infradead.org>
Cc: linux-mm@kvack.org, akpm@linux-foundation.org,
	andreyknvl@gmail.com, arnd@arndb.de, bp@alien8.de,
	brauner@kernel.org, bsegall@google.com, corbet@lwn.net,
	dave.hansen@linux.intel.com, dietmar.eggemann@arm.com,
	ebiederm@xmission.com, hpa@zytor.com, jakub.wartak@mailbox.org,
	jannh@google.com, juri.lelli@redhat.com, khalid@kernel.org,
	liam.howlett@oracle.com, linyongting@bytedance.com,
	lorenzo.stoakes@oracle.com, luto@kernel.org,
	markhemm@googlemail.com, maz@kernel.org, mhiramat@kernel.org,
	mgorman@suse.de, mhocko@suse.com, mingo@redhat.com,
	muchun.song@linux.dev, neilb@suse.de, osalvador@suse.de,
	pcc@google.com, peterz@infradead.org, pfalcato@suse.de,
	rostedt@goodmis.org, rppt@kernel.org, shakeel.butt@linux.dev,
	surenb@google.com, tglx@linutronix.de, vasily.averin@linux.dev,
	vbabka@suse.cz, vincent.guittot@linaro.org,
	viro@zeniv.linux.org.uk, vschneid@redhat.com, x86@kernel.org,
	xhao@linux.alibaba.com, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org
Subject: Re: [PATCH v3 00/22] Add support for shared PTEs across processes
Date: Tue, 9 Sep 2025 11:29:20 -0700	[thread overview]
Message-ID: <46b59f85-bacb-4e60-97d3-cbcd3c7b77c2@oracle.com> (raw)
In-Reply-To: <3fb2b394-fa75-4576-ad8d-6480741f0c1b@redhat.com>



On 9/9/25 12:53 AM, David Hildenbrand wrote:
> On 08.09.25 23:14, Anthony Yznaga wrote:
>>
>>
>> On 9/8/25 1:59 PM, Matthew Wilcox wrote:
>>> On Mon, Sep 08, 2025 at 10:32:22PM +0200, David Hildenbrand wrote:
>>>> In the context of this series, how do we handle VMA-modifying 
>>>> functions like
>>>> mprotect/some madvise/mlock/mempolicy/...? Are they currently 
>>>> blocked when
>>>> applied to a mshare VMA?
>>>
>>> I haven't been following this series recently, so I'm not sure what
>>> Anthony will say.  My expectation is that the shared VMA is somewhat
>>> transparent to these operations; that is they are faulty if they span
>>> the boundary of the mshare VMA, but otherwise they pass through and
>>> affect the shared VMAs.
>>>
>>> That does raise the interesting question of how mlockall() affects
>>> an mshare VMA.  I'm tempted to say that it should affect the shared
>>> VMA, but reasonable people might well disagree with me and have
>>> excellent arguments.
> 
> Right, I think there are (at least) two possible models.
> 
> (A) It's just a special file mapping.
> 
> How that special file is orchestrated is not controlled through VMA 
> change operations (mprotect etc) from one process but through dedicated 
> ioctl.
> 
> (B) It's something different.
> 
> VMA change operations will affect how that file is orchestrated but not 
> modify how the VMA in each process looks like.
> 
> 
> I still believe that (A) is clean and (B) is asking for trouble. But in 
> any case, this is one of the most vital parts of mshare integration and 
> should be documented clearly.
> 
>>>
>>>> And how are we handling other page table walkers that don't modify 
>>>> VMAs like
>>>> MADV_DONTNEED, smaps, migrate_pages, ... etc?
>>>
>>> I'd expect those to walk into the shared region too.
>>
>> I've received conflicting feedback in previous discussions that things
>> like protection changes should be done via ioctl. I do thing somethings
>> are appropriate for ioctl like map and unmap, but I also like the idea
>> of the existing APIs being transparent to mshare so long as they are
>> operating entirely with an mshare range and not crossing boundaries.
> 
> We have to be very careful here to not create a mess (this is all going 
> to be unchangeable API later), and getting the opinion from other VMA 
> handling folks (i.e., Lorenzo, Liam, Vlastimil, Pedro) will be crucial.
> 
> So if can you answer the questions I raised in more detail? In 
> particular how it works with the current series or what the current 
> long-term plans are?

With respect to the current series there are some deficiencies. For 
madvise(), there are some advices like MADV_DONTNEED that will operate 
on the shared page table without taking the needed locks. Many will fail 
for various reasons. I'll add a check to reject trying to apply advise 
to msharefs VMAs. The plan is to add an ioctl for applying advice to the 
memory in an mshare region. If it makes sense to make it more 
transparent then I think that's something could come later.

Things like migrate_pages() that use the rmap to get to VMAs are in 
better shape because they will naturally find the real VMA with its 
vm_mm pointing to an mshare mm.

Another area I'm currently working on is ensuring mmu notifiers work. 
There is some locking trickery to work out there.

Currently the plan is to add ioctls for protections changes, advice, and 
whatever else makes sense. I'm definitely open to feedback on any aspect 
of this.



> 
> Thanks!
> 



  reply	other threads:[~2025-09-09 18:30 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-20  1:03 [PATCH v3 00/22] Add support for shared PTEs across processes Anthony Yznaga
2025-08-20  1:03 ` [PATCH v3 01/22] mm: Add msharefs filesystem Anthony Yznaga
2025-09-08 18:29   ` Liam R. Howlett
2025-09-08 19:09     ` Anthony Yznaga
2025-09-10 12:14   ` Pedro Falcato
2025-09-10 12:46     ` David Hildenbrand
2025-08-20  1:03 ` [PATCH v3 02/22] mm/mshare: pre-populate msharefs with information file Anthony Yznaga
2025-08-20  1:03 ` [PATCH v3 03/22] mm/mshare: make msharefs writable and support directories Anthony Yznaga
2025-08-20  1:03 ` [PATCH v3 04/22] mm/mshare: allocate an mm_struct for msharefs files Anthony Yznaga
2025-08-20  1:03 ` [PATCH v3 05/22] mm/mshare: add ways to set the size of an mshare region Anthony Yznaga
2025-08-20  1:03 ` [PATCH v3 06/22] mm/mshare: Add a vma flag to indicate " Anthony Yznaga
2025-09-08 18:45   ` David Hildenbrand
2025-09-08 18:56     ` Anthony Yznaga
2025-09-08 19:02       ` David Hildenbrand
2025-09-08 19:03         ` Anthony Yznaga
2025-08-20  1:04 ` [PATCH v3 07/22] mm/mshare: Add mmap support Anthony Yznaga
2025-08-20 19:02   ` kernel test robot
2025-08-20  1:04 ` [PATCH v3 08/22] mm/mshare: flush all TLBs when updating PTEs in an mshare range Anthony Yznaga
2025-08-20  1:04 ` [PATCH v3 09/22] sched/numa: do not scan msharefs vmas Anthony Yznaga
2025-08-20  1:04 ` [PATCH v3 10/22] mm: add mmap_read_lock_killable_nested() Anthony Yznaga
2025-08-20  1:04 ` [PATCH v3 11/22] mm: add and use unmap_page_range vm_ops hook Anthony Yznaga
2025-08-21 15:40   ` kernel test robot
2025-08-20  1:04 ` [PATCH v3 12/22] mm: introduce PUD page table shared count Anthony Yznaga
2025-08-20  1:04 ` [PATCH v3 13/22] mm/mshare: prepare for page table sharing support Anthony Yznaga
2025-09-15 15:27   ` Lorenzo Stoakes
2025-08-20  1:04 ` [PATCH v3 14/22] x86/mm: enable page table sharing Anthony Yznaga
2025-08-20  1:04 ` [PATCH v3 15/22] mm: create __do_mmap() to take an mm_struct * arg Anthony Yznaga
2025-08-20  1:04 ` [PATCH v3 16/22] mm: pass the mm in vma_munmap_struct Anthony Yznaga
2025-08-20  1:04 ` [PATCH v3 17/22] sched/mshare: mshare ownership Anthony Yznaga
2025-08-20  1:04 ` [PATCH v3 18/22] mm/mshare: Add an ioctl for mapping objects in an mshare region Anthony Yznaga
2025-08-20 20:36   ` kernel test robot
2025-08-20  1:04 ` [PATCH v3 19/22] mm/mshare: Add an ioctl for unmapping " Anthony Yznaga
2025-08-20  1:04 ` [PATCH v3 20/22] mm/mshare: support mapping files and anon hugetlb " Anthony Yznaga
2025-08-20  1:04 ` [PATCH v3 21/22] mm/mshare: provide a way to identify an mm as an mshare host mm Anthony Yznaga
2025-08-20  1:04 ` [PATCH v3 22/22] mm/mshare: charge fault handling allocations to the mshare owner Anthony Yznaga
2025-09-08 18:50   ` David Hildenbrand
2025-09-08 19:21     ` Anthony Yznaga
2025-09-08 20:28       ` David Hildenbrand
2025-09-08 20:55         ` Anthony Yznaga
2025-09-08 20:32 ` [PATCH v3 00/22] Add support for shared PTEs across processes David Hildenbrand
2025-09-08 20:59   ` Matthew Wilcox
2025-09-08 21:14     ` Anthony Yznaga
2025-09-09  7:53       ` David Hildenbrand
2025-09-09 18:29         ` Anthony Yznaga [this message]
2025-09-09 19:06         ` Lorenzo Stoakes
2026-02-20 21:35 ` Kalesh Singh
2026-02-21 12:40   ` Pedro Falcato
2026-02-23 17:43     ` Kalesh Singh
2026-02-23 19:55       ` anthony.yznaga
2026-02-25 22:53         ` Kalesh Singh
2026-02-24  9:40   ` David Hildenbrand (Arm)
2026-02-25 23:06     ` Kalesh Singh
2026-02-26  9:02       ` David Hildenbrand (Arm)
2026-02-26 21:22       ` Pedro Falcato
2026-02-27  6:34         ` Kalesh Singh

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=46b59f85-bacb-4e60-97d3-cbcd3c7b77c2@oracle.com \
    --to=anthony.yznaga@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=andreyknvl@gmail.com \
    --cc=arnd@arndb.de \
    --cc=bp@alien8.de \
    --cc=brauner@kernel.org \
    --cc=bsegall@google.com \
    --cc=corbet@lwn.net \
    --cc=dave.hansen@linux.intel.com \
    --cc=david@redhat.com \
    --cc=dietmar.eggemann@arm.com \
    --cc=ebiederm@xmission.com \
    --cc=hpa@zytor.com \
    --cc=jakub.wartak@mailbox.org \
    --cc=jannh@google.com \
    --cc=juri.lelli@redhat.com \
    --cc=khalid@kernel.org \
    --cc=liam.howlett@oracle.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linyongting@bytedance.com \
    --cc=lorenzo.stoakes@oracle.com \
    --cc=luto@kernel.org \
    --cc=markhemm@googlemail.com \
    --cc=maz@kernel.org \
    --cc=mgorman@suse.de \
    --cc=mhiramat@kernel.org \
    --cc=mhocko@suse.com \
    --cc=mingo@redhat.com \
    --cc=muchun.song@linux.dev \
    --cc=neilb@suse.de \
    --cc=osalvador@suse.de \
    --cc=pcc@google.com \
    --cc=peterz@infradead.org \
    --cc=pfalcato@suse.de \
    --cc=rostedt@goodmis.org \
    --cc=rppt@kernel.org \
    --cc=shakeel.butt@linux.dev \
    --cc=surenb@google.com \
    --cc=tglx@linutronix.de \
    --cc=vasily.averin@linux.dev \
    --cc=vbabka@suse.cz \
    --cc=vincent.guittot@linaro.org \
    --cc=viro@zeniv.linux.org.uk \
    --cc=vschneid@redhat.com \
    --cc=willy@infradead.org \
    --cc=x86@kernel.org \
    --cc=xhao@linux.alibaba.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox