Is there any available resource that explains how user-mode-linux maps the pages of a task in UML to the host kernel?
In my UML, I modified a task's page table when forking it. Then I ran into a situation where the page fault happens over and over again for the same address in the forked task. I use gdb debugger and find out that when the page fault happens for the first time, the kernel calls do_wp_page() to fault in the page and marks the page present. This should prevent the next page fault for the same address from happening again. I checked the PTE in UML, they are marked as present so is it possible that the page is not being allocated properly on the host kernel so that the page fault keeps happening for the same address even though UML thinks the page is present.