提交 1c751269 编写于 作者: P poonam

8080012: JVM times out with vdbench on SPARC M7-16

Summary: check cacheline sine only for one core on sun4v SPARC systems.
Reviewed-by: kvn
上级 3cb5f290
...@@ -189,7 +189,7 @@ public: ...@@ -189,7 +189,7 @@ public:
return CPUVisitor::visit(nodeh, state); return CPUVisitor::visit(nodeh, state);
} }
PICL(bool is_fujitsu) : _L1_data_cache_line_size(0), _L2_data_cache_line_size(0), _dl_handle(NULL) { PICL(bool is_fujitsu, bool is_sun4v) : _L1_data_cache_line_size(0), _L2_data_cache_line_size(0), _dl_handle(NULL) {
if (!open_library()) { if (!open_library()) {
return; return;
} }
...@@ -201,7 +201,7 @@ public: ...@@ -201,7 +201,7 @@ public:
if (is_fujitsu) { if (is_fujitsu) {
cpu_class = "core"; cpu_class = "core";
} }
CPUVisitor cpu_visitor(this, os::processor_count()); CPUVisitor cpu_visitor(this, (is_sun4v && !is_fujitsu) ? 1 : os::processor_count());
_picl_walk_tree_by_class(rooth, cpu_class, &cpu_visitor, PICL_visit_cpu_helper); _picl_walk_tree_by_class(rooth, cpu_class, &cpu_visitor, PICL_visit_cpu_helper);
if (cpu_visitor.l1_visitor()->is_assigned()) { // Is there a value? if (cpu_visitor.l1_visitor()->is_assigned()) { // Is there a value?
_L1_data_cache_line_size = cpu_visitor.l1_visitor()->value(); _L1_data_cache_line_size = cpu_visitor.l1_visitor()->value();
...@@ -494,7 +494,7 @@ int VM_Version::platform_features(int features) { ...@@ -494,7 +494,7 @@ int VM_Version::platform_features(int features) {
} }
// Figure out cache line sizes using PICL // Figure out cache line sizes using PICL
PICL picl((features & sparc64_family_m) != 0); PICL picl((features & sparc64_family_m) != 0, (features & sun4v_m) != 0);
_L2_data_cache_line_size = picl.L2_data_cache_line_size(); _L2_data_cache_line_size = picl.L2_data_cache_line_size();
return features; return features;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册