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-users

Re: [Xen-users] Re: Windows and Multiple CPUS?

To: "Nemeth, Tamas" <nice@xxxxxxxxxxxxxxx>, "xen-users@xxxxxxxxxxxxxxxxxxx" <xen-users@xxxxxxxxxxxxxxxxxxx>
Subject: Re: [Xen-users] Re: Windows and Multiple CPUS?
From: "Andrew Lyon" <andrew.lyon@xxxxxxxxx>
Date: Fri, 19 Sep 2008 18:21:32 +0100
Cc:
Delivery-date: Fri, 19 Sep 2008 10:22:18 -0700
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references; bh=vMvCVJLWzRcbtt0StLdgm5b5f5BRLWR3MmN/FAn0t0Y=; b=Zxv4A6zLzIXjGyzFLOiK5VHZXleKnqClkapsGPI/L18vB12sw4KHE/xdmiQdKA4bMd uCljku4iajj4NfPIJLf0II4ROqkn69FXhcEyhdpvqV1PcIXQeSzKyWNO/G5YF8OUd1CV tMRdpZFX3toa221HwUP0/L+TwAlqiLJIAAztQ=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references; b=dI4hIIt9xu+CDNluKnT6/PptPaR9yjbFfqlggShnKYqR+aB5YiFO6auAjz2Fle7jpB M974M4WLkE8fM6Rtkmqdk/GH+7nyHrwIh+4LH/B7KXUb8muCmMQioIvlj1SUnPctnyTv zOWOyDwd72NdY7IlLBW4Kr42QwRjEYiBojk8Y=
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <f4527be0809190952l267a8c30k3ac80eecdfdccf35@xxxxxxxxxxxxxx>
List-help: <mailto:xen-users-request@lists.xensource.com?subject=help>
List-id: Xen user discussion <xen-users.lists.xensource.com>
List-post: <mailto:xen-users@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-users>, <mailto:xen-users-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-users>, <mailto:xen-users-request@lists.xensource.com?subject=unsubscribe>
References: <f4527be0809190639p55c70370yb809739422db36ed@xxxxxxxxxxxxxx> <f4527be0809190646p1cfd103dj60e15abdeb4c57df@xxxxxxxxxxxxxx> <1221837344.4954.10.camel@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <f4527be0809190918l6eec4336i8759c50b27bfc96f@xxxxxxxxxxxxxx> <f4527be0809190952l267a8c30k3ac80eecdfdccf35@xxxxxxxxxxxxxx>
Sender: xen-users-bounces@xxxxxxxxxxxxxxxxxxx
Adding timer_mode=1 to the config file for Windows HVMs with multiple
cpu solves the problem, tested on Windows XP and Server 2003 32 bit.

I  verified that the changes made in 16366 are present in Xen 3.2.1,
perhaps you are missing the timer setting or are using a older
version?

http://xenbits.xensource.com/xen-unstable.hg/rev/837f83225153

Andy

On Fri, Sep 19, 2008 at 5:52 PM, Andrew Lyon <andrew.lyon@xxxxxxxxx> wrote:
> http://bugzilla.xensource.com/bugzilla/show_bug.cgi?id=895
>
> On Fri, Sep 19, 2008 at 5:18 PM, Andrew Lyon <andrew.lyon@xxxxxxxxx> wrote:
>> I have noticed the same thing, does it cause other problems?
>>
>> Here are logs from different versions of windows pinging the default
>> gateway and localhost, note that when the time is irregular the
>> response happens instantly or too quickly to be correct timing,  i.e.
>> multiple response lines are printed at once or very close together,
>> much quicker than the stated time, only when the time is sensible does
>> each line appear with regular timing:
>>
>> XP Pro 32 Bit 2 cpus:
>>
>> C:\Documents and Settings\Administrator>ping 10.0.4.1 -t
>>
>> Pinging 10.0.4.1 with 32 bytes of data:
>>
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time<1ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time<1ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time<1ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=6140ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time<1ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time<1ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time<1ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time<1ms TTL=64
>>
>> and localhost:
>>
>> C:\Documents and Settings\Administrator>ping -t localhost
>>
>> Pinging localhost [127.0.0.1] with 32 bytes of data:
>>
>> Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-6186ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-6187ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-6187ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-6187ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-6187ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-6187ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-6187ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-6187ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-6187ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
>>
>> If you set the affinity of the ping.exe process to a single CPU
>> sometimes the problem goes away, I think the time is not sync over the
>> cpus and so the ping timings over/under flow and give strange values?
>> or the time is taken from one cpu and by chance when I set the
>> affinity to the cpu that has the master timer and the ping works
>> properly?
>>
>> Windows 2003 32 bit Standard Edition 4 cpus:
>>
>> C:\Documents and Settings\Administrator>ping -t 10.0.4.1
>>
>> Pinging 10.0.4.1 with 32 bytes of data:
>>
>> Reply from 10.0.4.1: bytes=32 time=2434ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=-501ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time<1ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=-604ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=2434ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=-501ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time<1ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=2434ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=-501ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time<1ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time<1ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=2434ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=-501ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time<1ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time<1ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=-501ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time<1ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=-604ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=2434ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time=-501ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time<1ms TTL=64
>>
>> C:\Documents and Settings\Administrator>ping -t localhost
>>
>> Pinging xen-win2003x86 [127.0.0.1] with 32 bytes of data:
>>
>> Reply from 127.0.0.1: bytes=32 time=501ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-2436ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=501ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=501ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=501ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=501ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=501ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=501ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=501ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=501ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=501ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=501ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=501ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=501ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=501ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=501ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=501ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=501ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=501ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=501ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=501ms TTL=128
>>
>> Each time I run the ping I get a different response time:
>>
>> Reply from 127.0.0.1: bytes=32 time=-605ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-605ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-605ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-605ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-605ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-605ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-605ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-605ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-605ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-605ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-605ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-605ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-605ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-605ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-605ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-605ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-605ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-605ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-605ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-605ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-605ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-605ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-605ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-605ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-605ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-605ms TTL=128
>> Reply from 127.0.0.1: bytes=32 time=-605ms TTL=128
>>
>>
>>
>> Windows 2008 Enterprise Edition 32 bit with 8 CPUs seems to not have
>> the problem:
>>
>> C:\Users\Administrator>ping -t 10.0.4.1
>>
>> Pinging 10.0.4.1 with 32 bytes of data:
>> Reply from 10.0.4.1: bytes=32 time<1ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time<1ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time<1ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time<1ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time<1ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time<1ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time<1ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time<1ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time<1ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time<1ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time<1ms TTL=64
>> Reply from 10.0.4.1: bytes=32 time<1ms TTL=64
>>
>> C:\Users\Administrator>ping -t localhost
>>
>> Pinging WIN-PA2NTBT8TNB [::1] from ::1 with 32 bytes of data:
>> Reply from ::1: time<1ms
>> Reply from ::1: time<1ms
>> Reply from ::1: time<1ms
>> Reply from ::1: time<1ms
>> Reply from ::1: time<1ms
>> Reply from ::1: time<1ms
>> Reply from ::1: time<1ms
>> Reply from ::1: time<1ms
>> Reply from ::1: time<1ms
>> Reply from ::1: time<1ms
>> Reply from ::1: time<1ms
>> Reply from ::1: time<1ms
>>
>>
>> Andy
>>
>> On Fri, Sep 19, 2008 at 4:15 PM, Nemeth, Tamas <nice@xxxxxxxxxxxxxxx> wrote:
>>> Hi,
>>>
>>> I've tried to run w2k3 server with multiple CPUs, but i had to realize
>>> that a HVM virtualized w2k3 has some timing (clock) issues. Timing
>>> becomes somehow imprecise. I tried it on 64bit hypervisor and 32bit
>>> dom0, xen version 3.2.1. I tried to ping a host from a multiple VCPU
>>> windows and the packets coming back seemed to arrive earlier then they
>>> left the NIC, or something like this. Can you confirm this symtom?
>>> (However it's possible, this is a problem of networking, not timing.)
>>> This problem doesn't exist on single VCPU Windows HVM domUs.
>>>
>>> Cheers
>>>
>>> Tamas
>>>
>>>
>>> 2008. 09. 19, péntek keltezéssel 14.46-kor Andrew Lyon ezt írta:
>>>> On Fri, Sep 19, 2008 at 2:39 PM, Andrew Lyon <andrew.lyon@xxxxxxxxx> wrote:
>>>> > Hi,
>>>> >
>>>> > Am I correct in thinking that when Xen is running on a multi-core /
>>>> > smp system and several cpus are assigned to a VM they are "presented"
>>>> > as multiple single core cpus rather than 1 or more multi-core cpus?
>>>> >
>>>> > Microsoft CPU limits are for physical sockets, not cores.
>>>> >
>>>> > Windows XP and Vista are limited to two physical cpus, running under
>>>> > Xen the maximum cpus I have seen in task manager and system properties
>>>> > is 2, although device manager shows all of the assigned cpus (up to
>>>> > 8).
>>>> >
>>>> > Windows 2003 and 2008 standard edition are limited to 4 cpus, which is
>>>> > the limit I find under Xen, again device manager shows all assigned
>>>> > cpus (up to 8).
>>>> >
>>>> > Is there any way to make windows see the cpus as multi-core so that
>>>> > all 8 cores can be used ?
>>>> >
>>>> > Andy
>>>> >
>>>>
>>>> I've also noticed that if I run "xm list" repeatedly as the VM is
>>>> starting up I can actually see the cpus being initialized, the value
>>>> matches the limit i find in windows:
>>>>
>>>> A Windows 2003 R2 Standard Edition 32 Bit VM:
>>>>
>>>> #grep vcpu Win2003x86.cfg
>>>> vcpus=8
>>>>
>>>> xm list (several times during boot process)
>>>>
>>>> Win2003x86                                  24  2048     1
>>>> Win2003x86                                  24  2048     2
>>>> Win2003x86                                  24  2048     3
>>>> Win2003x86                                  24  2048     4
>>>>
>>>> But if i booted this version of windows on the raw hardware all 8 cpus
>>>> would be utilized.
>>>>
>>>> Andy
>>>>
>>>> _______________________________________________
>>>> Xen-users mailing list
>>>> Xen-users@xxxxxxxxxxxxxxxxxxx
>>>> http://lists.xensource.com/xen-users
>>>
>>>
>>> _______________________________________________
>>> Xen-users mailing list
>>> Xen-users@xxxxxxxxxxxxxxxxxxx
>>> http://lists.xensource.com/xen-users
>>>
>>
>

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