RFR: 8166002: Emulate client build on platforms with reduced virtual address space

Igor Veresov igor.veresov at oracle.com
Tue Jan 3 17:19:56 UTC 2017


It looks fine to me.

igor

> On Jan 3, 2017, at 8:17 AM, Jamsheed C m <jamsheed.c.m at oracle.com> wrote:
> 
> Hi Vladimir,
> 
> On 1/3/2017 11:15 AM, Vladimir Kozlov wrote:
>> Hi Jamsheed
>> 
>> Why you moved set_client_compilation_mode() to c1_globals and new class? Why not to keep it in compilerDefinitions?
>> 
> Done.
>> selected_with_other_flags setting and code in compilation_mode_selected() have the same checks - factor them into one function.
> Done.
>> 
>> I would suggest to keep comment in compilationPolicy.cpp.
> Done.
> revised webrev: http://cr.openjdk.java.net/~jcm/8166002/webrev.05/
> 
> Best Regards,
> Jamsheed
>> 
>> I reviewed CCC request.
>> 
>> Thanks,
>> Vladimir
>> 
>> On 1/2/17 8:25 PM, Jamsheed C m wrote:
>>> Hi Vladimir, Igor,
>>> 
>>> i changed implementation a little bit(i.e now more close to -client behavior). Tests are modified to support this mode.
>>> 
>>> http://cr.openjdk.java.net/~jcm/8166002/webrev.04/
>>> 
>>> 
>>> A new command-line option -XX:CompilationMode=<server/client> will be provided in JDK 9 to emulate a client build on
>>> 32-bit Windows platforms using a standard tiered build.
>>> 
>>> -XX:CompilationMode=server--selects to build time compilation mode of server VM.
>>> -XX:CompilationMode=client--selects non-tiered c1 compiler. (Serial Garbage Collection in ON and Xshare is set to auto
>>> in this mode).
>>> 
>>> This option is available only on Tiered build (i.e. Server VM).
>>> Client VM ignores this flag and continues with build time compilation mode.
>>> 
>>> This option will have no effect if any of TieredCompilation, TieredStopAtLevel, UseAOT, EnableJVMCI, UseJVMCICompiler is
>>> specified at the command-line.
>>> 
>>> Platforms except 32-bit Windows runs in server compilation mode by default. 32-bit Windows runs in client compilation
>>> mode by default. The user should specify -XX:CompilationMode=<server/client> to switch.
>>> 
>>> -XX:+/-TieredCompilation or -XX:TieredStopAtLevel=<0-4> or -XX:+/-UseAOT or -XX:+/-EnableJVMCI or
>>> -XX:+/-UseJVMCICompiler always switch to build time compilation mode plus corresponding option behavior irrespective of
>>> CompilationMode option.
>>> 
>>> I have updated the CCC request link in bug report, Please review.
>>> 
>>> Best Regards,
>>> Jamsheed
>>> 
>>> On 12/6/2016 12:22 AM, Vladimir Kozlov wrote:
>>>> On 12/5/16 6:21 AM, Jamsheed C m wrote:
>>>>> Hi Vladimir,
>>>>> 
>>>>> On 12/3/2016 8:02 AM, Vladimir Kozlov wrote:
>>>>>> On 12/2/16 7:38 AM, Jamsheed C m wrote:
>>>>>>> Hi Vladimir, Igor,
>>>>>>> 
>>>>>>> I made a few more changes to include the optimization that was available only on client.
>>>>>>> 
>>>>>>> 1) a few c1 changes (JDK-7153771..)
>>>>>> 
>>>>>> Which one?
>>>>> This one.
>>>> 
>>>> I see.
>>>> 
>>>> Thanks,
>>>> Vladimir
>>>> 
>>>>> src/share/vm/c1/c1_Compilation.hpp
>>>>> 
>>>>>  // will compilation make optimistic assumptions that might lead to
>>>>>    // deoptimization and that the runtime will account for?
>>>>>    bool is_optimistic() const                             {
>>>>> - return !TieredCompilation &&
>>>>> + return is_client_compilation_mode_vm() &&
>>>>>        (RangeCheckElimination || UseLoopInvariantCodeMotion) &&
>>>>> method()->method_data()->trap_count(Deoptimization::Reason_none) == 0;
>>>>>    }
>>>>> 
>>>>> src/share/vm/c1/c1_Runtime1.cpp
>>>>> - assert(!TieredCompilation, "incompatible with tiered compilation");
>>>>> + assert(is_client_compilation_mode_vm(), "incompatible in non client modes");
>>>>> 
>>>>> mpegaudio was about 6% low without this.
>>>>> 
>>>>>>> 
>>>>>>> 2) Made SerialGC as default GC.
>>>>>> 
>>>>>> Should be only for client_compilation_mode
>>>>> Ok.
>>>>>> 
>>>>>>> 
>>>>>>> 3) Set CICompileCount=1 for client compilation mode.
>>>>>> 
>>>>>> I think check should be is_client_compilation_mode_vm()
>>>>> Ok.
>>>>> Best Regards,
>>>>> Jamsheed
>>>>>> 
>>>>>>> 
>>>>>>> 4) Tuned thresholds to get better performance.
>>>>>> 
>>>>>> ok
>>>>>> 
>>>>>>> 
>>>>>>> 5) Added relevant flags in few tests, modified TestSelectDefaultGC.java.
>>>>>> 
>>>>>> ok
>>>>>> 
>>>>>> Thanks,
>>>>>> Vladimir
>>>>>> 
>>>>>>> 
>>>>>>> revised webrev: http://cr.openjdk.java.net/~jcm/8166002/webrev.03/
>>>>>>> 
>>>>>>> performance report is added in bug report.
>>>>>>> 
>>>>>>> Best Regards,
>>>>>>> 
>>>>>>> Jamsheed
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> On 11/1/2016 1:14 AM, Vladimir Kozlov wrote:
>>>>>>>> webrev.02 looks good to me too.
>>>>>>>> 
>>>>>>>> Thanks,
>>>>>>>> Vladimri
>>>>>>>> 
>>>>>>>> On 10/31/16 10:39 AM, Igor Veresov wrote:
>>>>>>>>> Jamsheed explained to me that ReservedCodeCacheSize is now set in the else clause (udiffs are not showing the
>>>>>>>>> proper alignment and I missed it). The change looks good to me.
>>>>>>>>> 
>>>>>>>>> igor
>>>>>>>>> 
>>>>>>>>>> On Oct 31, 2016, at 9:42 AM, Igor Veresov <igor.veresov at oracle.com> wrote:
>>>>>>>>>> 
>>>>>>>>>> Assuming it gets the performance/startup numbers close to the client VM it looks fine.
>>>>>>>>>> But what about adjusting the code cache sizes? With tiered we get 240M ReservedCodeCacheSize, which also turns
>>>>>>>>>> on SegmentedCodeCache. It seems like we won’t need the “profiled” segment of the code
>>>>>>>>>> cache at all. It is also likely that we’d do fine with a smaller overall code cache.
>>>>>>>>>> 
>>>>>>>>>> igor
>>>>>>>>>> 
>>>>>>>>>>> On Oct 31, 2016, at 9:14 AM, Jamsheed C m <jamsheed.c.m at oracle.com> wrote:
>>>>>>>>>>> 
>>>>>>>>>>> Hi Vladimir, Igor,
>>>>>>>>>>> 
>>>>>>>>>>> revised webrev: http://cr.openjdk.java.net/~jcm/8166002/webrev.02/
>>>>>>>>>>> 
>>>>>>>>>>> i took flags from bug comment.
>>>>>>>>>>> 
>>>>>>>>>>> Igor V. suggested next flags setting to emulate Client VM compile threshold with TieredStopAtLevel=1:
>>>>>>>>>>> 
>>>>>>>>>>> Tier3BackEdgeThreshold=14000
>>>>>>>>>>> Tier3CompileThreshold=1500
>>>>>>>>>>> Tier3InvocationThreshold=1500
>>>>>>>>>>> Tier3MinInvocationThreshold =1500
>>>>>>>>>>> 
>>>>>>>>>>> Best Regards,
>>>>>>>>>>> 
>>>>>>>>>>> Jamsheed
>>>>>>>>>>> 
>>>>>>>>>>> On 10/28/2016 11:48 PM, Vladimir Kozlov wrote:
>>>>>>>>>>>> Add comment what the code does and why. Move the code into separate function reaturning bool. And condition
>>>>>>>>>>>> CodeCache setting based on result. It will reduce #ifdef mess.
>>>>>>>>>>>> 
>>>>>>>>>>>> Can you put && to the end of previous line? To get good alignment.
>>>>>>>>>>>> Should we also change CompilationPolicyChoice?
>>>>>>>>>>>> 
>>>>>>>>>>>> Ask Igor Veresov to verify settings.
>>>>>>>>>>>> 
>>>>>>>>>>>> Thanks,
>>>>>>>>>>>> Vladimir
>>>>>>>>>>>> 
>>>>>>>>>>>> On 10/28/16 10:59 AM, Jamsheed C m wrote:
>>>>>>>>>>>>> Hi Vladimir,
>>>>>>>>>>>>> 
>>>>>>>>>>>>> revised webrev with just ergo settings for win32.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> http://cr.openjdk.java.net/~jcm/8166002/webrev.01/
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Best Regards
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Jamsheed
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> On 10/28/2016 12:25 PM, Vladimir Kozlov wrote:
>>>>>>>>>>>>>> Hi Jamsheed,
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Why you need changes in tests?
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Why you can't use set_client_compilation_mode() in both places?
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Looks fine otherwise.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>> Vladimir
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> On 10/20/16 8:45 AM, Jamsheed C m wrote:
>>>>>>>>>>>>>>> Hi All,
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> bug id:https://bugs.openjdk.java.net/browse/JDK-8166002
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> http://cr.openjdk.java.net/~jcm/8166002/webrev.00/
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Fix: set NeverActAsServerClassMachine=true, Limit TieredCompilation to C1 by default, for win32 platform.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> A new flag CompilationMode=<client/server> is introduced to select server/ client mode compilation. This
>>>>>>>>>>>>>>> option is supported only in TIERED builds.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> -XX:CompilationMode=server supports both -XX:+/-TieredCompilation.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> -XX:CompilationMode:client ignores TieredCompilation flag.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Please review,
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Best Regards,
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Jamsheed
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>>> 
> 



More information about the hotspot-compiler-dev mailing list