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

[Xen-changelog] [xen-unstable] [XEN][POWERPC] U4 DART workaround for functionality



# HG changeset patch
# User Jimi Xenidis <jimix@xxxxxxxxxxxxxx>
# Node ID 97e1d0fd7def382ff521d2997eadc942ee831445
# Parent  539355c03a302caa14b8e5690ffb30d3e25be888
[XEN][POWERPC] U4 DART workaround for functionality
This patch invalidates the whole DART cache rather than the single
entry.  Until we get single entry invalidating we'll have an obvious
performance issue.
Signed-off-by: Jimi Xenidis <jimix@xxxxxxxxxxxxxx>
Signed-off-by: Hollis Blanchard <hollisb@xxxxxxxxxx>
---
 xen/arch/powerpc/dart_u4.c |    7 +++++++
 1 files changed, 7 insertions(+)

diff -r 539355c03a30 -r 97e1d0fd7def xen/arch/powerpc/dart_u4.c
--- a/xen/arch/powerpc/dart_u4.c        Tue Sep 26 12:44:20 2006 -0400
+++ b/xen/arch/powerpc/dart_u4.c        Tue Sep 26 14:01:11 2006 -0400
@@ -19,6 +19,7 @@
  */
 
 #undef DEBUG
+#define INVALIDATE_ALL
 
 #include <xen/config.h>
 #include <xen/types.h>
@@ -123,8 +124,13 @@ static void u4_inv_all(void)
 
 static void u4_inv_entry(ulong pgn)
 {
+#ifdef INVALIDATE_ALL
+    return u4_inv_all();
+#else
     union dart_ctl dc;
     ulong retries = 0;
+
+    return u4_inv_all();
 
     dc.dc_word = in_32(&dart->d_dartcntl.dc_word);
     dc.dc_bits.dc_ilpn = pgn;
@@ -139,6 +145,7 @@ static void u4_inv_entry(ulong pgn)
         if (retries > 1000000)
             panic("WAY! too long\n");
     } while (dc.dc_bits.dc_ione != 0);
+#endif
 }
 
 static struct dart_ops u4_ops = {

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


 


Rackspace

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