Hi Andrea, This came up when I was looking at how best we can implement generic GUP that can also handle sparc usecase. Below are the pmd accessors that would be nice to get documented. pmd_present(): I guess we should return true for both pointer to pte page and huge page pte (THP and explicit hugepages). We will always find THP and explicit hugepage present. If so how is it different from pmd_none() ? (There is an expection of __split_huge_page_map marking the pmd not present. Should pmd_present() return false in that case ?) pmd_none(): In some arch it is same as !pmd_present(). I am not sure that is correct. Can we explain the difference between !pmd_present and pmd_none ? pmd_trans_huge(): pmd value that represent a hugepage built via THP mechanism. Also implies present. pmd_huge(): Should cover both the THP and explicit hugepages pmd_large(): This is confusing. On ppc64 this one also check for _PAGE_PRESENT. I don't recollect how we end up with that. -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>