How linear address translate to physical address in kernel space?

From: liyu@WAN
Date: Tue Jul 19 2005 - 06:36:43 EST


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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/