|
|
|
|
|
|
|
|
|
|
xen-ppc-devel
[XenPPC] [xenppc-unstable] [XEN][POWERPC] U4 DART workaround for functio
# HG changeset patch
# User Jimi Xenidis <jimix@xxxxxxxxxxxxxx>
# Node ID 2aa9a65408bc10594cd2488f6640574f5ea67549
# Parent 2e303eacce32e5fd3f7b16c92ff034b7117e1d5f
[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>
---
xen/arch/powerpc/dart_u4.c | 7 +++++++
1 files changed, 7 insertions(+)
diff -r 2e303eacce32 -r 2aa9a65408bc 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-ppc-devel mailing list
Xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ppc-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [XenPPC] [xenppc-unstable] [XEN][POWERPC] U4 DART workaround for functionality,
Xen patchbot-xenppc-unstable <=
|
|
|
|
|