[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Xen-ia64-devel][Patch]Add two PAL callswhichfixSMPwindowsinstallation crashing bug


  • To: "Alex Williamson" <alex.williamson@xxxxxx>
  • From: "Xu, Anthony" <anthony.xu@xxxxxxxxx>
  • Date: Tue, 3 Apr 2007 09:54:51 +0800
  • Cc: xen-ia64-devel <xen-ia64-devel@xxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Mon, 02 Apr 2007 18:53:48 -0700
  • List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
  • Thread-index: Acd1ay/8oqgn8oKjS5On3f61Yz5iggAI3kJg
  • Thread-topic: [Xen-ia64-devel][Patch]Add two PAL callswhichfixSMPwindowsinstallation crashing bug

Alex Williamson write on 2007年4月3日 5:09:
> On Mon, 2007-04-02 at 14:47 +0800, Xu, Anthony wrote:
 will return a hardcode value.
> 
> Hi Anthony,
> 
>    I've been experimenting too.  I found a system with a single core
> Montecito and extracted the return from PAL_LOGICAL_TO_PHYSICAL.  It
> does something like shown in code below.  I can't quite figure out why
> it reports 3 for log_overview.num_log, but that's what it does.  
That's strange, we don't have such machine, or we will help you to investigate 
that.

> With
> this patch, I can install win2003 as a 2-way guest.  
I want to point out, we can install win2003 without this patch  as a 2-way 
guest.
In theory, we can't. But some garbage data inside win2003 makes it happen.


>If I add more
> CPUs it panics.  After I install, I can configure it up to an 8-way
> guest. More than that, and it panics in a very similar way to the
> installer panic.  However a Linux guest will go up to 16 vCPUs, maybe
> more. 
> 
>    I would guess that I'm probably using an "Enterprise Edition"
> license for my installation, which only supports up to 8 processors. 
> It seems like the way it's handling the extra CPUs beyond 8 in the
> post-install case is the same thing it's doing with extra CPUs beyond
> 2 during the install in your testing. 
Yes, I also saw this. 
Enterprise Edition win2003 supports up to 8 cpu. They paniced in the same way.

thanks
anthony

> This suggests to me that maybe
> it's not the dual-core vs single-core that's really causing problems,
> but something windows does with "extra" CPUs that we aren't
> emulating.  Thanks, 
> 
>       Alex
> 
> 
> diff -r fc9e2f7920c9 xen/arch/ia64/xen/fw_emul.c
> --- a/xen/arch/ia64/xen/fw_emul.c     Fri Mar 30 17:18:42 2007 -0600
> +++ b/xen/arch/ia64/xen/fw_emul.c     Mon Apr 02 13:30:39 2007 -0600
> @@ -367,6 +367,9 @@ sal_emulator (long index, unsigned long
>                       status = 0;
>               }
>               break;
> +         case SAL_PHYSICAL_ID_INFO:
> +             r9 = 0;
> +             break;
>           case SAL_CACHE_INIT:
>               printk("*** CALLED SAL_CACHE_INIT.  IGNORED...\n");
>               break;
> @@ -468,6 +471,7 @@ remote_pal_cache_flush(void *v)
>               args->status = status;
>  }
> 
> +
>  struct ia64_pal_retval
>  xen_pal_emulator(unsigned long index, u64 in1, u64 in2, u64 in3)
>  {
> @@ -486,6 +490,25 @@ xen_pal_emulator(unsigned long index, u6
>       // at every context switch
>       //efi_map_pal_code();
>       switch (index) {
> +         case PAL_LOGICAL_TO_PHYSICAL:
> +             if (in1 > 2) {
> +                     status = PAL_STATUS_EINVAL;
> +                     break;
> +             }
> +
> +             status = 0;
> +
> +             // Single Core, no threads
> +             r9 = ((unsigned long)current->vcpu_id << 48) | 0x100010003;
> +             r10 = (in1 == 2) ? 1 : 0;
> +             r11 = current->vcpu_id;
> +             break;
> +         case PAL_FIXED_ADDR:
> +             status = 0;
> +             r9 = current->vcpu_id;
> +             r10 = 0;
> +             r11 = 0;
> +             break;
>           case PAL_MEM_ATTRIB:
>               status = ia64_pal_mem_attrib(&r9);
>               break;
> @@ -744,9 +767,6 @@ xen_pal_emulator(unsigned long index, u6
>               if (VMX_DOMAIN(current))
>                       status = PAL_STATUS_SUCCESS;
>               break;
> -         case PAL_LOGICAL_TO_PHYSICAL:
> -             /* Optional, no need to complain about being unimplemented */
> -             break;
>           default:
>               printk("xen_pal_emulator: UNIMPLEMENTED PAL CALL %lu!!!!\n",
>                               index);

_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.