On Sat, 1 Sep 2012, Xin Tong wrote: > When a process is created in Linux, corresponding page table is > implemented. In the current x86 linux, the page table is a multi-level > page table and CR3 points to the first level of the page table. I > have 2 questions. > > 1. is the value in CR3 virtual address or physical address ?
Physical, otherwise you will have chicken-egg problem. > 2. can the address of the first level of the page table during a > process's lifetime change ? In theory it would be possible to implement. But I don't see a scenario when it might be useful. > 3. can two different processes have their CR3 being the same value > even though they have different first level page tables ? Yes, if they are created by clone(CLONE_VM). In such case they share the same mm_struct, and therefore mm_struct->pgd (which is exactly what is loaded into cr3 in switch_mm()) is the same. LKML is however very inappropriate list for such questions. Please ask on kernelnewbies list next time. -- Jiri Kosina SUSE Labs -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/