|
|
|
|
|
|
|
|
|
|
xen-ia64-devel
[Xen-ia64-devel] Question: Special linux dom0 handling in vcpu_translate
Hi,
in vcpu_translate I found some lines of code which seems to be an optimization
for the linux dom0:
if (!(rr & RR_VE_MASK) || !(pta & IA64_PTA_VE)) {
REGS *regs = vcpu_regs(vcpu);
// NOTE: This is specific code for linux kernel
// We assume region 7 is identity mapped
if (region == 7 && ia64_psr(regs)->cpl == 2) {
pte.val = address & _PAGE_PPN_MASK;
pte.val = pte.val | pgprot_val(PAGE_KERNEL);
goto out;
}
.....
out:
*itir = rr & RR_PS_MASK;
*pteval = pte.val;
This means, that on a page fault in ia64_do_page_fault() the function
vcpu_translate() is called, which returns the pte/itir and an itc is done in
the hypervisor without reflecting the trap to the domU.
I found this, because mini-os uses the same scheme. Now the hypervisor does
the itc for mini-os with a linux kernel identity mapped pte!
In general this may leads to problems if other systems with similar region
scheme are running on xen.
In particular I have here the problem that using protection keys for such
addresses is impossible!
Is it possible to do this optimization for the linux kernel another way?
Thanks.
Dietmar
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-ia64-devel] Question: Special linux dom0 handling in vcpu_translate(),
Dietmar Hahn <=
|
|
|
|
|