Messages in this thread | | | From | "Hillf Danton" <> | Subject | Re: [PATCH v2 1/1] mm/hugetlb: fix memory offline with hugepage size > memory block size | Date | Thu, 22 Sep 2016 15:58:15 +0800 |
| |
> > 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 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 of the compound hugetlb page which will result in a NULL > hstate from page_hstate(). > > To fix this, first remove the VM_BUG_ON() because it is wrong, and then > use the compound head page in dissolve_free_huge_page(). > > Also change locking in dissolve_free_huge_page(), so that it only takes > the lock when actually removing a hugepage. > > Signed-off-by: Gerald Schaefer <gerald.schaefer@de.ibm.com> > --- Acked-by: Hillf Danton <hillf.zj@alibaba-inc.com>
| |