diff -r 003aa3e59090 -r 9937ef7499dc src/hotspot/cpu/s390/vm_version_ext_s390.cpp --- a/src/hotspot/cpu/s390/vm_version_ext_s390.cpp Wed Jul 11 13:41:25 2018 +0300 +++ b/src/hotspot/cpu/s390/vm_version_ext_s390.cpp Tue Jul 10 11:36:36 2018 +0200 @@ -31,13 +31,23 @@ int VM_Version_Ext::_no_of_threads = 0; int VM_Version_Ext::_no_of_cores = 0; int VM_Version_Ext::_no_of_sockets = 0; +bool VM_Version_Ext::_initialized = false; char VM_Version_Ext::_cpu_name[CPU_TYPE_DESC_BUF_SIZE] = {0}; char VM_Version_Ext::_cpu_desc[CPU_DETAILED_DESC_BUF_SIZE] = {0}; // get cpu information. -bool VM_Version_Ext::initialize_cpu_information(void) { - // Not yet implemented. - return false; +void VM_Version_Ext::initialize_cpu_information(void) { + // do nothing if cpu info has been initialized + if (_initialized) { + return; + } + + _no_of_cores = os::processor_count(); + _no_of_threads = _no_of_cores; + _no_of_sockets = _no_of_cores; + snprintf(_cpu_name, CPU_TYPE_DESC_BUF_SIZE, "s390 %s", VM_Version::get_model_string()); + snprintf(_cpu_desc, CPU_DETAILED_DESC_BUF_SIZE, "zArch %s", features_string()); + _initialized = true; } int VM_Version_Ext::number_of_threads(void) { @@ -56,9 +66,7 @@ } const char* VM_Version_Ext::cpu_name(void) { - if (!initialize_cpu_information()) { - return NULL; - } + initialize_cpu_information(); char* tmp = NEW_C_HEAP_ARRAY_RETURN_NULL(char, CPU_TYPE_DESC_BUF_SIZE, mtTracing); if (NULL == tmp) { return NULL; @@ -68,9 +76,7 @@ } const char* VM_Version_Ext::cpu_description(void) { - if (!initialize_cpu_information()) { - return NULL; - } + initialize_cpu_information(); char* tmp = NEW_C_HEAP_ARRAY_RETURN_NULL(char, CPU_DETAILED_DESC_BUF_SIZE, mtTracing); if (NULL == tmp) { return NULL;