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

Claes Redestad claes.redestad at oracle.com
Tue Feb 19 21:36:30 UTC 2019


Hi Jorn,

I'll sponsor this for jdk/jdk. I'll file a RFE, test it and push it
seeing it's already reviewed.

Thanks!

/Claes

On 2019-02-19 19:35, Jorn Vernee wrote:
> 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