Request for review: 7186737: Unable to allocate bit map for parallel garbage collection for the requested heap
Hi all, Can I have one or two quick reviews? Thank you. Tao 7186737: Unable to allocate bit map for parallel garbage collection for the requested heap http://bugs.sun.com/view_bug.do?bug_id=7186737 webrev: http://cr.openjdk.java.net/~tamao/7186737/webrev.00/ changeset: Print out how many bytes we try to allocate when the allocation fails. This would give us a better idea of memory bottleneck. test: will run JPRT sanity for pushing.
On 05/10/2013 12:16 AM, Tao Mao wrote:
Hi all, Can I have one or two quick reviews?
Thank you. Tao
7186737: Unable to allocate bit map for parallel garbage collection for the requested heap http://bugs.sun.com/view_bug.do?bug_id=7186737
webrev: http://cr.openjdk.java.net/~tamao/7186737/webrev.00/
I don't think it's good to print this error messages directly to the gclog_or_tty. I'd prefer if you could update the text in the vm_shutdown_during_initialization calls. See: PSParallelCompact::initialize(): if (!_mark_bitmap.initialize(mr)) { vm_shutdown_during_initialization("Unable to allocate bit map for " "parallel garbage collection for the requested heap size."); return false; } if (!_summary_data.initialize(mr)) { vm_shutdown_during_initialization("Unable to allocate tables for " "parallel garbage collection for the requested heap size."); return false; } It would also be good to log both the requested heap size and and bitmap size. For the latter you'd have to extract the bitmap size calculation out of ParMarkBitMap::initialize. thanks, StefanK
changeset: Print out how many bytes we try to allocate when the allocation fails. This would give us a better idea of memory bottleneck.
test: will run JPRT sanity for pushing.
Tao, Sorry about my poor suggestion about the error message. You wanted to print the size of the allocation that failed, right? And as Stefan suggests you could get that size from the MemRegion at the call to the initialize? if (!_summary_data.initialize(mr)) { Jon On 5/10/2013 1:01 AM, Stefan Karlsson wrote:
On 05/10/2013 12:16 AM, Tao Mao wrote:
Hi all, Can I have one or two quick reviews?
Thank you. Tao
7186737: Unable to allocate bit map for parallel garbage collection for the requested heap http://bugs.sun.com/view_bug.do?bug_id=7186737
webrev: http://cr.openjdk.java.net/~tamao/7186737/webrev.00/
I don't think it's good to print this error messages directly to the gclog_or_tty.
I'd prefer if you could update the text in the vm_shutdown_during_initialization calls.
See: PSParallelCompact::initialize():
if (!_mark_bitmap.initialize(mr)) { vm_shutdown_during_initialization("Unable to allocate bit map for " "parallel garbage collection for the requested heap size."); return false; }
if (!_summary_data.initialize(mr)) { vm_shutdown_during_initialization("Unable to allocate tables for " "parallel garbage collection for the requested heap size."); return false; }
It would also be good to log both the requested heap size and and bitmap size. For the latter you'd have to extract the bitmap size calculation out of ParMarkBitMap::initialize.
thanks, StefanK
changeset: Print out how many bytes we try to allocate when the allocation fails. This would give us a better idea of memory bottleneck.
test: will run JPRT sanity for pushing.
Hi all, new webrev: http://cr.openjdk.java.net/~tamao/7186737/webrev.01/ changeset Print a more useful error message when allocation fails (1) Case 1 card tables Before: $ jdk1.8.0_b74_macosx/bin/java -server -Xmx123t -version Error occurred during initialization of VM Unable to allocate tables for parallel garbage collection for the requested heap size. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. After: $ jdk1.8.0_b74_macosx/bin/java -tamao -Xmx123t -version Error occurred during initialization of VM Unable to allocate 1056561954816 byte tables for parallel garbage collection for the requested 135239930216448 byte heap size. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. (2) Case 2 bit map Before: $ jdk1.8.0_b74_macosx/bin/java -server -Xmx126t -version Error occurred during initialization of VM Unable to allocate bit map for parallel garbage collection for the requested heap size. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. After: $ jdk1.8.0_b74_macosx/bin/java -tamao -Xmx126t -version Error occurred during initialization of VM Unable to allocate 4329327034368 byte bitmap for parallel garbage collection for the requested 138538465099776 byte heap size. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. Thanks. Tao On 5/10/13 11:02 AM, Jon Masamitsu wrote:
Tao,
Sorry about my poor suggestion about the error message. You wanted to print the size of the allocation that failed, right? And as Stefan suggests you could get that size from the MemRegion at the call to the initialize?
if (!_summary_data.initialize(mr)) {
Jon
On 5/10/2013 1:01 AM, Stefan Karlsson wrote:
On 05/10/2013 12:16 AM, Tao Mao wrote:
Hi all, Can I have one or two quick reviews?
Thank you. Tao
7186737: Unable to allocate bit map for parallel garbage collection for the requested heap http://bugs.sun.com/view_bug.do?bug_id=7186737
webrev: http://cr.openjdk.java.net/~tamao/7186737/webrev.00/
I don't think it's good to print this error messages directly to the gclog_or_tty.
I'd prefer if you could update the text in the vm_shutdown_during_initialization calls.
See: PSParallelCompact::initialize():
if (!_mark_bitmap.initialize(mr)) { vm_shutdown_during_initialization("Unable to allocate bit map for " "parallel garbage collection for the requested heap size."); return false; }
if (!_summary_data.initialize(mr)) { vm_shutdown_during_initialization("Unable to allocate tables for " "parallel garbage collection for the requested heap size."); return false; }
It would also be good to log both the requested heap size and and bitmap size. For the latter you'd have to extract the bitmap size calculation out of ParMarkBitMap::initialize.
thanks, StefanK
changeset: Print out how many bytes we try to allocate when the allocation fails. This would give us a better idea of memory bottleneck.
test: will run JPRT sanity for pushing.
Hi Tao, On 05/16/2013 02:01 AM, Tao Mao wrote:
Hi all,
new webrev: http://cr.openjdk.java.net/~tamao/7186737/webrev.01/
Thanks for doing this change. I think it's much better now. I'm not sure about the wording of the messages, maybe Jon can review that part? thanks, StefanK
changeset Print a more useful error message when allocation fails
(1) Case 1 card tables Before: $ jdk1.8.0_b74_macosx/bin/java -server -Xmx123t -version Error occurred during initialization of VM Unable to allocate tables for parallel garbage collection for the requested heap size. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.
After: $ jdk1.8.0_b74_macosx/bin/java -tamao -Xmx123t -version Error occurred during initialization of VM Unable to allocate 1056561954816 byte tables for parallel garbage collection for the requested 135239930216448 byte heap size. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.
(2) Case 2 bit map Before: $ jdk1.8.0_b74_macosx/bin/java -server -Xmx126t -version Error occurred during initialization of VM Unable to allocate bit map for parallel garbage collection for the requested heap size. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.
After: $ jdk1.8.0_b74_macosx/bin/java -tamao -Xmx126t -version Error occurred during initialization of VM Unable to allocate 4329327034368 byte bitmap for parallel garbage collection for the requested 138538465099776 byte heap size. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.
Thanks. Tao
On 5/10/13 11:02 AM, Jon Masamitsu wrote:
Tao,
Sorry about my poor suggestion about the error message. You wanted to print the size of the allocation that failed, right? And as Stefan suggests you could get that size from the MemRegion at the call to the initialize?
if (!_summary_data.initialize(mr)) {
Jon
On 5/10/2013 1:01 AM, Stefan Karlsson wrote:
On 05/10/2013 12:16 AM, Tao Mao wrote:
Hi all, Can I have one or two quick reviews?
Thank you. Tao
7186737: Unable to allocate bit map for parallel garbage collection for the requested heap http://bugs.sun.com/view_bug.do?bug_id=7186737
webrev: http://cr.openjdk.java.net/~tamao/7186737/webrev.00/
I don't think it's good to print this error messages directly to the gclog_or_tty.
I'd prefer if you could update the text in the vm_shutdown_during_initialization calls.
See: PSParallelCompact::initialize():
if (!_mark_bitmap.initialize(mr)) { vm_shutdown_during_initialization("Unable to allocate bit map for " "parallel garbage collection for the requested heap size."); return false; }
if (!_summary_data.initialize(mr)) { vm_shutdown_during_initialization("Unable to allocate tables for " "parallel garbage collection for the requested heap size."); return false; }
It would also be good to log both the requested heap size and and bitmap size. For the latter you'd have to extract the bitmap size calculation out of ParMarkBitMap::initialize.
thanks, StefanK
changeset: Print out how many bytes we try to allocate when the allocation fails. This would give us a better idea of memory bottleneck.
test: will run JPRT sanity for pushing.
Hi all, Thank you for review. Per the offline discussion with Jon, I have adopted "printing the bytes in kilo" New webrev: http://cr.openjdk.java.net/~tamao/7186737/webrev.02/ Changeset: (1) Case 1 card tables Before: $ jdk1.8.0_b74_macosx/bin/java -server -Xmx123t -version Error occurred during initialization of VM Unable to allocate tables for parallel garbage collection for the requested heap size. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. After: $ jdk1.8.0_b74_macosx/bin/java -tamao -Xmx123t -version Error occurred during initialization of VM Unable to allocate 1031798784K byte tables for parallel garbage collection for the requested 132070244352K byte heap size. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. (2) Case 2 bit map Before: $ jdk1.8.0_b74_macosx/bin/java -server -Xmx126t -version Error occurred during initialization of VM Unable to allocate bit map for parallel garbage collection for the requested heap size. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. After: $ jdk1.8.0_b74_macosx/bin/java -tamao -Xmx126t -version Error occurred during initialization of VM Unable to allocate 4227858432K byte bitmap for parallel garbage collection for the requested 135291469824K byte heap size. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. Thanks. Tao On 5/16/13 8:10 AM, Stefan Karlsson wrote:
Hi Tao,
On 05/16/2013 02:01 AM, Tao Mao wrote:
Hi all,
new webrev: http://cr.openjdk.java.net/~tamao/7186737/webrev.01/
Thanks for doing this change. I think it's much better now.
I'm not sure about the wording of the messages, maybe Jon can review that part?
thanks, StefanK
changeset Print a more useful error message when allocation fails
(1) Case 1 card tables Before: $ jdk1.8.0_b74_macosx/bin/java -server -Xmx123t -version Error occurred during initialization of VM Unable to allocate tables for parallel garbage collection for the requested heap size. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.
After: $ jdk1.8.0_b74_macosx/bin/java -tamao -Xmx123t -version Error occurred during initialization of VM Unable to allocate 1056561954816 byte tables for parallel garbage collection for the requested 135239930216448 byte heap size. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.
(2) Case 2 bit map Before: $ jdk1.8.0_b74_macosx/bin/java -server -Xmx126t -version Error occurred during initialization of VM Unable to allocate bit map for parallel garbage collection for the requested heap size. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.
After: $ jdk1.8.0_b74_macosx/bin/java -tamao -Xmx126t -version Error occurred during initialization of VM Unable to allocate 4329327034368 byte bitmap for parallel garbage collection for the requested 138538465099776 byte heap size. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.
Thanks. Tao
On 5/10/13 11:02 AM, Jon Masamitsu wrote:
Tao,
Sorry about my poor suggestion about the error message. You wanted to print the size of the allocation that failed, right? And as Stefan suggests you could get that size from the MemRegion at the call to the initialize?
if (!_summary_data.initialize(mr)) {
Jon
On 5/10/2013 1:01 AM, Stefan Karlsson wrote:
On 05/10/2013 12:16 AM, Tao Mao wrote:
Hi all, Can I have one or two quick reviews?
Thank you. Tao
7186737: Unable to allocate bit map for parallel garbage collection for the requested heap http://bugs.sun.com/view_bug.do?bug_id=7186737
webrev: http://cr.openjdk.java.net/~tamao/7186737/webrev.00/
I don't think it's good to print this error messages directly to the gclog_or_tty.
I'd prefer if you could update the text in the vm_shutdown_during_initialization calls.
See: PSParallelCompact::initialize():
if (!_mark_bitmap.initialize(mr)) { vm_shutdown_during_initialization("Unable to allocate bit map for " "parallel garbage collection for the requested heap size."); return false; }
if (!_summary_data.initialize(mr)) { vm_shutdown_during_initialization("Unable to allocate tables for " "parallel garbage collection for the requested heap size."); return false; }
It would also be good to log both the requested heap size and and bitmap size. For the latter you'd have to extract the bitmap size calculation out of ParMarkBitMap::initialize.
thanks, StefanK
changeset: Print out how many bytes we try to allocate when the allocation fails. This would give us a better idea of memory bottleneck.
test: will run JPRT sanity for pushing.
new webrev: http://cr.openjdk.java.net/~tamao/7186737/webrev.03/ changeset: (1) card tables $ jdk1.8.0_b74_macosx/bin/java -tamao -XX:+UseParallelGC -Xmx123t -version Error occurred during initialization of VM Unable to allocate 1031798784KB card tables for parallel garbage collection for the requested 132070244352KB heap. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. (2) bitmaps $ jdk1.8.0_b74_macosx/bin/java -tamao -XX:+UseParallelGC -Xmx126t -version Error occurred during initialization of VM Unable to allocate 4227858432KB bitmaps for parallel garbage collection for the requested 135291469824KB heap. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. Thanks. Tao On 5/16/13 11:26 AM, Tao Mao wrote:
Hi all,
Thank you for review.
Per the offline discussion with Jon, I have adopted "printing the bytes in kilo"
New webrev: http://cr.openjdk.java.net/~tamao/7186737/webrev.02/
Changeset:
(1) Case 1 card tables Before: $ jdk1.8.0_b74_macosx/bin/java -server -Xmx123t -version Error occurred during initialization of VM Unable to allocate tables for parallel garbage collection for the requested heap size. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.
After: $ jdk1.8.0_b74_macosx/bin/java -tamao -Xmx123t -version Error occurred during initialization of VM Unable to allocate 1031798784K byte tables for parallel garbage collection for the requested 132070244352K byte heap size. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.
(2) Case 2 bit map Before: $ jdk1.8.0_b74_macosx/bin/java -server -Xmx126t -version Error occurred during initialization of VM Unable to allocate bit map for parallel garbage collection for the requested heap size. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.
After: $ jdk1.8.0_b74_macosx/bin/java -tamao -Xmx126t -version Error occurred during initialization of VM Unable to allocate 4227858432K byte bitmap for parallel garbage collection for the requested 135291469824K byte heap size. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.
Thanks. Tao
On 5/16/13 8:10 AM, Stefan Karlsson wrote:
Hi Tao,
On 05/16/2013 02:01 AM, Tao Mao wrote:
Hi all,
new webrev: http://cr.openjdk.java.net/~tamao/7186737/webrev.01/
Thanks for doing this change. I think it's much better now.
I'm not sure about the wording of the messages, maybe Jon can review that part?
thanks, StefanK
changeset Print a more useful error message when allocation fails
(1) Case 1 card tables Before: $ jdk1.8.0_b74_macosx/bin/java -server -Xmx123t -version Error occurred during initialization of VM Unable to allocate tables for parallel garbage collection for the requested heap size. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.
After: $ jdk1.8.0_b74_macosx/bin/java -tamao -Xmx123t -version Error occurred during initialization of VM Unable to allocate 1056561954816 byte tables for parallel garbage collection for the requested 135239930216448 byte heap size. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.
(2) Case 2 bit map Before: $ jdk1.8.0_b74_macosx/bin/java -server -Xmx126t -version Error occurred during initialization of VM Unable to allocate bit map for parallel garbage collection for the requested heap size. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.
After: $ jdk1.8.0_b74_macosx/bin/java -tamao -Xmx126t -version Error occurred during initialization of VM Unable to allocate 4329327034368 byte bitmap for parallel garbage collection for the requested 138538465099776 byte heap size. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.
Thanks. Tao
On 5/10/13 11:02 AM, Jon Masamitsu wrote:
Tao,
Sorry about my poor suggestion about the error message. You wanted to print the size of the allocation that failed, right? And as Stefan suggests you could get that size from the MemRegion at the call to the initialize?
if (!_summary_data.initialize(mr)) {
Jon
On 5/10/2013 1:01 AM, Stefan Karlsson wrote:
On 05/10/2013 12:16 AM, Tao Mao wrote:
Hi all, Can I have one or two quick reviews?
Thank you. Tao
7186737: Unable to allocate bit map for parallel garbage collection for the requested heap http://bugs.sun.com/view_bug.do?bug_id=7186737
webrev: http://cr.openjdk.java.net/~tamao/7186737/webrev.00/
I don't think it's good to print this error messages directly to the gclog_or_tty.
I'd prefer if you could update the text in the vm_shutdown_during_initialization calls.
See: PSParallelCompact::initialize():
if (!_mark_bitmap.initialize(mr)) { vm_shutdown_during_initialization("Unable to allocate bit map for " "parallel garbage collection for the requested heap size."); return false; }
if (!_summary_data.initialize(mr)) { vm_shutdown_during_initialization("Unable to allocate tables for " "parallel garbage collection for the requested heap size."); return false; }
It would also be good to log both the requested heap size and and bitmap size. For the latter you'd have to extract the bitmap size calculation out of ParMarkBitMap::initialize.
thanks, StefanK
changeset: Print out how many bytes we try to allocate when the allocation fails. This would give us a better idea of memory bottleneck.
test: will run JPRT sanity for pushing.
participants (3)
-
Jon Masamitsu
-
Stefan Karlsson
-
Tao Mao