[RFC] Add IBM Blue Gene/Q Platform

Jimi Xenidis jimix at pobox.com
Sat Dec 8 00:38:22 EST 2012


On Dec 6, 2012, at 11:54 PM, Michael Neuling <mikey at neuling.org> wrote:

>> commit 279c0615917b959a652e81f4ad0d886e2d426d85
>> Author: Jimi Xenidis <jimix at pobox.com>
>> Date:   Wed Dec 5 13:43:22 2012 -0500
>> 
>>    powerpc/book3e: IBM Blue Gene/Q Quad Processing eXtention (QPX)
>> 
>>    This enables kernel support for the QPX extention and is intended for
>>    processors that support it, usually an IBM Blue Gene processor.
>>    Turning it on does not effect other processors but it does add code
>>    and will quadruple the per thread save and restore area for the FPU
>>    (hense the name).  If you have enabled VSX it will only double the
>>    space.
>> 
>>    Signed-off-by: Jimi Xenidis <jimix at pobox.com>
> 
> Can you give a diagram of how the QPX registers are layed out.
> 
> +#if defined(CONFIG_PPC_QPX)
> +#define TS_FPRWIDTH 4
> +#elif defined(CONFIG_VSX)
> 
> Are they 256 bits wide?

Yes, this is why we nicknamed it the "Quad Hummer" :)
 - 4-wide double precision FPU SIMD
 - 2-wide complex SIMD
 - 4R/2W register file (32x256 bits per thread)
 - 32B (256 bits) datapath to/from L1 cache

> 
> 
> +#define QVLFDXA(QRT,RA,RB)	\
> +	.long (0x7c00048f | ((QRT) << 21) | ((RA) << 16) | ((RB) << 11))
> 
> Put this in ppc-opcode.h.
> 
> +#if defined(CONFIG_VSX) || defined(CONFIG_PPC_QPX)
> +	/* they are the same MSR bit */
> 
> OMG!

Ooops, you are correct, this was in the original patch.
I'll double check the work book, but it should be the architected VEC/SPV bit which is really for VMX.
I'll track it down.

> 
> 
> +BEGIN_FTR_SECTION							\
> +	SAVE_32VSRS(n,c,base);						\
> +END_FTR_SECTION_IFSET(CPU_FTR_VSX);					\
> +BEGIN_FTR_SECTION							\
> +	SAVE_32QRS(n,c,base);						\
> +END_FTR_SECTION_IFSET(CPU_FTR_QPX);	
> 
> I don't think we want to do this.  We are going to end up with 64
> NOPS here somewhere.

Excellent point, NOPs are cheap on most processors but not A2 and a lot of embedded, I can wrap some branches with the FTR instead.
Do you have a concern on the code size?

> 
> I'd like to see this patch broken into different parts.

I'm not sure how _this_ patch:
  <https://github.com/jimix/linux-bgq/commit/279c0615917b959a652e81f4ad0d886e2d426d85>
could be broken up, please advise.

> 
> Also, have you boot tested this change on a VSX enabled box?

I can try, I may bug you for help.
Is there a commonly test (or apps) I should run?

-jx


> 
> Mikey



More information about the Linuxppc-dev mailing list