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


Groups > linux.kernel > #1687152

Re: [PATCH] mm/mremap: Fail map duplication attempts for private mappings

From Michal Hocko <mhocko@kernel.org>
Newsgroups linux.kernel
Subject Re: [PATCH] mm/mremap: Fail map duplication attempts for private mappings
Date 2017-07-14 10:30 +0200
Message-ID <u3494-LP-15@gated-at.bofh.it> (permalink)
References <u2OH2-7vy-51@gated-at.bofh.it> <u2ROy-1dB-29@gated-at.bofh.it> <u2UW6-34i-33@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Thu 13-07-17 15:33:47, Mike Kravetz wrote:
> On 07/13/2017 12:11 PM, Vlastimil Babka wrote:
> > [+CC linux-api]
> > 
> > On 07/13/2017 05:58 PM, Mike Kravetz wrote:
> >> mremap will create a 'duplicate' mapping if old_size == 0 is
> >> specified.  Such duplicate mappings make no sense for private
> >> mappings.  If duplication is attempted for a private mapping,
> >> mremap creates a separate private mapping unrelated to the
> >> original mapping and makes no modifications to the original.
> >> This is contrary to the purpose of mremap which should return
> >> a mapping which is in some way related to the original.
> >>
> >> Therefore, return EINVAL in the case where if an attempt is
> >> made to duplicate a private mapping.
> >>
> >> Signed-off-by: Mike Kravetz <mike.kravetz@oracle.com>
> > 
> > Acked-by: Vlastimil Babka <vbabka@suse.cz>
> > 
> 
> In another e-mail thread, Andrea makes the case that mremap(old_size == 0)
> of private file backed mappings could possibly be used for something useful.
> For example to create a private COW mapping.

What does this mean exactly? I do not see it would force CoW so again
the new mapping could fail with the basic invariant that the content
of the new mapping should match the old one (e.g. old mapping already
CoWed some pages the new mapping would still contain the origin content
unless I am missing something).

[...]
> +	/*
> +	 * !old_len  is a special case where a mapping is 'duplicated'.
> +	 * Do not allow this for private anon mappings.
> +	 */
> +	if (!old_len && vma_is_anonymous(vma) &&
> +	    !(vma->vm_flags & (VM_SHARED | VM_MAYSHARE)))
> +		return ERR_PTR(-EINVAL);

Why is vma_is_anonymous() without VM_*SHARE* check insufficient?
-- 
Michal Hocko
SUSE Labs

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


Thread

[PATCH] mm/mremap: Fail map duplication attempts for private mappings Mike Kravetz <mike.kravetz@oracle.com> - 2017-07-13 18:00 +0200
  Re: [PATCH] mm/mremap: Fail map duplication attempts for private  mappings Vlastimil Babka <vbabka@suse.cz> - 2017-07-13 21:20 +0200
    Re: [PATCH] mm/mremap: Fail map duplication attempts for private  mappings Mike Kravetz <mike.kravetz@oracle.com> - 2017-07-14 00:40 +0200
      Re: [PATCH] mm/mremap: Fail map duplication attempts for private  mappings Anshuman Khandual <khandual@linux.vnet.ibm.com> - 2017-07-14 07:00 +0200
      Re: [PATCH] mm/mremap: Fail map duplication attempts for private  mappings Michal Hocko <mhocko@kernel.org> - 2017-07-14 10:30 +0200
        Re: [PATCH] mm/mremap: Fail map duplication attempts for private  mappings Mike Kravetz <mike.kravetz@oracle.com> - 2017-07-14 19:30 +0200
          Re: [PATCH] mm/mremap: Fail map duplication attempts for private  mappings Michal Hocko <mhocko@kernel.org> - 2017-07-17 08:50 +0200

csiph-web