LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Yang Shi <yang.shi@linux.alibaba.com>
To: Hillf Danton <hdanton@sina.com>
Cc: ying.huang@intel.com, hannes@cmpxchg.org, mhocko@suse.com,
mgorman@techsingularity.net, kirill.shutemov@linux.intel.com,
josef@toxicpanda.com, hughd@google.com, shakeelb@google.com,
akpm@linux-foundation.org, linux-mm@kvack.org,
linux-kernel@vger.kernel.org
Subject: Re: [v4 PATCH 2/2] mm: vmscan: correct some vmscan counters for THP swapout
Date: Fri, 24 May 2019 09:26:57 +0800 [thread overview]
Message-ID: <b9c24d05-776a-4c4d-162a-e756e2c20d0f@linux.alibaba.com> (raw)
In-Reply-To: <20190523155126.2312-1-hdanton@sina.com>
On 5/23/19 11:51 PM, Hillf Danton wrote:
> On Thu, 23 May 2019 10:27:38 +0800 Yang Shi wrote:
>> @ -1642,14 +1650,14 @@ static unsigned long isolate_lru_pages(unsigned long nr_to_scan,
>> unsigned long nr_zone_taken[MAX_NR_ZONES] = { 0 };
>> unsigned long nr_skipped[MAX_NR_ZONES] = { 0, };
>> unsigned long skipped = 0;
>> - unsigned long scan, total_scan, nr_pages;
>> + unsigned long scan, total_scan;
>> + unsigned long nr_pages;
> Change for no earn:)
Aha, yes.
>
>> LIST_HEAD(pages_skipped);
>> isolate_mode_t mode = (sc->may_unmap ? 0 : ISOLATE_UNMAPPED);
>>
>> + total_scan = 0;
>> scan = 0;
>> - for (total_scan = 0;
>> - scan < nr_to_scan && nr_taken < nr_to_scan && !list_empty(src);
>> - total_scan++) {
>> + while (scan < nr_to_scan && !list_empty(src)) {
>> struct page *page;
> AFAICS scan currently prevents us from looping for ever, while nr_taken bails
> us out once we get what's expected, so I doubt it makes much sense to cut
> nr_taken off.
It is because "scan < nr_to_scan && nr_taken >= nr_to_scan" is
impossible now with the units fixed.
>>
>> page = lru_to_page(src);
>> @@ -1657,9 +1665,12 @@ static unsigned long isolate_lru_pages(unsigned long nr_to_scan,
>>
>> VM_BUG_ON_PAGE(!PageLRU(page), page);
>>
>> + nr_pages = 1 << compound_order(page);
>> + total_scan += nr_pages;
>> +
>> if (page_zonenum(page) > sc->reclaim_idx) {
>> list_move(&page->lru, &pages_skipped);
>> - nr_skipped[page_zonenum(page)]++;
>> + nr_skipped[page_zonenum(page)] += nr_pages;
>> continue;
>> }
>>
>> @@ -1669,10 +1680,9 @@ static unsigned long isolate_lru_pages(unsigned long nr_to_scan,
>> * ineligible pages. This causes the VM to not reclaim any
>> * pages, triggering a premature OOM.
>> */
>> - scan++;
>> + scan += nr_pages;
> The comment looks to defy the change if we fail to add a huge page to
> the dst list; otherwise nr_taken knows how to do the right thing. What
> I prefer is to let scan to do one thing a time.
I don't get your point. Do you mean the comment "Do not count skipped
pages because that makes the function return with no isolated pages if
the LRU mostly contains ineligible pages."? I'm supposed the comment is
used to explain why not count skipped page.
>
>> switch (__isolate_lru_page(page, mode)) {
>> case 0:
>> - nr_pages = hpage_nr_pages(page);
>> nr_taken += nr_pages;
>> nr_zone_taken[page_zonenum(page)] += nr_pages;
>> list_move(&page->lru, dst);
>> --
>> 1.8.3.1
>>
> Best Regards
> Hillf
next parent reply other threads:[~2019-05-24 1:27 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20190523155126.2312-1-hdanton@sina.com>
2019-05-24 1:26 ` Yang Shi [this message]
2019-05-23 2:27 [v4 PATCH 1/2] mm: vmscan: remove double slab pressure by inc'ing sc->nr_scanned Yang Shi
2019-05-23 2:27 ` [v4 PATCH 2/2] mm: vmscan: correct some vmscan counters for THP swapout Yang Shi
2019-05-23 12:52 ` Huang, Ying
2019-05-23 13:55 ` Yang Shi
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=b9c24d05-776a-4c4d-162a-e756e2c20d0f@linux.alibaba.com \
--to=yang.shi@linux.alibaba.com \
--cc=akpm@linux-foundation.org \
--cc=hannes@cmpxchg.org \
--cc=hdanton@sina.com \
--cc=hughd@google.com \
--cc=josef@toxicpanda.com \
--cc=kirill.shutemov@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@techsingularity.net \
--cc=mhocko@suse.com \
--cc=shakeelb@google.com \
--cc=ying.huang@intel.com \
--subject='Re: [v4 PATCH 2/2] mm: vmscan: correct some vmscan counters for THP swapout' \
/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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).