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

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


  • To: "Isaku Yamahata" <yamahata@xxxxxxxxxxxxx>, <xen-ia64-devel@xxxxxxxxxxxxxxxxxxx>
  • From: "Dong, Eddie" <eddie.dong@xxxxxxxxx>
  • Date: Tue, 6 Dec 2005 13:31:03 +0800
  • Delivery-date: Tue, 06 Dec 2005 05:31:22 +0000
  • List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
  • Thread-index: AcX6FELMz42i33rTRU+wBc3NC6hZngAEaPDA
  • Thread-topic: [Xen-ia64-devel] [PATCH] implemented vcpu_ptc_l()

Yamahata san:
        I think the para linux does not use ptc, does it on ski?
        2 comments:
        a:  Any reason to purge TR?
        b: I believe there is a single SW TLB entry in non-VTI implementation, 
if you do that, you'd better to check this too.
Eddie


-----Original Message-----
From: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx 
[mailto:xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Isaku Yamahata
Sent: 2005年12月6日 11:21
To: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
Subject: [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

_______________________________________________
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®.