# HG changeset patch # User tristan.gingold@xxxxxxxx # Node ID 617e5bfc034b6a072bac5bc925eba3d5e8c00d01 # Parent de0c04ed4ab7b9c4572c42df2de838e2b243a8e2 Use sal_cache_flush to emulate SAL_CACHE_FLUSH instead of fc. Only prints one vcpu_set_itc message, do not print set itv message. Signed-off-by: Tristan Gingold diff -r de0c04ed4ab7 -r 617e5bfc034b xen/arch/ia64/xen/dom_fw.c --- a/xen/arch/ia64/xen/dom_fw.c Fri Apr 21 16:40:17 2006 +++ b/xen/arch/ia64/xen/dom_fw.c Tue Apr 25 05:03:22 2006 @@ -203,9 +203,18 @@ printf("*** CALLED SAL_MC_SET_PARAMS. IGNORED...\n"); break; case SAL_CACHE_FLUSH: - /* The best we can do is to flush with fc all the domain. */ - domain_cache_flush (current->domain, in1 == 4 ? 1 : 0); - status = 0; + if (1) { + /* Flush using SAL. + This method is faster but has a side effect on + other vcpu running on this cpu. */ + status = ia64_sal_cache_flush (in1); + } + else { + /* Flush with fc all the domain. + This method is slower but has no side effects. */ + domain_cache_flush (current->domain, in1 == 4 ? 1 : 0); + status = 0; + } break; case SAL_CACHE_INIT: printf("*** CALLED SAL_CACHE_INIT. IGNORED...\n"); diff -r de0c04ed4ab7 -r 617e5bfc034b xen/arch/ia64/xen/vcpu.c --- a/xen/arch/ia64/xen/vcpu.c Fri Apr 21 16:40:17 2006 +++ b/xen/arch/ia64/xen/vcpu.c Tue Apr 25 05:03:22 2006 @@ -955,13 +955,12 @@ IA64FAULT vcpu_set_itv(VCPU *vcpu, UINT64 val) { -//extern unsigned long privop_trace; -//privop_trace=1; - if (val & 0xef00) return (IA64_ILLOP_FAULT); + /* Check reserved fields. */ + if (val & 0xef00) + return (IA64_ILLOP_FAULT); PSCB(vcpu,itv) = val; if (val & 0x10000) { - printf("**** vcpu_set_itv(%lu): vitm=%lx, setting to 0\n", - val,PSCBX(vcpu,domain_itm)); + /* Disable itm. */ PSCBX(vcpu,domain_itm) = 0; } else vcpu_set_next_timer(vcpu); @@ -1081,7 +1080,12 @@ { #define DISALLOW_SETTING_ITC_FOR_NOW #ifdef DISALLOW_SETTING_ITC_FOR_NOW -printf("vcpu_set_itc: Setting ar.itc is currently disabled\n"); + static int did_print; + if (!did_print) { + printf("vcpu_set_itc: Setting ar.itc is currently disabled\n"); + printf("(this message is only displayed one)\n"); + did_print = 1; + } #else UINT64 oldnow = ia64_get_itc(); UINT64 olditm = PSCBX(vcpu,domain_itm);