On 03/24/2016 02:22 PM, David Miller wrote:
From: Dave Kleikamp <dave.kleikamp(a)oracle.com>
Date: Wed, 23 Mar 2016 17:41:08 -0500
> + /* Check for a huge/THP page */
> + paddr = pmd_is_huge(pte, vaddr, verbose);
> + if (paddr)
> + goto out;
...
> + paddr = pte_to_pa(pte);
> + paddr = paddr | (vaddr & ~PAGE_MASK);
This handles transparent huge pages installed at the PMD level, but I don't
see that it handles huge PTEs properly, which are encoded at the PTE level.
I've been looking at the huge page code again and I'm not sure what I'm
missing. Isn't there still a huge PTE in the page table for every 8K
page with the proper physical address bits?