[AMD Official Use Only - General] Hello Boris, >> 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? Yes we want to map the faulting address to a RMP entry, but hugepage entries in RMP table are basically subpage 4K entries. So it is a 4K entry when the page is a 2M one and also a 4K entry when the page is a 1G one. That's why the computation to get a 4K page index within a 2M/1G hugepage mapping is required. >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? Thanks, Ashish