On Thu, Sep 01, 2022 at 08:32:35PM +0000, Kalra, Ashish wrote: > As I mentioned earlier, this is computing an index into a 4K page > within a hugepage mapping, therefore, though pte_index() works for 2M > pages, but pmd_index() will not work for 1G pages. Why not? What exactly do you need to get here? So the way I understand it is, you want to map the faulting address to a RMP entry. And that is either the 2M PMD entry when the page is a 1G one and the 4K PTE entry when the page is a 2M one? Why doesn't pmd_index() work? Also, why isn't the lookup function's signature: int snp_lookup_rmpentry(unsigned long address, int *level) and all that logic to do the conversion to a PFN also not in it? Thx. -- Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette