Skip to content
  • Gerald Schaefer's avatar
    mm/hugetlb: fix memory offline with hugepage size > memory block size · d9cf9c31
    Gerald Schaefer authored
    commit 2247bb335ab9c40058484cac36ea74ee652f3b7b upstream.
    
    Patch series "mm/hugetlb: memory offline issues with hugepages", v4.
    
    This addresses several issues with hugepages and memory offline.  While
    the first patch fixes a panic, and is therefore rather important, the
    last patch is just a performance optimization.
    
    The second patch fixes a theoretical issue with reserved hugepages,
    while still leaving some ugly usability issue, see description.
    
    This patch (of 3):
    
    dissolve_free_huge_pages() will either run into the VM_BUG_ON() or a
    list corruption and addressing exception when trying to set a memory
    block offline that is part (but not the first part) of a "gigantic"
    hugetlb page with a size > memory block size.
    
    When no other smaller hugetlb page sizes are present, the VM_BUG_ON()
    will trigger directly.  In the other case we will run into an addressing
    exception later, because dissolve_free_huge_page() will not work on the
    head page ...
    d9cf9c31