• David Hildenbrand's avatar
    powerpc/pseries/cmm: Switch to balloon_page_alloc() · e8decafe
    David Hildenbrand authored
    balloon_page_alloc() will use GFP_HIGHUSER_MOVABLE in case we have
    CONFIG_BALLOON_COMPACTION. This is now possible, as balloon pages are
    movable with CONFIG_BALLOON_COMPACTION. Without
    CONFIG_BALLOON_COMPACTION, GFP_HIGHUSER is used.
    
    Note that apart from that, balloon_page_alloc() uses the following
    flags:
        __GFP_NOMEMALLOC | __GFP_NORETRY | __GFP_NOWARN
    And current code used:
        GFP_NOIO | __GFP_NOWARN | __GFP_NORETRY | __GFP_NOMEMALLOC
    
    GFP_HIGHUSER/GFP_HIGHUSER_MOVABLE include
        __GFP_RECLAIM | __GFP_IO | __GFP_FS | __GFP_HARDWALL | __GFP_HIGHMEM
    
    GFP_NOIO is __GFP_RECLAIM.
    
    With CONFIG_BALLOON_COMPACTION, we essentially add:
        __GFP_IO | __GFP_FS | __GFP_HARDWALL | __GFP_HIGHMEM | __GFP_MOVABLE
    
    Without CONFIG_BALLOON_COMPACTION, we essentially add:
        __GFP_IO | __GFP_FS | __GFP_HARDWALL | __GFP_HIGHMEM
    
    I assume this is fine, as this is what all other balloon compaction
    users use. If it turns out to be a problem, we could add __GFP_MOVABLE
    manually if we have CONFIG_BALLOON_COMPACTION.
    Signed-off-by: default avatarDavid Hildenbrand <david@redhat.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20191031142933.10779-10-david@redhat.com
    e8decafe
cmm.c 16.3 KB