Hello everyone!! I have a question.
I want to generate a page fault intentionally even if the page table entry already exists.
So I cleared a _PAGE_PRESENT bit to generate a page fault.
Here's the kernel code I wrote:
Code:
pte = get_locked_pte(mm, addr, &ptl);
entry = *pte;
entry = pte_clear_flags(entry, _PAGE_PRESENT);
set_pte_at(mm, addr, pte, entry);
pte_unmap_unlock(pte, ptl);
flush_tlb_range(vma, vma->vm_start, vma->vm_end);
However, this code does not work. The page fault I intended does not occur. I want to know exactly how I can trigger a page fault.
Thank you.