Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1683328

Re: [RFC PATCH 0/1] mm/mremap: add MREMAP_MIRROR flag

From Mike Kravetz <mike.kravetz@oracle.com>
Newsgroups linux.kernel
Subject Re: [RFC PATCH 0/1] mm/mremap: add MREMAP_MIRROR flag
Date 2017-07-07 19:20 +0200
Message-ID <u0F58-74W-5@gated-at.bofh.it> (permalink)
References <u0hFv-7Q8-11@gated-at.bofh.it> <u0zj4-3e7-23@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On 07/07/2017 04:03 AM, Anshuman Khandual wrote:
> On 07/06/2017 09:47 PM, Mike Kravetz wrote:
>> The mremap system call has the ability to 'mirror' parts of an existing
>> mapping.  To do so, it creates a new mapping that maps the same pages as
>> the original mapping, just at a different virtual address.  This
>> functionality has existed since at least the 2.6 kernel [1].  A comment
>> was added to the code to help preserve this feature.
> 
> In mremap() implementation move_vma() attempts to do do_unmap() after
> move_page_tables(). do_unmap() on the original VMA bails out because
> the requested length being 0. Hence both the original VMA and the new
> VMA remains after the page table migration. Seems like this whole
> mirror function is by coincidence or it has been designed that way ?

I honestly do not know.  From what I can tell, the functionality existed
in 2.4.  The email thread [1], exists because it was 'accidentally' removed
in 2.6.  All of this is before git history (and my involvement).

My 'guess' is that this functionality was created by coincidence.  Someone
noticed it and took advantage of it.  When it was removed, their code broke. 
The code was 'fixed' and a comment was added to the code in an attempt to
prevent removing the functionality in the future.  Again, this is speculation
as I was not originally involved.

The point of this RFC is to consider adding the functionality to the API.
If we are carrying the functionality in the code, we should at least document
so that application programmers can take advantage of it.

[1] https://lkml.org/lkml/2004/1/12/260
-- 
Mike Kravetz

Back to linux.kernel | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

[RFC PATCH 0/1] mm/mremap: add MREMAP_MIRROR flag Mike Kravetz <mike.kravetz@oracle.com> - 2017-07-06 18:20 +0200
  Re: [RFC PATCH 0/1] mm/mremap: add MREMAP_MIRROR flag Anshuman Khandual <khandual@linux.vnet.ibm.com> - 2017-07-07 10:30 +0200
    Re: [RFC PATCH 0/1] mm/mremap: add MREMAP_MIRROR flag Mike Kravetz <mike.kravetz@oracle.com> - 2017-07-07 19:10 +0200
  Re: [RFC PATCH 0/1] mm/mremap: add MREMAP_MIRROR flag Anshuman Khandual <khandual@linux.vnet.ibm.com> - 2017-07-07 13:10 +0200
    Re: [RFC PATCH 0/1] mm/mremap: add MREMAP_MIRROR flag Mike Kravetz <mike.kravetz@oracle.com> - 2017-07-07 19:20 +0200

csiph-web