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

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


  • To: "Nemeth, Tamas" <nice@xxxxxxxxxxxxxxx>, "xen-users@xxxxxxxxxxxxxxxxxxx" <xen-users@xxxxxxxxxxxxxxxxxxx>
  • 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
  • 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=
  • List-id: Xen user discussion <xen-users.lists.xensource.com>

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


 


Rackspace

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