[PATCH v2 0/6] Implement split core for POWER8

Michael Neuling mikey at neuling.org
Fri May 23 20:50:34 EST 2014


> >> If it's the latter, we could just have ppc64_cpu --smt=x also set the
> >> subcore amount in parallel to the thread count.
> > FWIW on powernv we just nap the threads on hotplug.
> >
> >> The reason I'm bringing this up is that I'm not quite sure who would be
> >> the instance doing these performance tweaks. So I'd guess the majority
> >> of users will simply miss out on them.
> > Everyone, it's automatic on idle... except for split core mode
> > unfortunately.
> Oh I meant when you want to use a POWER system as VM host, you have to 
> know about split core mode and configure it accordingly. That's 
> something someone needs to do. And it's different from x86 which means 
> people may miss out on it for their performance benchmarks.

It depends on what's running.  If you have 1 guest per core, then
running unsplit is probably best as you can nap threads as needed and
improve performance.  

If you have more than two guests per core, then running split core can
hugely improve performance as they may be able to run at the same time
without context switching.  4 guests with 2 threads per core can run at
the same time on a single physical core.

One thing to note here is guest doorbell IRQs (new in POWER8).  They
can't cross a core or subcore boundary and there is no way for the
hypervisor to virtualise them.  Hence if you run split 4 on an SMT8
POWER8, you can only run guests up to 2 threads per core (rather than 8
threads per core).

> But if we impose a general performance penalty for everyone with it, I 
> don't think split core mode should be enabled by default.

FWIW we'd like to make this dynamic eventually, so that each core is run
in whatever mode is currently best based on the running guests.


More information about the Linuxppc-dev mailing list