On Thu, Apr 11, 2013 at 10:14 PM, Terry Hsu <terry.sh...@gmail.com> wrote: > The page fault loop for the same address happens in my UML. But for both my > UML and the mainline (I am using 3.7.1) kernel, the addresses that trigger > the page fault (in the child thread) are covered by certain vm areas. I use > gdb to trace the function call and notice that mmap_region() is never called > during the execution of the child task. I am guessing it's because the child > task does not use large enough memory space to have the UML installed > mapping for it.
Okay, let's try to figure out what happens here. The UML _guest_ process has some vmas installed, upon access the host kernel finds out that there is no memory mapping installed in the _host_ side of UML and sends SIGSEGV to the process. UML's host part catches the SIGSEGV and tries to fix it. Usually it does so by mmap()'ing the faulting page into the UML guest process. This is where the SKAS stub magic happens. It write the to be fixed address into STUB_DATA and sets EIP/RIP to STUB_CODE such that the process itself calls mmap(). After the stub has finished it traps itself and the UML emulation continues. Now we need to figure out a) What address is faulting and why? b) What does the UML _host_ side code to fix it? i.e. What are the mmap() parameters? c) Does this mmap() fail? To me it looks like UML is unable to fix the fault and therefore it faults over and over again. -- Thanks, //richard ------------------------------------------------------------------------------ Precog is a next-generation analytics platform capable of advanced analytics on semi-structured data. The platform includes APIs for building apps and a phenomenal toolset for data science. Developers can use our toolset for easy data analysis & visualization. Get a free account! http://www2.precog.com/precogplatform/slashdotnewsletter _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel