[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [IA64] smp boot speed-up (sal cache flush, itc/itv messages)
# HG changeset patch # User awilliam@xxxxxxxxxxx # Node ID d23c088eac6dcc79c8319775bfe51c3e12103702 # Parent 63af1c14fa18fe5ce7a6dd76bbd69d80aec6ae98 [IA64] smp boot speed-up (sal cache flush, itc/itv messages) 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 <tristan.gingold@xxxxxxxx> diff -r 63af1c14fa18 -r d23c088eac6d xen/arch/ia64/xen/dom_fw.c --- a/xen/arch/ia64/xen/dom_fw.c Tue Apr 25 22:30:07 2006 -0600 +++ b/xen/arch/ia64/xen/dom_fw.c Tue Apr 25 22:32:14 2006 -0600 @@ -222,9 +222,18 @@ sal_emulator (long index, unsigned long 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 63af1c14fa18 -r d23c088eac6d xen/arch/ia64/xen/vcpu.c --- a/xen/arch/ia64/xen/vcpu.c Tue Apr 25 22:30:07 2006 -0600 +++ b/xen/arch/ia64/xen/vcpu.c Tue Apr 25 22:32:14 2006 -0600 @@ -965,13 +965,12 @@ IA64FAULT vcpu_set_lrr1(VCPU *vcpu, UINT 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); @@ -1091,7 +1090,12 @@ IA64FAULT vcpu_set_itc(VCPU *vcpu, UINT6 { #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); _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |