From: zhong jiang <zhongjiang@huawei.com>
To: Michal Hocko <mhocko@suse.com>
Cc: akpm@linux-foundation.org, vbabka@suse.cz, qiuxishi@huawei.com,
linux-mm@kvack.org
Subject: Re: [RFC PATCH] mm: fix mlock incorrent event account
Date: Thu, 25 May 2017 21:48:56 +0800 [thread overview]
Message-ID: <5926E0C8.9050908@huawei.com> (raw)
In-Reply-To: <20170525081330.GG12721@dhcp22.suse.cz>
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>
next prev parent reply other threads:[~2017-05-25 13:50 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-25 7:59 zhongjiang
2017-05-25 8:13 ` Michal Hocko
2017-05-25 12:14 ` zhong jiang
2017-05-25 13:48 ` zhong jiang [this message]
2017-05-25 14:19 ` Michal Hocko
2017-05-26 3:57 ` zhong jiang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5926E0C8.9050908@huawei.com \
--to=zhongjiang@huawei.com \
--cc=akpm@linux-foundation.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@suse.com \
--cc=qiuxishi@huawei.com \
--cc=vbabka@suse.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox