WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-ia64-devel

RE: [Xen-ia64-devel][Patch]Add two PAL calls whichfixSMPwindowsinstallat

To: "Xu, Anthony" <anthony.xu@xxxxxxxxx>
Subject: RE: [Xen-ia64-devel][Patch]Add two PAL calls whichfixSMPwindowsinstallation crashing bug
From: Alex Williamson <alex.williamson@xxxxxx>
Date: Mon, 02 Apr 2007 15:08:52 -0600
Cc: xen-ia64-devel <xen-ia64-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Mon, 02 Apr 2007 14:08:01 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <51CFAB8CB6883745AE7B93B3E084EBE26F7C7D@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-ia64-devel-request@lists.xensource.com?subject=help>
List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
List-post: <mailto:xen-ia64-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=unsubscribe>
Organization: HP OSLO R&D
References: <51CFAB8CB6883745AE7B93B3E084EBE26F7C7D@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx
On Mon, 2007-04-02 at 14:47 +0800, Xu, Anthony wrote:
> Hi Alex,
> 
> We did some experiments on this.
> We found when installing windows on madison with 4 processors, only 2 
> processors are running inside linux OS,
> the other two are idling inside SAL, it is same with VTI-domain applying 
> kouya's patch.
> That means windows doesn't support SMP installation on madison.
> Yes providing SCST processor for VTI-domain or domU is good for overall 
> performance, especially for process schedule.
> And we don't have SCST Montecito, we don’t know how to emulate Monticito's 
> SCST information.
> 
> We still want to emulate DCST Montecito, as we know, Dual Core impact 
> perfomance very little.
> 
> If you agree, please check in this patch.
> 
> And we will send out emulating SAL_PHYSICAL_ID_INFO patch ASAP,
> 
> This SAL call is used to identity host bus controller.
> At current stage of xen, we only support one host bus controller.
> That means this SAL call 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.  With
this patch, I can install win2003 as a 2-way guest.  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.  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