Running micro benchmark results in 'Error: Unable to access jarfile'

Jorn Vernee jbvernee at xs4all.nl
Tue Feb 19 11:49:03 UTC 2019


Hi,

I've taken a first stab at adding support for native dependencies:
http://cr.openjdk.java.net/~jvernee/micronative/webrev.00/

With a small test benchmark:
http://cr.openjdk.java.net/~jvernee/micronative_test/webrev.00/

Please be aware that both are based on the Panama/foreign branch [1].

I was not able to find a workaround for my problem with the jar file 
access unfortunately. So I have been testing by manually running the jar 
file with the expected arguments (but, that's not really testing the 
RunTests.gmk changes).

It would be great if someone can offer a suggestion for that. The jar 
file is being created in make/test/BuildMicrobenchmark.gmk using the 
SetupJarArchive function [2]. The execution of the jar is done by code 
in RunTests.gmk [3]. I guess these 2 are racing to access the jar, and 
that is what's causing the error from the subject line.

Otherwise, I can't really test this properly, so maybe someone else can 
take it from here.

Cheers,
Jorn

[1] : http://hg.openjdk.java.net/panama/dev/shortlog/tip
[2] : 
http://hg.openjdk.java.net/jdk/jdk/file/784537ff9c4e/make/test/BuildMicrobenchmark.gmk#l98
[3] : 
http://hg.openjdk.java.net/jdk/jdk/file/784537ff9c4e/make/RunTests.gmk#l692

Jorn Vernee schreef op 2019-02-18 23:38:
> Hi,
> 
>>>    1.) I did not get a warning when I was missing --with-jmh for 
>>> configure, although it looks like there is supposed to be one 
>>> (without --with-jmh I got the same access error, but the 
>>> benchmarks.jar did not exist).
>> 
>> --with-jmh is an optional configure flag, not sure what we could do to
>> warn here. Perhaps there's some way to ensure certain make targets
>> depend on the configure having been run with the necessary 
>> prerequistes.
>> Sounds like a fine enhancement.
> 
> There seems to be a check for this in make/test/BuildMicrobenchmark.gmk 
> [2]:
> 
> ```
> ifeq ($(JMH_CORE_JAR), )
>   $(info Error: JMH is missing. Please use configure --with-jmh.)
>   $(error Cannot continue)
> endif
> ```
> 
> But this does not seem to be triggered.
> 
>>> I was hoping to use the framework for Panama, so I'd likely have some 
>>> native library as dependency of the benchmark. Is there currently any 
>>> support for building (native) dependencies automatically?
>> 
>> There should be support in the build system _somewhere_, but adding a
>> native library to a microbenchmark might still be a non-trivial
>> enhancement to the current implementation. It'd be a great addition,
>> though. I might have time to help out sometime soon, but I've got my
>> hands full right now. Perhaps someone else on this list could advice?
> 
> The Panama native test sources are being built by
> 'make/test/JtregNativeJdk.gmk' I'm not sure it's possible to hook
> directly into that, but maybe it can serve as an example for adding a
> similar feature to the benchmark suite.
> 
> I'll try looking into that.
> 
>> Thanks!
> 
> Thanks for the help!
> 
> Jorn
> 
> [2] :
> http://hg.openjdk.java.net/jdk/jdk/file/6fb43030a1b4/make/test/BuildMicrobenchmark.gmk#l34
> 
>> /Claes
>> 
>>> 
>>> Thanks,
>>> Jorn
>>> 
>>> [1] : 
>>> http://hg.openjdk.java.net/jdk/jdk/file/bec6c8739833/make/autoconf/lib-tests.m4#l76



More information about the build-dev mailing list