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

Jorn Vernee jbvernee at xs4all.nl
Tue Feb 19 18:35:12 UTC 2019


Hi Erik,

I have included your suggestions:
http://cr.openjdk.java.net/~jvernee/micronative/webrev.01

I'm a committer on project Panama, but I'm not sure if I have write 
access to jdk/jdk as well. If the new webrev looks good I could give it 
a try, but otherwise someone else would have to create a commit for me.

Thanks,
Jorn

Erik Joelsson schreef op 2019-02-19 18:13:
> Hello Jorn,
> 
> This looks pretty good and should probably be pushed to mainline. Some
> minor nits.
> 
> In BuildMicrobenchmark.gmk:
> 
> Please base MICROBENCHMARK_IMAGE dir on TEST_IMAGE_DIR like in 
> RunTests.gmk.
> 
> Line 131, please add ", \" plus newline like on 123-124.
> 
> /Erik
> 
> On 2019-02-19 03:49, Jorn Vernee wrote:
>> 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