All of lore.kernel.org
 help / color / mirror / Atom feed
From: osalvador@suse.de
To: Michal Hocko <mhocko@suse.com>
Cc: Vlastimil Babka <vbabka@suse.cz>,
	David Hildenbrand <david@redhat.com>,
	dan.j.williams@gmail.com, pasha.tatashin@soleen.com,
	linux-mm@kvack.org, owner-linux-mm@kvack.org
Subject: Re: [RFC Get rid of shrink code - memory-hotplug]
Date: Mon, 10 Dec 2018 14:53:22 +0100	[thread overview]
Message-ID: <1946d97a057fe8d5953732350fb2a070@suse.de> (raw)
In-Reply-To: <cd1e398acf86909f12b58bbde1c509ba@suse.de>

On 2018-12-07 11:35, osalvador@suse.de wrote:
> On 2018-12-07 11:32, Michal Hocko wrote:
>> On Fri 07-12-18 10:54:50, Vlastimil Babka wrote:
>>> Well, __pageblock_pfn_to_page() has to be called for each pageblock 
>>> in
>>> compaction, when zone_contiguous is false. And that's unchanged since
>>> the introduction of zone_contiguous, so the numbers should still 
>>> hold.
>> 
>> OK, this means that we have to carefully re-evaluate zone_contiguous 
>> for
>> each offline operation.

I started to think about this but some questions arose.

Actually, no matter what we do, if we re-evaluate zone_contiguous
in the offline operation, zone_contiguous will be left unset.

set_zone_contiguous() calls __pageblock_pfn_to_page() in
pageblock_nr_pages chunks to determine if the zone is contiguous,
and checks the following:

* first/end pfn of the pageblock are valid sections
* first pfn of the pageblock is online
* we do not intersect different zones
* first/end pfn belong to the same zone

Now, when dropping the shrink code and re-evaluating zone_contiguous in 
offline
operation, set_zone_contiguous() will return false, leaving us with 
zone_contiguous
unset.

I wonder if we want that, or we want to stick with the optimization that
zone_contiguous brings us.

If we do not care, dropping everything and just calling 
clear_zone_contiguous and
set_zone_contiguous is the right thing to go.
But, if we want to keep the zone_contiguous optimization, I am afraid 
that we need
to re-adjust zone boundaries in the offline operation whenever we remove 
first/end
section.
In that case, set_zone_contiguous will still keep zone_contiguous as 
set.

So, it seems that the only headache we still have is this 
zone_contiguous thing.
Ideas? Suggestions?

  reply	other threads:[~2018-12-10 13:53 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-04  9:26 [RFC Get rid of shrink code - memory-hotplug] osalvador
2018-12-04 11:31 ` David Hildenbrand
2018-12-04 12:43   ` osalvador
2018-12-05 19:12     ` Michal Hocko
2018-12-07  9:54       ` Vlastimil Babka
2018-12-07 10:32         ` Michal Hocko
2018-12-07 10:35           ` osalvador
2018-12-10 13:53             ` osalvador [this message]
2018-12-10 15:02               ` David Hildenbrand
2018-12-10 17:16               ` Michal Hocko
2018-12-12  8:44                 ` osalvador
2018-12-05 19:07 ` Michal Hocko

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=1946d97a057fe8d5953732350fb2a070@suse.de \
    --to=osalvador@suse.de \
    --cc=dan.j.williams@gmail.com \
    --cc=david@redhat.com \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@suse.com \
    --cc=owner-linux-mm@kvack.org \
    --cc=pasha.tatashin@soleen.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.