* [RFC PATCH] mm: fix mlock incorrent event account @ 2017-05-25 7:59 zhongjiang 2017-05-25 8:13 ` Michal Hocko 0 siblings, 1 reply; 6+ messages in thread From: zhongjiang @ 2017-05-25 7:59 UTC (permalink / raw) To: akpm; +Cc: vbabka, mhocko, qiuxishi, linux-mm, zhongjiang From: zhong jiang <zhongjiang@huawei.com> when clear_page_mlock call, we had finish the page isolate successfully, but it fails to increase the UNEVICTABLE_PGMUNLOCKED account. The patch add the event account when successful page isolation. Signed-off-by: zhong jiang <zhongjiang@huawei.com> --- mm/mlock.c | 1 + 1 file changed, 1 insertion(+) diff --git a/mm/mlock.c b/mm/mlock.c index c483c5c..941930b 100644 --- a/mm/mlock.c +++ b/mm/mlock.c @@ -64,6 +64,7 @@ void clear_page_mlock(struct page *page) -hpage_nr_pages(page)); count_vm_event(UNEVICTABLE_PGCLEARED); if (!isolate_lru_page(page)) { + count_vm_event(UNEVICTABLE_PGMUNLOCKED); putback_lru_page(page); } else { /* -- 1.8.3.1 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [RFC PATCH] mm: fix mlock incorrent event account 2017-05-25 7:59 [RFC PATCH] mm: fix mlock incorrent event account zhongjiang @ 2017-05-25 8:13 ` Michal Hocko 2017-05-25 12:14 ` zhong jiang 2017-05-25 13:48 ` zhong jiang 0 siblings, 2 replies; 6+ messages in thread From: Michal Hocko @ 2017-05-25 8:13 UTC (permalink / raw) To: zhongjiang; +Cc: akpm, vbabka, qiuxishi, linux-mm On Thu 25-05-17 15:59:39, zhongjiang wrote: > From: zhong jiang <zhongjiang@huawei.com> > > when clear_page_mlock call, we had finish the page isolate successfully, > but it fails to increase the UNEVICTABLE_PGMUNLOCKED account. > > The patch add the event account when successful page isolation. Could you describe _what_ is the problem, how it can be _triggered_ and _how_ serious it is. Is it something that can be triggered from userspace? The mlock code is really tricky and it is far from trivial to see whether this is obviously right or a wrong assumption on your side. Before people go and spend time reviewing it is fair to introduce them to the problem. I believe this is not the first time I am giving you this feedback so I would _really_ appreciated if you tried harder with the changelog. It is much simpler to write a patch than review it in many cases. > Signed-off-by: zhong jiang <zhongjiang@huawei.com> > --- > mm/mlock.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/mm/mlock.c b/mm/mlock.c > index c483c5c..941930b 100644 > --- a/mm/mlock.c > +++ b/mm/mlock.c > @@ -64,6 +64,7 @@ void clear_page_mlock(struct page *page) > -hpage_nr_pages(page)); > count_vm_event(UNEVICTABLE_PGCLEARED); > if (!isolate_lru_page(page)) { > + count_vm_event(UNEVICTABLE_PGMUNLOCKED); > putback_lru_page(page); > } else { > /* > -- > 1.8.3.1 -- Michal Hocko SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [RFC PATCH] mm: fix mlock incorrent event account 2017-05-25 8:13 ` Michal Hocko @ 2017-05-25 12:14 ` zhong jiang 2017-05-25 13:48 ` zhong jiang 1 sibling, 0 replies; 6+ messages in thread From: zhong jiang @ 2017-05-25 12:14 UTC (permalink / raw) To: Michal Hocko; +Cc: akpm, vbabka, qiuxishi, linux-mm On 2017/5/25 16:13, Michal Hocko wrote: > On Thu 25-05-17 15:59:39, zhongjiang wrote: >> From: zhong jiang <zhongjiang@huawei.com> >> >> when clear_page_mlock call, we had finish the page isolate successfully, >> but it fails to increase the UNEVICTABLE_PGMUNLOCKED account. >> >> The patch add the event account when successful page isolation. > Could you describe _what_ is the problem, how it can be _triggered_ > and _how_ serious it is. Is it something that can be triggered from > userspace? The mlock code is really tricky and it is far from trivial > to see whether this is obviously right or a wrong assumption on your > side. Before people go and spend time reviewing it is fair to introduce > them to the problem. > > I believe this is not the first time I am giving you this feedback > so I would _really_ appreciated if you tried harder with the changelog. > It is much simpler to write a patch than review it in many cases. HI, MIchal I am sorry for that. I will keep in mind. As for the above issue. I get the conclusin after reviewing the code. I will further prove wheher the issue is exist or not. Thanks zhongjiang >> Signed-off-by: zhong jiang <zhongjiang@huawei.com> >> --- >> mm/mlock.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/mm/mlock.c b/mm/mlock.c >> index c483c5c..941930b 100644 >> --- a/mm/mlock.c >> +++ b/mm/mlock.c >> @@ -64,6 +64,7 @@ void clear_page_mlock(struct page *page) >> -hpage_nr_pages(page)); >> count_vm_event(UNEVICTABLE_PGCLEARED); >> if (!isolate_lru_page(page)) { >> + count_vm_event(UNEVICTABLE_PGMUNLOCKED); >> putback_lru_page(page); >> } else { >> /* >> -- >> 1.8.3.1 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [RFC PATCH] mm: fix mlock incorrent event account 2017-05-25 8:13 ` Michal Hocko 2017-05-25 12:14 ` zhong jiang @ 2017-05-25 13:48 ` zhong jiang 2017-05-25 14:19 ` Michal Hocko 1 sibling, 1 reply; 6+ messages in thread From: zhong jiang @ 2017-05-25 13:48 UTC (permalink / raw) To: Michal Hocko; +Cc: akpm, vbabka, qiuxishi, linux-mm Hi Michal by a testcase, The patch is work as I think. The testcase is as follows. 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, sizeof(fd)); ftruncate(fd, 0); close(fd); munlock(map, sizeof(fd)); 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. Thanks zhongjiang On 2017/5/25 16:13, Michal Hocko wrote: > On Thu 25-05-17 15:59:39, zhongjiang wrote: >> From: zhong jiang <zhongjiang@huawei.com> >> >> when clear_page_mlock call, we had finish the page isolate successfully, >> but it fails to increase the UNEVICTABLE_PGMUNLOCKED account. >> >> The patch add the event account when successful page isolation. > Could you describe _what_ is the problem, how it can be _triggered_ > and _how_ serious it is. Is it something that can be triggered from > userspace? The mlock code is really tricky and it is far from trivial > to see whether this is obviously right or a wrong assumption on your > side. Before people go and spend time reviewing it is fair to introduce > them to the problem. > > I believe this is not the first time I am giving you this feedback > so I would _really_ appreciated if you tried harder with the changelog. > It is much simpler to write a patch than review it in many cases. > >> Signed-off-by: zhong jiang <zhongjiang@huawei.com> >> --- >> mm/mlock.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/mm/mlock.c b/mm/mlock.c >> index c483c5c..941930b 100644 >> --- a/mm/mlock.c >> +++ b/mm/mlock.c >> @@ -64,6 +64,7 @@ void clear_page_mlock(struct page *page) >> -hpage_nr_pages(page)); >> count_vm_event(UNEVICTABLE_PGCLEARED); >> if (!isolate_lru_page(page)) { >> + count_vm_event(UNEVICTABLE_PGMUNLOCKED); >> putback_lru_page(page); >> } else { >> /* >> -- >> 1.8.3.1 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [RFC PATCH] mm: fix mlock incorrent event account 2017-05-25 13:48 ` zhong jiang @ 2017-05-25 14:19 ` Michal Hocko 2017-05-26 3:57 ` zhong jiang 0 siblings, 1 reply; 6+ messages in thread From: Michal Hocko @ 2017-05-25 14:19 UTC (permalink / raw) To: zhong jiang; +Cc: akpm, vbabka, qiuxishi, linux-mm On Thu 25-05-17 21:48:56, zhong jiang wrote: > Hi Michal > > by a testcase, The patch is work as I think. The testcase is as follows. > > 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, sizeof(fd)); just a nit you probably wanted mlock(map, 4096) > ftruncate(fd, 0); > close(fd); > munlock(map, sizeof(fd)); similarly here > 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 OK, this is definitely useful for the changelog. > 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. and this as well. I haven't checked that but it gives reviewers chance to understand your thinking much better so it is definitely useful. Mlock code is everything but straightforward. -- Michal Hocko SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [RFC PATCH] mm: fix mlock incorrent event account 2017-05-25 14:19 ` Michal Hocko @ 2017-05-26 3:57 ` zhong jiang 0 siblings, 0 replies; 6+ messages in thread From: zhong jiang @ 2017-05-26 3:57 UTC (permalink / raw) To: Michal Hocko; +Cc: akpm, vbabka, qiuxishi, linux-mm On 2017/5/25 22:19, Michal Hocko wrote: > On Thu 25-05-17 21:48:56, zhong jiang wrote: >> Hi Michal >> >> by a testcase, The patch is work as I think. The testcase is as follows. >> >> 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, sizeof(fd)); > just a nit > you probably wanted mlock(map, 4096) > >> ftruncate(fd, 0); >> close(fd); >> munlock(map, sizeof(fd)); > similarly here > >> 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 > OK, this is definitely useful for the changelog. > >> 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. > and this as well. I haven't checked that but it gives reviewers chance > to understand your thinking much better so it is definitely useful. > Mlock code is everything but straightforward. > HI, Michal I will add the above info the chanelog. and resent it in v2. Thanks zhongjiang -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2017-05-26 3:59 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2017-05-25 7:59 [RFC PATCH] mm: fix mlock incorrent event account zhongjiang 2017-05-25 8:13 ` Michal Hocko 2017-05-25 12:14 ` zhong jiang 2017-05-25 13:48 ` zhong jiang 2017-05-25 14:19 ` Michal Hocko 2017-05-26 3:57 ` zhong jiang
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox