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

Jamsheed C m jamsheed.c.m at oracle.com
Mon Dec 5 14:21:12 UTC 2016


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.
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
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>
>>>>
>>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20161205/db712381/attachment-0001.html>


More information about the hotspot-compiler-dev mailing list