Naoya Horiguchi <n-horigu...@ah.jp.nec.com> 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 from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to