WIP: Stop using recursive mapping.
Note that this is very preliminary, and I merely got my already freezing kernel branch not to triple fault, but I would probably apply this patch to upstream. What is changed here, is that rather than relying on recursive mapping for accessing page table frames, it now uses linear translation (virt=phys+KERNEL_OFFSET). The only problem is that the paging code now makes assumptions that the entire physical address space remains mapped, which is not necessarily the case on x86_64 architecturally, even though systems with RAM more than a PML4 are very rare. We'd probably lazily (but linearly) map physical address space using huge pages.
parent
0c3542ff
No related branches found
No related tags found
Showing
- src/arch/x86_64/consts.rs 1 addition, 6 deletionssrc/arch/x86_64/consts.rs
- src/arch/x86_64/paging/mapper.rs 37 additions, 14 deletionssrc/arch/x86_64/paging/mapper.rs
- src/arch/x86_64/paging/mod.rs 30 additions, 71 deletionssrc/arch/x86_64/paging/mod.rs
- src/arch/x86_64/paging/table.rs 17 additions, 13 deletionssrc/arch/x86_64/paging/table.rs
- src/arch/x86_64/rmm.rs 0 additions, 5 deletionssrc/arch/x86_64/rmm.rs
- src/context/memory.rs 46 additions, 57 deletionssrc/context/memory.rs
- src/ptrace.rs 5 additions, 6 deletionssrc/ptrace.rs
- src/scheme/user.rs 25 additions, 33 deletionssrc/scheme/user.rs
- src/syscall/process.rs 22 additions, 34 deletionssrc/syscall/process.rs
Loading
Please register or sign in to comment