RFR(S): 8212481: PPC64: Enable POWER9 CPU detection

Gustavo Romero gromero at linux.vnet.ibm.com
Tue Oct 23 21:46:14 UTC 2018


Hi Martin,

Thanks for your comments on fsqrt{,s} and mftgpr opcodes.

On 10/23/2018 01:51 PM, Doerr, Martin wrote:
> Hi Gustavo,
> 
>> I agree. So, if you don't mind, to reduce any future rework on that
>> I removed the hardcoded L=1 and now it's just a default. I introduced
>> l14() function that matches two bits in the proper field as I don't
>> see any collision with any other one bit field at the same position
>> (bit 14).
> I like it, but the default value needs to get specified in the .hpp file.

Fixed.


>> I just have one question regarding the feature-string. I see
>> instrumentation for "fsqrts" feature but it's not currently
>> advertised by the feature-string. On the other hand, ISA info
>> looks to indicate that fsqrt and fsqrts are not aliases, because:
>>
>> fsqrt  P2  -> Instruction introduced in the POWER2 Architecture.
>> fsqrts PPC -> Instruction introduced in the PowerPC Architecture prior to ISA v2.00
>>
>> so I'm wondering if just for completeness the "fsqrts" feature
>> should be included in the feature-string. Besides that I don't
>> see instrumentation to support has_mftgpr(), which is commented
>> out, thus should we remove it? Like the following:
> 
> This code is very old. If we are sure nobody can run the VM on a machine without these instructions they can get removed from the feature checking.

I'm not sure about it. Maybe somebody is using out there, in the community
for example, so kept it.


> The mftgpr was only designed for an extension of Power6 and the opcode was reused for something else later on if I remember correctly. I think you can remove the remaining comment.

I was not aware of that, thanks for the info.
Just out of curiosity I asked the toolchain folks and they said that mftgpr
is present in some POWER6 hardware but on the so-called raw mode (ie power6x,
which I think it's the extension you mentioned), but not in the architected /
normal mode (power6). So even if it's present in the hardware it's disabled
unless you boot the system up in raw mode.

On that raw mode (power6x) one would see the following in AUXV, for instance:

$ LD_SHOW_AUXV=1 /bin/true | grep PLATFORM
AT_PLATFORM:     power6x
AT_BASE_PLATFORM:power6x

But probably theses machines w/ power6x never got out of IBM indeed.

Anyway, they said that power6x is unsupported. So, as you said, I removed the
comment about mftgpr.

v3 webrev:

http://cr.openjdk.java.net/~gromero/8212481/v3/


Thanks!

Best regards,
Gustavo



More information about the ppc-aix-port-dev mailing list