Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx> writes: > +/* Returns true for head pages of in-use hugepages, otherwise returns false. */ > +bool is_hugepage_movable(struct page *hpage) > +{ > + struct page *page; > + struct hstate *h; > + bool ret = false; > + > + VM_BUG_ON(!PageHuge(hpage)); > + /* > + * This function can be called for a tail page because memory hotplug > + * scans movability of pages by pfn range of a memory block. > + * Larger hugepages (1GB for x86_64) are larger than memory block, so > + * the scan can start at the tail page of larger hugepages. > + * 1GB hugepage is not movable now, so we return with false for now. > + */ > + if (PageTail(hpage)) > + return false; > + h = page_hstate(hpage); > + spin_lock(&hugetlb_lock); > + list_for_each_entry(page, &h->hugepage_activelist, lru) > + if (page == hpage) { > + ret = true; > + break; > + } > + spin_unlock(&hugetlb_lock); > + return ret; > +} > + May be is_hugepage_active() ? -aneesh -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>