On Wed 26-07-17 09:54:26, Anshuman Khandual wrote:
> On 07/25/2017 07:06 PM, Michal Hocko wrote:
> > On Tue 25-07-17 12:06:57, Anshuman Khandual wrote:
> > [...]
> >> diff --git a/tools/testing/selftests/vm/mremap_mirror_private_anon.c 
> >> b/tools/testing/selftests/vm/mremap_mirror_private_anon.c
> > [...]
> >> +  ptr = mmap(NULL, alloc_size, PROT_READ | PROT_WRITE,
> >> +                  MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
> >> +  if (ptr == MAP_FAILED) {
> >> +          perror("map() failed");
> >> +          return -1;
> >> +  }
> >> +  memset(ptr, PATTERN, alloc_size);
> >> +
> >> +  mirror_ptr =  (char *) mremap(ptr, 0, alloc_size, MREMAP_MAYMOVE);
> >> +  if (mirror_ptr == MAP_FAILED) {
> >> +          perror("mremap() failed");
> >> +          return -1;
> >> +  }
> > 
> > What is the point of this test? It will break with Mike's patch very
> > soon. Btw. it never worked.
> 
> It works now. The new 'mirrored' buffer does not have same elements
> as that of the original one.

So what exactly are you testing here? The current implementation or the
semantic of mremap. Because having a different content after mremap
doesn't make _any_ sense to me. I might be misreading the intention of
the syscall but to me it sounds like the content should be same as the
original one... If my reading is wrong then -EINVAL for anon mremaps is
simply wrong.
-- 
Michal Hocko
SUSE Labs

Reply via email to