Thread (43 messages) 43 messages, 6 authors, 2020-09-28

Re: [PATCH RFC 2/4] mm/page_alloc: place pages to tail in __putback_isolated_page()

From: David Hildenbrand <hidden>
Date: 2020-09-25 13:30:46
Also in: linux-acpi, linux-mm, lkml, xen-devel

On 25.09.20 15:19, Oscar Salvador wrote:
On Wed, Sep 16, 2020 at 08:34:09PM +0200, David Hildenbrand wrote:
quoted
__putback_isolated_page() already documents that pages will be placed to
the tail of the freelist - this is, however, not the case for
"order >= MAX_ORDER - 2" (see buddy_merge_likely()) - which should be
the case for all existing users.

This change affects two users:
- free page reporting
- page isolation, when undoing the isolation.

This behavior is desireable for pages that haven't really been touched
lately, so exactly the two users that don't actually read/write page
content, but rather move untouched pages.

The new behavior is especially desirable for memory onlining, where we
allow allocation of newly onlined pages via undo_isolate_page_range()
in online_pages(). Right now, we always place them to the head of the
free list, resulting in undesireable behavior: Assume we add
individual memory chunks via add_memory() and online them right away to
the NORMAL zone. We create a dependency chain of unmovable allocations
e.g., via the memmap. The memmap of the next chunk will be placed onto
previous chunks - if the last block cannot get offlined+removed, all
dependent ones cannot get offlined+removed. While this can already be
observed with individual DIMMs, it's more of an issue for virtio-mem
(and I suspect also ppc DLPAR).

Note: If we observe a degradation due to the changed page isolation
behavior (which I doubt), we can always make this configurable by the
instance triggering undo of isolation (e.g., alloc_contig_range(),
memory onlining, memory offlining).

Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Alexander Duyck <redacted>
Cc: Mel Gorman <redacted>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Dave Hansen <redacted>
Cc: Vlastimil Babka <redacted>
Cc: Wei Yang <redacted>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Scott Cheloha <redacted>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: David Hildenbrand <redacted>
LGTM, the only thing is the shuffe_zone topic that Wei and Vlastimil rose.
Feels a bit odd that takes precedence over something we explicitily demanded.
Thanks, yeah I'll be changing that.
With the comment Vlastimil suggested:

Reviewed-by: Oscar Salvador <osalvador@suse.de>
-- 
Thanks,

David / dhildenb
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help