On 04.08.20 11:33, Mike Rapoport wrote: > On Tue, Aug 04, 2020 at 09:24:08AM +0200, David Hildenbrand wrote: >> Let's document what ZONE_MOVABLE means, how it's used, and which special >> cases we have regarding unmovable pages (memory offlining vs. migration / >> allocations). >> >> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> >> Cc: Michal Hocko <mhocko@xxxxxxxx> >> Cc: Michael S. Tsirkin <mst@xxxxxxxxxx> >> Cc: Mike Kravetz <mike.kravetz@xxxxxxxxxx> >> Cc: Mike Rapoport <rppt@xxxxxxxxxx> >> Cc: Pankaj Gupta <pankaj.gupta.linux@xxxxxxxxx> >> Cc: Baoquan He <bhe@xxxxxxxxxx> >> Signed-off-by: David Hildenbrand <david@xxxxxxxxxx> > > Several nits below, othersize > > Acked-by: Mike Rapoport <rppt@xxxxxxxxxxxxx> > >> --- >> include/linux/mmzone.h | 34 ++++++++++++++++++++++++++++++++++ >> 1 file changed, 34 insertions(+) >> >> diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h >> index f6f884970511d..600d449e7d9e9 100644 >> --- a/include/linux/mmzone.h >> +++ b/include/linux/mmzone.h >> @@ -372,6 +372,40 @@ enum zone_type { >> */ >> ZONE_HIGHMEM, >> #endif >> + /* >> + * ZONE_MOVABLE is similar to ZONE_NORMAL, except that it *primarily* >> + * only contains movable pages. Main use cases are to make memory > > "Primarily only" sounds awkward. Maybe > > ... except that it only contains movable pages with few exceptional > cases described below. > > And then > > Main use cases for ZONE_MOVABLE are ... Ack! > >> + * offlining more likely to succeed, and to locally limit unmovable >> + * allocations - e.g., to increase the number of THP/huge pages. >> + * Notable special cases are: >> + * >> + * 1. Pinned pages: (Long-term) pinning of movable pages might > > ^long, capital L looked out of place for me Ack! > >> + * essentially turn such pages unmovable. Memory offlining might >> + * retry a long time. >> + * 2. memblock allocations: kernelcore/movablecore setups might create >> + * situations where ZONE_MOVABLE contains unmovable allocations >> + * after boot. Memory offlining and allocations fail early. >> + * 3. Memory holes: Such pages cannot be allocated. Applies only to >> + * boot memory, not hotplugged memory. Memory offlining and >> + * allocations fail early. > > I would clarify where page struct for abscent memory come from Something like: Memory holes: We might have a memmap for memory holes, for example, if we have sections that are only partially System RAM. Such pages cannot be ... ? Thanks! -- Thanks, David / dhildenb _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization