RFR: Apply UL to PrintCodeCacheOnCompilation

chihiro ito chihiro.ito at oracle.com
Fri May 19 10:03:28 UTC 2017


Hi Vladimir,

Thank you for reviewing and advice. I created a enhancement in JBS as 
JDK-8180654. Could you possibly check it and commit this to jdk10/hs as 
cito.

Regards,
Chihiro

On 2017/05/19 2:51, Vladimir Kozlov wrote:
> Hi Chihiro,
>
> Changes looks fine.
> Please, file Enhancement in JBS. Then we can sponsor it.
>
> Thanks,
> Vladimir
>
> On 5/18/17 6:10 AM, chihiro ito wrote:
>> Hi all,
>>
>> I apply Unified JVM Logging to log of PrintCodeCacheOnCompilation 
>> option. Logs which applied this is following.
>> Could you possibly review for this following small change? If review 
>> is ok, please commit this as cito.
>>
>> Sample Log:
>> [1.370s][debug][compilation,codecache] CodeHeap 'non-profiled 
>> nmethods': size=120036Kb used=13Kb max_used=13Kb free=120022Kb
>> [1.372s][debug][compilation,codecache] CodeHeap 'profiled nmethods': 
>> size=120032Kb used=85Kb max_used=85Kb free=119946Kb
>> [1.372s][debug][compilation,codecache] CodeHeap 'non-nmethods': 
>> size=5692Kb used=2648Kb max_used=2655Kb free=3043Kb
>>
>> Source:
>> diff --git a/src/share/vm/compiler/compileBroker.cpp 
>> b/src/share/vm/compiler/compileBroker.cpp
>> --- a/src/share/vm/compiler/compileBroker.cpp
>> +++ b/src/share/vm/compiler/compileBroker.cpp
>> @@ -1726,6 +1726,22 @@
>>    tty->print("%s", s.as_string());
>>  }
>>
>> +// wrapper for CodeCache::print_summary() using outputStream
>> +static void codecache_print(outputStream* out, bool detailed) {
>> +  ResourceMark rm;
>> +  stringStream s;
>> +
>> +  // Dump code cache into a buffer
>> +  {
>> +    MutexLockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag);
>> +    CodeCache::print_summary(&s, detailed);
>> +  }
>> +
>> +  for( char *pos, *line = strtok_r(s.as_string(), "\n", &pos) ; line 
>> != NULL ; line = strtok_r(NULL, "\n", &pos) ) {
>> +    out->print_cr("%s", line);
>> +  }
>> +}
>> +
>>  void CompileBroker::post_compile(CompilerThread* thread, 
>> CompileTask* task, EventCompilation& event, bool success, ciEnv* 
>> ci_env) {
>>
>>    if (success) {
>> @@ -1939,6 +1955,10 @@
>>      tty->print_cr("time: %d inlined: %d bytes", 
>> (int)time.milliseconds(), task->num_inlined_bytecodes());
>>    }
>>
>> +  Log(compilation, codecache) log;
>> +  if (log.is_debug())
>> +    codecache_print(log.debug_stream(), /* detailed= */ false);
>> +
>>    if (PrintCodeCacheOnCompilation)
>>      codecache_print(/* detailed= */ false);
>>
>>
>>
>> Regards,
>> Chihiro
>>
>>

-- 

Chihiro Ito | Principal Consultant | +81.90.6148.8815
Oracle <http://www.oracle.com> Consultant
ORACLE Japan | Akasaka Center Bldg. | Motoakasaka 1-3-13 | 1070051 
Minato-ku, Tokyo, JAPAN

Oracle is committed to developing practices and products that help 
protect the environment <http://www.oracle.com/commitment>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20170519/c2fa104e/attachment.html>


More information about the hotspot-compiler-dev mailing list