RFR: 8152491: Convert TracePageSizes to use UL

Stefan Karlsson stefan.karlsson at oracle.com
Mon Apr 11 13:56:37 UTC 2016


Hi Per,

On 2016-04-11 15:10, Per Liden wrote:
> Hi Stefan,
>
> Looks good.
>
> In os_windows.cpp, maybe change
>
> 3009    log_develop_info(pagesize)("Reserving pages individually 
> failed.");
>
> to a log_develop_debug()? I leave it to you to decide. I don't need to 
> see a new webrev.

OK. I'll change it.

Thanks for reviewing.

StefanK

>
> cheers,
> Per
>
> On 2016-04-08 10:57, Stefan Johansson wrote:
>> Hi StefanK,
>>
>> On 2016-04-06 20:16, Stefan Karlsson wrote:
>>> Hi all,
>>>
>>> Please review to convert TracePageSizes to use UL.
>>>
>>> http://cr.openjdk.java.net/~stefank/8152491/webrev.01
>>> https://bugs.openjdk.java.net/browse/JDK-8152491
>>>
>>> TracePageSizes used to be a develop flag, but I've decided to create a
>>> UL tag accessible from release builds. We've recently needed to debug
>>> some large pages code and wanted this information in release builds.
>>>
>> Looks good in general and I like that we make it available in product
>> mode. Just a few comments.
>>
>> os.cpp: 1534 void os::trace_page_sizes_for_requested_size(const char* 
>> str,
>> 1535 const size_t requested_size, ...
>> 1541 log_info(pagesizes)("%s:"
>> 1542 " req_size=" SIZE_FORMAT "%s"
>> 1543 " base=" PTR_FORMAT
>> ...
>> 1547 str,
>> 1548 trace_page_size_params(size),
>> 1549 p2i(base),
>> On line 1548 we should use requested_size instead of size.---
>>
>> genCollectedHeap.cpp:
>> 170
>> 171   os::trace_page_sizes("Heap", 
>> collector_policy()->min_heap_byte_size(),
>> 172                        total_reserved,
>> 173                        alignment,
>> 174                        heap_rs->base(),
>> 175                        heap_rs->size());
>>
>> Move min_heap_byte_size() to its own line.
>> ---
>>
>> I also think that it would be better to use 'pagesize' instead of
>> 'pagesizes' as the tag, even though the old flag said pagesizes. But
>> there are a lot of other flags that also have an ending s, exceptions
>> for example, so I'm not sure how we should handle it. It would be good
>> to make the tags feel "unified".
>>
>> Thanks,
>> Stefan
>>
>>> Changes in the patch:
>>>
>>> 1) Replaced TracePageSizes with the 'pagesizes' UL tag
>>> 2) Cleaned up the memory region description strings
>>> 3) Used B/K/M/G suffixes when the size is exactly divisible by those
>>> 4) Removed trace_gen_sizes, since the output was too obscure to be
>>> that helpful
>>> 5) Added tracing for Serial and CMS
>>> 6) Fixed a jtreg test that verified the output from TracePageSizes
>>>
>>> Example output from 'java -Xlog:pagesizes -Xmx512m -XX:+UseLargePages
>>> -version':
>>>
>>> [0.018s][info][pagesizes] CodeHeap 'non-nmethods':  min=2496K max=8M
>>> base=0x00007fd735000000 page_size=4K size=8M
>>> [0.018s][info][pagesizes] CodeHeap 'profiled nmethods': min=2496K
>>> max=116M base=0x00007fd735800000 page_size=4K size=116M
>>> [0.018s][info][pagesizes] CodeHeap 'non-profiled nmethods': min=2496K
>>> max=116M base=0x00007fd73cc00000 page_size=4K size=116M
>>> [0.056s][info][pagesizes] Heap:  min=8M max=512M
>>> base=0x00000000e0000000 page_size=2M size=512M
>>> [0.056s][info][pagesizes] Block Offset Table: req_size=1M
>>> base=0x00007fd6d5fe1000 page_size=4K alignment=4K size=1M
>>> [0.056s][info][pagesizes] Card Table: req_size=1M
>>> base=0x00007fd6d5de1000 page_size=4K alignment=4K size=1M
>>> [0.056s][info][pagesizes] Card Counts Table: req_size=1M
>>> base=0x00007fd6d5ce1000 page_size=4K alignment=4K size=1M
>>> [0.056s][info][pagesizes] Prev Bitmap: req_size=8M
>>> base=0x00007fd6d5400000 page_size=2M alignment=2M size=8M
>>> [0.056s][info][pagesizes] Next Bitmap: req_size=8M
>>> base=0x00007fd6d4c00000 page_size=2M alignment=2M size=8M
>>>
>>> The patch uses the LogStreamCHeap from the following patch that is out
>>> for review:
>>> http://mail.openjdk.java.net/pipermail/hotspot-dev/2016-April/022477.html 
>>>
>>>
>>> Tested with JPRT and new internal VM test for the suffixes.
>>>
>>> Thanks,
>>> StefanK
>>




More information about the hotspot-gc-dev mailing list