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>