|  |  | 
  
    |  |  | 
 
  |   |  | 
  
    |  |  | 
  
    |  |  | 
  
    |   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 <=
 |  |  | 
  
    |  |  |