direct-io.hg

changeset 12917:97e1d0fd7def

[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@watson.ibm.com>
Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com>
author Jimi Xenidis <jimix@watson.ibm.com>
date Tue Sep 26 14:01:11 2006 -0400 (2006-09-26)
parents 539355c03a30
children 5b0e0c93a5bf
files xen/arch/powerpc/dart_u4.c
line diff
     1.1 --- a/xen/arch/powerpc/dart_u4.c	Tue Sep 26 12:44:20 2006 -0400
     1.2 +++ b/xen/arch/powerpc/dart_u4.c	Tue Sep 26 14:01:11 2006 -0400
     1.3 @@ -19,6 +19,7 @@
     1.4   */
     1.5  
     1.6  #undef DEBUG
     1.7 +#define INVALIDATE_ALL
     1.8  
     1.9  #include <xen/config.h>
    1.10  #include <xen/types.h>
    1.11 @@ -123,9 +124,14 @@ static void u4_inv_all(void)
    1.12  
    1.13  static void u4_inv_entry(ulong pgn)
    1.14  {
    1.15 +#ifdef INVALIDATE_ALL
    1.16 +    return u4_inv_all();
    1.17 +#else
    1.18      union dart_ctl dc;
    1.19      ulong retries = 0;
    1.20  
    1.21 +    return u4_inv_all();
    1.22 +
    1.23      dc.dc_word = in_32(&dart->d_dartcntl.dc_word);
    1.24      dc.dc_bits.dc_ilpn = pgn;
    1.25      dc.dc_bits.dc_ione = 1;
    1.26 @@ -139,6 +145,7 @@ static void u4_inv_entry(ulong pgn)
    1.27          if (retries > 1000000)
    1.28              panic("WAY! too long\n");
    1.29      } while (dc.dc_bits.dc_ione != 0);
    1.30 +#endif
    1.31  }
    1.32  
    1.33  static struct dart_ops u4_ops = {