From: Dave Kleikamp <dave.kleikamp(a)oracle.com>
Date: Fri, 25 Mar 2016 13:22:30 -0500
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?
Yes there is a huge PTE encoded every 8K, but I'm wondering about the
address masking et al. you are doing here...