- Page faults are handled in an (obviously) architecture-dependent way... - ...So, the entry point for page faults is somewhere in arch/*... - See, for example, arch/x86/mm/fault.c::do_page_fault() + After some architecture-dependent stuff, do_page_fault() ends up in calling do_kern_addr_fault() or do_user_addr_fault() + do_user_addr_fault() -> handle_mm_fault() (architecture-independent code) + mm/memory.c::handle_mm_fault() -> handle_pte_fault() + For anonymous pages, it invokes do_anonymous_page() -> alloc_pages() -> -> alloc_zeroed_user_highpage_movable() -> alloc_page_vma() -> -> alloc_pages_vma() with order 0 -> alloc_pages() with order 0 (for no NUMA)