comparison src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp @ 1665:a93a9eda13f7

6962947: shared TaskQueue statistics Reviewed-by: tonyp, ysr
author jcoomes
date Fri, 16 Jul 2010 21:33:21 -0700
parents e9ff18c4ace7
children 63f4675ac87d
comparison
equal deleted inserted replaced
1657:1a1ce2076047 1665:a93a9eda13f7
662 if (_hash_seed == NULL) { 662 if (_hash_seed == NULL) {
663 warning("_hash_seed array allocation failure"); 663 warning("_hash_seed array allocation failure");
664 return; 664 return;
665 } 665 }
666 666
667 // XXX use a global constant instead of 64! 667 typedef Padded<OopTaskQueue> PaddedOopTaskQueue;
668 typedef struct OopTaskQueuePadded {
669 OopTaskQueue work_queue;
670 char pad[64 - sizeof(OopTaskQueue)]; // prevent false sharing
671 } OopTaskQueuePadded;
672
673 for (i = 0; i < num_queues; i++) { 668 for (i = 0; i < num_queues; i++) {
674 OopTaskQueuePadded *q_padded = new OopTaskQueuePadded(); 669 PaddedOopTaskQueue *q = new PaddedOopTaskQueue();
675 if (q_padded == NULL) { 670 if (q == NULL) {
676 warning("work_queue allocation failure."); 671 warning("work_queue allocation failure.");
677 return; 672 return;
678 } 673 }
679 _task_queues->register_queue(i, &q_padded->work_queue); 674 _task_queues->register_queue(i, q);
680 } 675 }
681 for (i = 0; i < num_queues; i++) { 676 for (i = 0; i < num_queues; i++) {
682 _task_queues->queue(i)->initialize(); 677 _task_queues->queue(i)->initialize();
683 _hash_seed[i] = 17; // copied from ParNew 678 _hash_seed[i] = 17; // copied from ParNew
684 } 679 }