RE: [Xen-devel] Does dom0 see all physical processors? (RE:[Xen-ia64-devel] SAL INFO virtualization)

2006-04-05 Thread Magenheimer, Dan (HP Labs Fort Collins)
(Orran/Jimi cc'ed, see question below...)

  I understand and sympathize with the need for dom0 to 
  sometimes get and use information from each processor that is 
  only available if dom0 is running on each processor.
  
  However, AFAIK, SMP guests are always gang-scheduled, correct?
 
 No, there's no need to strictly gang schedule, and the 
 current scheduler makes no attempt to do so. It may generally 
 be a decent thing to do, though.
 
  (If not, aren't there some very knotty research issues 
  related to locking and forward progress?)
 
 You could end up preempting a vCPU holding a lock which could 
 lead to daft behaviour of naïve spin locks. A number of 
 possible workarounds have been prototyped, but since it 
 doesn't seem to be much of a problem in practice nothing has 
 been checked in.

I wonder if not a problem in practice is more of an indication
of lack of practice than lack of problem.  I can see that the
problem would be unlikely to occur with small numbers of
processors and one SMP guests running a highly scalable SMP app
(such as a web server), but I'll bet a real enterprise load
of home-grown SMP apps running in a IT shop that's had big SMP
boxes for years would see the problem more quickly, especially
after multiple SMP guests are consolidated onto a single box.

I believe ppc has paravirtualized spinlocks in their Linux
kernel, though even this won't necessarily help with a poorly
written SMP application.

No data, admittedly, but perhaps our good buddies at
Watson could comment?

  So on a 16-processor system, every time dom0 needs to run 
  (e.g. to handle backend I/O for any one of perhaps hundreds 
  of domains), *every* domain gets descheduled so that dom0 can 
  be (gang-)scheduled on all 16 processors?
  
  If true, this sounds like a _horrible_ performance hit, so I 
  hope I'm misunderstanding something...
 
 This isn't an issue.
 
 After booting you probably want dom0 to give up all but 1 vCPU anyway.

Unless of course the PCPU's have data that change over time, such
as variable cycle rate (for power management) or hot-plug memory...
 
 Ian


Dan

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


Re: [Xen-devel] Does dom0 see all physical processors? (RE:[Xen-ia64-devel] SAL INFO virtualization)

2006-04-05 Thread Keir Fraser


On 5 Apr 2006, at 15:07, Magenheimer, Dan (HP Labs Fort Collins) wrote:


I believe ppc has paravirtualized spinlocks in their Linux
kernel, though even this won't necessarily help with a poorly
written SMP application.

No data, admittedly, but perhaps our good buddies at
Watson could comment?


IBM did some investigation into this a while back. The conclusion then 
was that, even in a microbenchmark somewhat contrived to try and 
indicate 'worst case' spinlock behaviour, the benefit of smarter 
spinlocks was negligible. Maybe the benchmark was bad, maybe there are 
other pathological worst cases out there that the benchmark did not 
represent, or maybe the smart spinlocks should have been smarter. 
Whatever: the numbers we have so far do not indicate that there's a 
problem to be solved, and these potential multi-processor optimisations 
have to be empirically driven because intuition is so frequently off 
the mark.


 -- Keir


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


RE: [Xen-devel] Does dom0 see all physical processors? (RE:[Xen-ia64-devel] SAL INFO virtualization)

2006-04-05 Thread Ian Pratt

 I believe ppc has paravirtualized spinlocks in their Linux 
 kernel, though even this won't necessarily help with a poorly 
 written SMP application.

We have an equivalent of this (bad pre-emption mitigation), along with
an alternative (bad pre-emption avoidance). Both have various pros and
cons, and can be shown to offer significant benefits in various
contrived benchmarks.

We have benchmark code that records when these bad pre-emptions happen,
and the workloads we've looked at we haven't been moved to check either
scheme in.

That's not to say that we won't have to at some point in the future, but
the limits to scalability are currently elsewhere. 

   So on a 16-processor system, every time dom0 needs to run 
 (e.g. to 
   handle backend I/O for any one of perhaps hundreds of domains), 
   *every* domain gets descheduled so that dom0 can be 
 (gang-)scheduled 
   on all 16 processors?
   
   If true, this sounds like a _horrible_ performance hit, so I hope 
   I'm misunderstanding something...
  
  This isn't an issue.
  
  After booting you probably want dom0 to give up all but 1 
 vCPU anyway.
 
 Unless of course the PCPU's have data that change over time, 
 such as variable cycle rate (for power management) or 
 hot-plug memory...

Such events don't happen very often -- dom0 is still free to run
something on a given CPU whenever it wants to.

Ian

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


Re: [Xen-devel] Does dom0 see all physical processors? (RE: [Xen-ia64-devel] SAL INFO virtualization)

2006-04-04 Thread Keir Fraser


On 4 Apr 2006, at 03:17, Tian, Kevin wrote:



Then consider your question about a large box with many processors.
How about the real environment? Is it the case to provide a 16-way SMP
box, or a 16-way NUMA box? I prefer to the latter. If it's a NUMA box,
dom0 sees physical ACPI table and can be configured as NUMA aware.


This is a model we must support if we are to have domain0 handle other 
processor-related ACPI activities (e.g., power management). The power 
information and available settings won't make much sense to the user 
unless there's an equivalence between VCPUs and PCPUs for domain0.


 -- Keir


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


RE: [Xen-devel] Does dom0 see all physical processors? (RE: [Xen-ia64-devel] SAL INFO virtualization)

2006-04-04 Thread Tian, Kevin
From: Keir Fraser [mailto:[EMAIL PROTECTED]
Sent: 2006年4月4日 15:26


On 4 Apr 2006, at 03:17, Tian, Kevin wrote:


 Then consider your question about a large box with many processors.
 How about the real environment? Is it the case to provide a 16-way
SMP
 box, or a 16-way NUMA box? I prefer to the latter. If it's a NUMA box,
 dom0 sees physical ACPI table and can be configured as NUMA
aware.

This is a model we must support if we are to have domain0 handle other
processor-related ACPI activities (e.g., power management). The power
information and available settings won't make much sense to the user
unless there's an equivalence between VCPUs and PCPUs for domain0.

  -- Keir

Yes, and thanks for making it clearer. (Originally I only came up
performance reason for this model.)

Thanks,
Kevin

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


RE: [Xen-devel] Does dom0 see all physical processors? (RE: [Xen-ia64-devel] SAL INFO virtualization)

2006-04-04 Thread Magenheimer, Dan (HP Labs Fort Collins)
I understand and sympathize with the need for dom0 to
sometimes get and use information from each processor
that is only available if dom0 is running on each processor.

However, AFAIK, SMP guests are always gang-scheduled, correct?
(If not, aren't there some very knotty research issues related
to locking and forward progress?)

So on a 16-processor system, every time dom0 needs to
run (e.g. to handle backend I/O for any one of perhaps hundreds
of domains), *every* domain gets descheduled so that dom0
can be (gang-)scheduled on all 16 processors?

If true, this sounds like a _horrible_ performance hit, so
I hope I'm misunderstanding something...

Dan

 -Original Message-
 From: Keir Fraser [mailto:[EMAIL PROTECTED] 
 Sent: Tuesday, April 04, 2006 1:26 AM
 To: Tian, Kevin
 Cc: xen-devel; xen-ia64-devel@lists.xensource.com; 
 Magenheimer, Dan (HP Labs Fort Collins); Tristan Gingold
 Subject: Re: [Xen-devel] Does dom0 see all physical 
 processors? (RE: [Xen-ia64-devel] SAL INFO virtualization)
 
 
 On 4 Apr 2006, at 03:17, Tian, Kevin wrote:
 
 
  Then consider your question about a large box with many processors.
  How about the real environment? Is it the case to provide a 
 16-way SMP
  box, or a 16-way NUMA box? I prefer to the latter. If it's 
 a NUMA box,
  dom0 sees physical ACPI table and can be configured as NUMA aware.
 
 This is a model we must support if we are to have domain0 
 handle other 
 processor-related ACPI activities (e.g., power management). The power 
 information and available settings won't make much sense to the user 
 unless there's an equivalence between VCPUs and PCPUs for domain0.
 
   -- Keir
 
 

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


RE: [Xen-devel] Does dom0 see all physical processors? (RE:[Xen-ia64-devel] SAL INFO virtualization)

2006-04-04 Thread Ian Pratt
 I understand and sympathize with the need for dom0 to 
 sometimes get and use information from each processor that is 
 only available if dom0 is running on each processor.
 
 However, AFAIK, SMP guests are always gang-scheduled, correct?

No, there's no need to strictly gang schedule, and the current scheduler makes 
no attempt to do so. It may generally be a decent thing to do, though.

 (If not, aren't there some very knotty research issues 
 related to locking and forward progress?)

You could end up preempting a vCPU holding a lock which could lead to daft 
behaviour of naïve spin locks. A number of possible workarounds have been 
prototyped, but since it doesn't seem to be much of a problem in practice 
nothing has been checked in.

 So on a 16-processor system, every time dom0 needs to run 
 (e.g. to handle backend I/O for any one of perhaps hundreds 
 of domains), *every* domain gets descheduled so that dom0 can 
 be (gang-)scheduled on all 16 processors?
 
 If true, this sounds like a _horrible_ performance hit, so I 
 hope I'm misunderstanding something...

This isn't an issue.

After booting you probably want dom0 to give up all but 1 vCPU anyway.

Ian

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