Re: [PATCH v2] mm: fix mlock incorrent event account

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri 26-05-17 11:06:31, Vlastimil Babka wrote:
> On 05/26/2017 05:54 AM, zhongjiang wrote:
> > From: zhong jiang <zhongjiang@xxxxxxxxxx>
> > 
> > Recently, when I address in the issue, Subject "mlock: fix mlock count
> > can not decrease in race condition" had been take over, I review
> > the code and find the potential issue. it will result in the incorrect
> > account, it will make us misunderstand straightforward.
> > 
> > The following testcase can prove the issue.
> > 
> > int main(void)
> > {
> >     char *map;
> >     int fd;
> > 
> >     fd = open("test", O_CREAT|O_RDWR);
> >     unlink("test");
> >     ftruncate(fd, 4096);
> >     map = mmap(NULL, 4096, PROT_WRITE, MAP_PRIVATE, fd, 0);
> >     map[0] = 11;
> >     mlock(map, 4096);
> >     ftruncate(fd, 0);
> >     close(fd);
> >     munlock(map, 4096);
> >     munmap(map, 4096);
> > 
> >     return 0;
> > }
> > 
> > before:
> > unevictable_pgs_mlocked 10589
> > unevictable_pgs_munlocked 10588
> > unevictable_pgs_cleared 1
> > 
> > apply the patch;
> > after:
> > unevictable_pgs_mlocked 9497
> > unevictable_pgs_munlocked 9497
> > unevictable_pgs_cleared 1
> > 
> > unmap_mapping_range unmap them,  page_remove_rmap will deal with
> > clear_page_mlock situation.  we clear page Mlock flag and successful
> > isolate the page,  the page will putback the evictable list. but it is not
> > record the munlock event.
> > 
> > The patch add the event account when successful page isolation.
> > 
> > Signed-off-by: zhong jiang <zhongjiang@xxxxxxxxxx>
> 
> Hi,
> 
> I think this is by design. UNEVICTABLE_PGMUNLOCKED is supposed for explicit
> munlock() actions from userspace. Truncation etc is counted by
> UNEVICTABLE_PGCLEARED.

I guess we really need to change
$ git grep UNEVICTABLE_PGCLEARED -- Documentation/
$

into something more comprehensive
-- 
Michal Hocko
SUSE Labs

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]
  Powered by Linux