[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] Various tweaks for paravirtualization and debugging
ChangeSet 1.1327.1.6, 2005/04/26 15:08:52-06:00, djm@xxxxxxxxxxxxxxx Various tweaks for paravirtualization and debugging arch/ia64/hypercall.c | 9 ++++++++- arch/ia64/vhpt.c | 13 +++++++++++++ arch/ia64/xenasm.S | 1 - include/asm-ia64/config.h | 2 ++ 4 files changed, 23 insertions(+), 2 deletions(-) diff -Nru a/xen/arch/ia64/hypercall.c b/xen/arch/ia64/hypercall.c --- a/xen/arch/ia64/hypercall.c 2005-05-03 04:04:09 -04:00 +++ b/xen/arch/ia64/hypercall.c 2005-05-03 04:04:09 -04:00 @@ -32,6 +32,14 @@ case FW_HYPERCALL_PAL_CALL: //printf("*** PAL hypercall: index=%d\n",regs->r28); //FIXME: This should call a C routine +#if 1 + // This is very conservative, but avoids a possible + // (and deadly) freeze in paravirtualized domains due + // to a yet-to-be-found bug where pending_interruption + // is zero when it shouldn't be. Since PAL is called + // in the idle loop, this should resolve it + ed->vcpu_info->arch.pending_interruption = 1; +#endif x = pal_emulator_static(regs->r28); regs->r8 = x.status; regs->r9 = x.v0; regs->r10 = x.v1; regs->r11 = x.v2; @@ -61,7 +69,6 @@ #endif break; case FW_HYPERCALL_EFI_GET_TIME: - fooefi(); tv = vcpu_get_gr(ed,32); tc = vcpu_get_gr(ed,33); //printf("efi_get_time(%p,%p) called...",tv,tc); diff -Nru a/xen/arch/ia64/vhpt.c b/xen/arch/ia64/vhpt.c --- a/xen/arch/ia64/vhpt.c 2005-05-03 04:04:09 -04:00 +++ b/xen/arch/ia64/vhpt.c 2005-05-03 04:04:09 -04:00 @@ -21,7 +21,20 @@ { struct vhpt_lf_entry *v = (void *)VHPT_ADDR; int i, cnt = 0; +#if 0 +static int firsttime = 2; +if (firsttime) firsttime--; +else { +printf("vhpt_flush: *********************************************\n"); +printf("vhpt_flush: *********************************************\n"); +printf("vhpt_flush: *********************************************\n"); +printf("vhpt_flush: flushing vhpt (seems to crash at rid wrap?)...\n"); +printf("vhpt_flush: *********************************************\n"); +printf("vhpt_flush: *********************************************\n"); +printf("vhpt_flush: *********************************************\n"); +} +#endif for (i = 0; i < VHPT_NUM_ENTRIES; i++, v++) { v->itir = 0; v->CChain = 0; diff -Nru a/xen/arch/ia64/xenasm.S b/xen/arch/ia64/xenasm.S --- a/xen/arch/ia64/xenasm.S 2005-05-03 04:04:09 -04:00 +++ b/xen/arch/ia64/xenasm.S 2005-05-03 04:04:09 -04:00 @@ -190,7 +190,6 @@ movl r22=SHAREDINFO_ADDR ;; - movl r25=PAGE_SHARED movl r25=__pgprot(__DIRTY_BITS | _PAGE_PL_2 | _PAGE_AR_RW) ;; mov r21=loc5 // saved sharedinfo physical address diff -Nru a/xen/include/asm-ia64/config.h b/xen/include/asm-ia64/config.h --- a/xen/include/asm-ia64/config.h 2005-05-03 04:04:09 -04:00 +++ b/xen/include/asm-ia64/config.h 2005-05-03 04:04:09 -04:00 @@ -251,6 +251,8 @@ #undef CONFIG_X86 +#define CONFIG_MCKINLEY + //#define CONFIG_SMP 1 //#define CONFIG_NR_CPUS 2 //leave SMP for a later time _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |