[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-ia64-devel] [PATCH] implemented vcpu_ptc_l()



Hi.
I implemented vcpu_ptc_l() which is needed to boot dom0 on ski.
Is there any reason why it hasn't been implemented?
I didn't see difficulties to implement it. Do I miss anything?

Signed-off-by Isaku Yamahata <yamahata@xxxxxxxxxxxxx>

--
diff -r c4a86ad93e49 xen/arch/ia64/linux-xen/tlb.c
--- a/xen/arch/ia64/linux-xen/tlb.c     Thu Dec  1 18:21:59 2005 +0900
+++ b/xen/arch/ia64/linux-xen/tlb.c     Tue Dec  6 12:13:48 2005 +0900
@@ -110,6 +110,15 @@
 }
 
 void
+ia64_local_tlb_purge (unsigned long start, unsigned long end, unsigned long 
nbits)
+{
+       do {
+               ia64_ptcl(start, (nbits << 2));
+               start += (1UL << nbits);
+       } while (start < end);
+}
+
+void
 local_flush_tlb_all (void)
 {
        unsigned long i, j, flags, count0, count1, stride0, stride1, addr;
diff -r c4a86ad93e49 xen/arch/ia64/xen/vcpu.c
--- a/xen/arch/ia64/xen/vcpu.c  Thu Dec  1 18:21:59 2005 +0900
+++ b/xen/arch/ia64/xen/vcpu.c  Tue Dec  6 12:13:48 2005 +0900
@@ -1827,8 +1827,20 @@
 
 IA64FAULT vcpu_ptc_l(VCPU *vcpu, UINT64 vadr, UINT64 addr_range)
 {
-       printk("vcpu_ptc_l: called, not implemented yet\n");
-       return IA64_ILLOP_FAULT;
+       extern void ia64_local_tlb_purge (unsigned long start, unsigned long 
end, unsigned long nbits);
+
+       //XXX FIXME: validate not flushing Xen addresses
+       if (IS_VMM_ADDRESS(vadr)) {
+               return IA64_ILLOP_FAULT;
+       }
+       
+#ifdef VHPT_GLOBAL
+       vhpt_flush_address(vadr, addr_range);
+#endif
+       ia64_local_tlb_purge(vadr, vadr + addr_range, PAGE_SHIFT);
+       vcpu_purge_tr_entry(&PSCBX(vcpu,dtlb));
+       vcpu_purge_tr_entry(&PSCBX(vcpu,itlb));
+       return IA64_NO_FAULT;
 }
 
 // At privlvl=0, fc performs no access rights or protection key checks, while



-- 
yamahata

_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.