C2 compiler gets SIGILL/ILL_ILLOPC

Andrey Petushkov andrey.petushkov at gmail.com
Thu May 3 09:36:01 UTC 2018


Hi guys,

It looks like this is because arm32 implementation uses os::is_MP() to determine if MP extensions (hence plwd instruction) are available on the CPU. That is incorrect since:
1) looks like it assumes that MP extensions === multiple cores, which is in fact not
2) os::is_MP does not in fact return true iff there are multiple cores. Instead it as well checks for (now deprecated) AssumeMP flag which defaults to true since Java 10 (http://hg.openjdk.java.net/jdk/jdk/rev/552a97e8edad <http://hg.openjdk.java.net/jdk/jdk/rev/552a97e8edad>)
As a result starting Java 10 pldw is emitted even if there is no pldw support in the CPU
The -XX:-AssumeMP command line option should help in your case

Regards,
Andrey

> On 3 May 2018, at 11:18, Edward Nevill <edward.nevill at gmail.com> wrote:
> 
> Hi John,
> 
> The faulting instruction is
> 
> pldw	[r6, #128]
> 
> I have tested this instruction on an armv7l and it seems to work fine.
> 
> Here is my simple test program
> 
> --- test_pld.c ---
> extern void do_pld(unsigned *p);
> 
> unsigned d[128];
> 
> int main(void)
> {
> 	do_pld(d);
> }
> ------------------
> 
> --- pld.s ---
> 	.text
> 	.global	do_pld
> do_pld:
> 	pldw	[r0, #128]
> 	mov	pc, lr
> -------------
> 
> compile with
> 
> gcc -o test_pld test_pld.c pld.s
> ./test_pld
> 
> For indo here is my /proc/cpuinfo
> 
> processor	: 0
> model name	: ARMv7 Processor rev 4 (v7l)
> BogoMIPS	: 48.00
> Features	: swp half thumb fastmult vfp edsp thumbee neon vfpv3
> tls vfpv4 idiva idivt 
> CPU implementer	: 0x41
> CPU architecture: 7
> CPU variant	: 0x0
> CPU part	: 0xc0f
> CPU revision	: 4
> 
> All the best,
> Ed.
> 
> 
> On Wed, 2018-05-02 at 17:29 -0700, John Neffenger wrote:
>> I'm getting fatal errors in the OpenJDK 10 and 11 HotSpot Server VMs 
>> with a simple "Hello World" Swing application when running on a
>> physical 
>> ARMv7 processor, yet I'm not seeing any such errors on an emulated
>> ARMv7 
>> processor under QEMU/KVM.
>> 
>> Is there some feature required by the latest HotSpot Server VM that
>> is 
>> not present in my Freescale (NXP) i.MX507 Multimedia Application 
>> Processor? Could an older Linux kernel cause this error?
>> 
>> Details on the errors, workarounds, Java versions, Linux kernel 
>> versions, and CPU information are below.
>> 
>> Thank you,
>> John
>> 
>> 



More information about the aarch32-port-dev mailing list