All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steve Ofsthun <sofsthun@virtualiron.com>
To: Venefax <venefax@gmail.com>
Cc: xen-devel@lists.xensource.com,
	'Andrew Lyon' <andrew.lyon@gmail.com>,
	'Dirk Utterback' <dirk.utterback@gmail.com>,
	'Keir Fraser' <keir.fraser@eu.citrix.com>,
	'James Harper' <james.harper@bendigoit.com.au>
Subject: Re: Windows SMP
Date: Mon, 05 Jan 2009 15:05:03 -0500	[thread overview]
Message-ID: <496267EF.5070508@virtualiron.com> (raw)
In-Reply-To: <03d101c96f68$eec4da10$cc4e8e30$@com>

[-- Attachment #1: Type: text/plain, Size: 4565 bytes --]

Venefax wrote:
> I use only Windows 2003 R2 SP2 fully patched. Therefore that patch would not apply since it is for Vista (Novell shim (Vista/2008 guests). But I will ask Novell.
> I would love to try that second patch that would "force all guest callback interrupts to VCPU 0". My setup is to use one core for xen, only, and the rest 15 cores for virtual machines, as instructed by Novell support. I am not over-committing CPU's. Even if I run one single virtual machine with 8 CPU's, the performance is awful. It takes  10 mins to load an application that loads in 1.5-2.0 mins with one single CPU. I switched all my 16 virtual machines to Standard PC Hal and that is the only way that the application works. However, it is an administrative nightmare. Instead of managing 16 independent windows machines via VNC, I should be able to manage two, maybe one.
> Can you send me information regarding both patches mentioned?

I'll have to check into the state of the PAUSE exit patch.  We are doing the work on an Intel Tylersburg machine.  I don't think these are generally available yet.

I have attached the referenced callback IRQ routing patch.

Whose Windows PV-on-HVM drivers are you running?

Steve

> Federico
> 
> 
> -----Original Message-----
> From: Steve Ofsthun [mailto:sofsthun@virtualiron.com] 
> Sent: Monday, January 05, 2009 1:59 PM
> To: Venefax
> Cc: 'Keir Fraser'; 'Andrew Lyon'; 'James Harper'; 'Dirk Utterback'; xen-devel@lists.xensource.com
> Subject: Re: [Xen-devel] Windows SMP
> 
> Venefax wrote:
>> Dear Gentlemen
> 
>> I have a machine with Intel 7350, 4 quad core. I can test since I have two
>> virtual machines with 8 vcpus, showing a gross overhead that makes them
>> unsuited for business. I use SLES 10 SP2, and I don't know how to apply the
>> patch, but if somebody can log in and apply it, we can see the results
>> immediately. The issue is affecting me directly. My two VM's have a VOIP
>> application, very intensive in network and CPU usage.
> 
> If your problem isn't the previously discussed TPR issues ...
> 
> What Windows version are you running in your guests?
> 
> Windows 2000 SMP has serious problems due to the CPU wasting idle loop.  We avoid this with a special idler daemon running in the guest.
> 
> 
> Are you over-committing VCPUS at all (more than one active VCPU per CPU)?
> 
> We have noticed significant performance degradation with SMP windows once you over-commit VCPUS on the host.  This seems to be due to excessive guest spinlock overhead caused by the spinning VCPUS wasting their entire quantum looping for the guest lock at the same time they are preventing the guest lock holding VCPU from running.  We have been experimenting with new CPU features for exiting on PAUSE instructions.  This can possibly be used to detect the CPU wasting spinners.
> 
> 
> Have you tried using the Novell shim (Vista/2008 guests)?
> 
> I'm not sure the shim provides locking enhancements, but we have seen benefits for certain workloads.
> 
> 
> Are you running PV on HVM drivers?
> 
> One last area of concern may be distributing callback interrupts to all VCPUS.  We still run Xen (SLES10 SP2 based) with a patch to force all guest callback interrupts to VCPU 0.  This has consistently improved our SMP guest I/O performance while running PV-on-HVM drivers.
> 
> 
> Steve
> 
>> Federico
>> -----Original Message-----
>> From: Keir Fraser [mailto:keir.fraser@eu.citrix.com] 
>> Sent: Wednesday, December 31, 2008 5:10 AM
>> To: Andrew Lyon
>> Cc: Venefax; James Harper; Dirk Utterback; xen-devel@lists.xensource.com
>> Subject: Re: [Xen-devel] Windows SMP
>>
>> On 31/12/2008 10:08, "Andrew Lyon" <andrew.lyon@gmail.com> wrote:
>>
>>> Thanks Keir, I added a couple of printk's as you suggested and I can
>>> now see if the feature is supported:
>>>
>>> Intel(R) Xeon(R) CPU           E5420  @ 2.50GHz = (XEN) APIC Access
>>> virtualized
>>> Intel(R) Core(TM)2 CPU          6600  @ 2.40GHz = (XEN) APIC Access
>> emulated
>>> I didnt expect my Xeon system to support it, I've read some pdf's
>>> about Intel virtualizaton features and they seemed to suggest it was a
>>> new feature on 7xxx Xeons.
>>>
>>> The results fit the performance I've seen, a windows xp 32 bit hvm
>>> with 2 cpu's runs a lot faster on the Xeon 2.5 than on the Core 2.4.
>> I think it is probably worth printing out. I'll add a patch to xen-unstable.
>>
>>  Thanks,
>>  Keir
>>
>>
>>
>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel@lists.xensource.com
>> http://lists.xensource.com/xen-devel
> 


[-- Attachment #2: xen-vioapic-deliver-single.patch --]
[-- Type: text/x-patch, Size: 1079 bytes --]

diff -r 60570c3d7ea7 xen/arch/x86/hvm/vioapic.c
--- a/xen/arch/x86/hvm/vioapic.c
+++ b/xen/arch/x86/hvm/vioapic.c
@@ -341,21 +341,18 @@ void vioapic_deliver(struct hvm_hw_vioap
         return;
     }
 
+#ifdef IRQ0_SPECIAL_ROUTING
+    /* Force round-robin to pick VCPU 0 */
+    if ( ((irq == hvm_isa_irq_to_gsi(0)) && pit_channel0_enabled()) ||
+	 is_hvm_callback_irq(vioapic, irq) )
+	deliver_bitmask = (uint32_t)1;
+#endif
+
     switch ( delivery_mode )
     {
     case dest_LowestPrio:
     {
-#ifdef IRQ0_SPECIAL_ROUTING
-        /* Force round-robin to pick VCPU 0 */
-        if ( ((irq == hvm_isa_irq_to_gsi(0)) && pit_channel0_enabled()) ||
-                    is_hvm_callback_irq(vioapic, irq) )
-        {
-            v = vioapic_domain(vioapic)->vcpu[0];
-            target = v ? vcpu_vlapic(v) : NULL;
-        }
-        else
-#endif
-            target = apic_round_robin(vioapic_domain(vioapic),
+	target = apic_round_robin(vioapic_domain(vioapic),
                                       vector, deliver_bitmask);
         if ( target != NULL )
         {

[-- Attachment #3: Type: text/plain, Size: 138 bytes --]

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

  reply	other threads:[~2009-01-05 20:05 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <AclomJHRZPQAxvWTTHS1LTFPOLU6fA==>
2008-12-28  3:01 ` Windows SMP Venefax
2008-12-28 16:03   ` Randy McAnally
2008-12-29  2:39   ` Dirk Utterback
2008-12-29  2:48     ` Venefax
2008-12-29  2:53       ` James Harper
2008-12-29  2:59         ` Venefax
2008-12-29  6:46           ` Dirk Utterback
2008-12-29  8:14           ` Keir Fraser
2008-12-29  8:20             ` James Harper
2008-12-29  8:37               ` Keir Fraser
2008-12-29  8:47                 ` James Harper
2008-12-29  8:56                   ` Keir Fraser
2008-12-29  9:03                     ` James Harper
2008-12-29  9:16                       ` Keir Fraser
2008-12-29  9:40                         ` James Harper
2008-12-29  9:58                           ` Keir Fraser
2008-12-29 10:01                             ` James Harper
2008-12-30 16:58                   ` Wei Huang
2008-12-30 22:24                     ` Keir Fraser
2008-12-31  8:22                       ` James Harper
2008-12-31  8:31                         ` Tian, Kevin
2008-12-31  8:35                           ` James Harper
2008-12-31  8:50                             ` Tian, Kevin
2008-12-31  9:46                               ` Keir Fraser
2008-12-31  2:35                   ` Tian, Kevin
2008-12-29 21:40             ` Andrew Lyon
2008-12-29 21:57               ` Keir Fraser
2008-12-30 10:34                 ` Andrew Lyon
2008-12-30 11:04                   ` Keir Fraser
2008-12-30 12:41                     ` Andrew Lyon
2008-12-30 14:41                       ` Keir Fraser
2008-12-31 10:08                         ` Andrew Lyon
2008-12-31 10:10                           ` Keir Fraser
2008-12-31 14:36                             ` Venefax
2009-01-05 18:59                               ` Steve Ofsthun
2009-01-05 19:08                                 ` Venefax
2009-01-05 20:05                                   ` Steve Ofsthun [this message]
2009-01-05 20:11                                     ` Venefax
2009-01-05 20:14                                     ` Venefax
2009-01-06 21:20                                       ` Steve Ofsthun
2009-01-07  2:06                                         ` Venefax
2009-01-07 14:47                                           ` Steve Ofsthun
2009-01-07 14:57                                             ` Venefax
2009-01-07 15:41                                               ` Steve Ofsthun
2009-01-09  1:56                                                 ` Venefax
2009-01-09 14:29                                                   ` Steve Ofsthun
2009-03-07 15:59                                                     ` Venefax
2008-12-30 13:15                     ` Ian Pratt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=496267EF.5070508@virtualiron.com \
    --to=sofsthun@virtualiron.com \
    --cc=andrew.lyon@gmail.com \
    --cc=dirk.utterback@gmail.com \
    --cc=james.harper@bendigoit.com.au \
    --cc=keir.fraser@eu.citrix.com \
    --cc=venefax@gmail.com \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.