Messages in this thread | | | Date | Tue, 19 Jul 2005 19:34:41 +0800 | From | "" <> | Subject | How linear address translate to physical address in kernel space? |
| |
HI, every in LKML.
I have a question that can not understand.
In kernel space, how linear address translate to physical address ? In many kernel bookes, they said "directly mappd", I think I seen what they said, their mean is use __pa()/__va() macro pair.
(My platform is i386.)
but these macro use in case that require use physical address explicitly, but in most case, kernel more need translate them hiddenly. In user space, this translation is handled by MMU and pagefault exception handler of kernel.
I think kernel can not use CR3 register directly for this purpose, beacause of , for example, when kernel need to switch between user space task, it need change CR3 regsiter to switch task address space, if kernel also use CR3 register, this CR3 change will break down kernel control flow.
I don't known if I say my question clearly, my english so poor. but I am waitting to any answer.
Thanks in advanced.
liyu/NOW~
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |