ia64/xen-unstable

changeset 4662:ba67e077b528

bitkeeper revision 1.1327.1.6 (426eade4Z6TUJnbOAc8St0Xt6XDYMw)

Various tweaks for paravirtualization and debugging
author djm@kirby.fc.hp.com
date Tue Apr 26 21:08:52 2005 +0000 (2005-04-26)
parents 89d65362afad
children 34c2b5c0ac81
files xen/arch/ia64/hypercall.c xen/arch/ia64/vhpt.c xen/arch/ia64/xenasm.S xen/include/asm-ia64/config.h
line diff
     1.1 --- a/xen/arch/ia64/hypercall.c	Thu Apr 21 00:04:59 2005 +0000
     1.2 +++ b/xen/arch/ia64/hypercall.c	Tue Apr 26 21:08:52 2005 +0000
     1.3 @@ -32,6 +32,14 @@ ia64_hypercall (struct pt_regs *regs)
     1.4  	    case FW_HYPERCALL_PAL_CALL:
     1.5  		//printf("*** PAL hypercall: index=%d\n",regs->r28);
     1.6  		//FIXME: This should call a C routine
     1.7 +#if 1
     1.8 +		// This is very conservative, but avoids a possible
     1.9 +		// (and deadly) freeze in paravirtualized domains due
    1.10 +		// to a yet-to-be-found bug where pending_interruption
    1.11 +		// is zero when it shouldn't be. Since PAL is called
    1.12 +		// in the idle loop, this should resolve it
    1.13 +		ed->vcpu_info->arch.pending_interruption = 1;
    1.14 +#endif
    1.15  		x = pal_emulator_static(regs->r28);
    1.16  		regs->r8 = x.status; regs->r9 = x.v0;
    1.17  		regs->r10 = x.v1; regs->r11 = x.v2;
    1.18 @@ -61,7 +69,6 @@ ia64_hypercall (struct pt_regs *regs)
    1.19  #endif
    1.20  		break;
    1.21  	    case FW_HYPERCALL_EFI_GET_TIME:
    1.22 -		fooefi();
    1.23  		tv = vcpu_get_gr(ed,32);
    1.24  		tc = vcpu_get_gr(ed,33);
    1.25  		//printf("efi_get_time(%p,%p) called...",tv,tc);
     2.1 --- a/xen/arch/ia64/vhpt.c	Thu Apr 21 00:04:59 2005 +0000
     2.2 +++ b/xen/arch/ia64/vhpt.c	Tue Apr 26 21:08:52 2005 +0000
     2.3 @@ -21,7 +21,20 @@ void vhpt_flush(void)
     2.4  {
     2.5  	struct vhpt_lf_entry *v = (void *)VHPT_ADDR;
     2.6  	int i, cnt = 0;
     2.7 +#if 0
     2.8 +static int firsttime = 2;
     2.9  
    2.10 +if (firsttime) firsttime--;
    2.11 +else {
    2.12 +printf("vhpt_flush: *********************************************\n");
    2.13 +printf("vhpt_flush: *********************************************\n");
    2.14 +printf("vhpt_flush: *********************************************\n");
    2.15 +printf("vhpt_flush: flushing vhpt (seems to crash at rid wrap?)...\n");
    2.16 +printf("vhpt_flush: *********************************************\n");
    2.17 +printf("vhpt_flush: *********************************************\n");
    2.18 +printf("vhpt_flush: *********************************************\n");
    2.19 +}
    2.20 +#endif
    2.21  	for (i = 0; i < VHPT_NUM_ENTRIES; i++, v++) {
    2.22  		v->itir = 0;
    2.23  		v->CChain = 0;
     3.1 --- a/xen/arch/ia64/xenasm.S	Thu Apr 21 00:04:59 2005 +0000
     3.2 +++ b/xen/arch/ia64/xenasm.S	Tue Apr 26 21:08:52 2005 +0000
     3.3 @@ -190,7 +190,6 @@ 1:
     3.4  
     3.5  	movl r22=SHAREDINFO_ADDR
     3.6  	;;
     3.7 -	movl r25=PAGE_SHARED
     3.8  	movl r25=__pgprot(__DIRTY_BITS | _PAGE_PL_2 | _PAGE_AR_RW)
     3.9  	;;
    3.10  	mov r21=loc5			// saved sharedinfo physical address
     4.1 --- a/xen/include/asm-ia64/config.h	Thu Apr 21 00:04:59 2005 +0000
     4.2 +++ b/xen/include/asm-ia64/config.h	Tue Apr 26 21:08:52 2005 +0000
     4.3 @@ -251,6 +251,8 @@ extern unsigned int watchdog_on;
     4.4  
     4.5  #undef CONFIG_X86
     4.6  
     4.7 +#define CONFIG_MCKINLEY
     4.8 +
     4.9  //#define CONFIG_SMP 1
    4.10  //#define CONFIG_NR_CPUS 2
    4.11  //leave SMP for a later time