mirror of
https://github.com/openjdk/jdk.git
synced 2026-01-30 21:18:25 +00:00
8206919: s390: add missing info to vm_version_ext_s390
Reviewed-by: simonis, mdoerr
This commit is contained in:
parent
991ca8f9fa
commit
bb12ce24ef
@ -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 @@ int VM_Version_Ext::number_of_sockets(void) {
|
||||
}
|
||||
|
||||
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_name(void) {
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
@ -43,10 +43,11 @@ class VM_Version_Ext : public VM_Version {
|
||||
static int _no_of_threads;
|
||||
static int _no_of_cores;
|
||||
static int _no_of_sockets;
|
||||
static bool _initialized;
|
||||
static char _cpu_name[CPU_TYPE_DESC_BUF_SIZE];
|
||||
static char _cpu_desc[CPU_DETAILED_DESC_BUF_SIZE];
|
||||
|
||||
static bool initialize_cpu_information(void);
|
||||
static void initialize_cpu_information(void);
|
||||
|
||||
public:
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2016, 2017 SAP SE. All rights reserved.
|
||||
* Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2016, 2018 SAP SE. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -36,6 +36,7 @@
|
||||
# include <sys/sysinfo.h>
|
||||
|
||||
bool VM_Version::_is_determine_features_test_running = false;
|
||||
const char* VM_Version::_model_string;
|
||||
|
||||
unsigned long VM_Version::_features[_features_buffer_len] = {0, 0, 0, 0};
|
||||
unsigned long VM_Version::_cipher_features[_features_buffer_len] = {0, 0, 0, 0};
|
||||
@ -248,32 +249,40 @@ void VM_Version::initialize() {
|
||||
void VM_Version::set_features_string() {
|
||||
|
||||
unsigned int ambiguity = 0;
|
||||
_model_string = z_name[0];
|
||||
if (is_z13()) {
|
||||
_features_string = "System z G7-z13 (LDISP_fast, ExtImm, PCrel Load/Store, CmpB, Cond Load/Store, Interlocked Update, TxM, VectorInstr)";
|
||||
_model_string = z_name[7];
|
||||
ambiguity++;
|
||||
}
|
||||
if (is_ec12()) {
|
||||
_features_string = "System z G6-EC12 (LDISP_fast, ExtImm, PCrel Load/Store, CmpB, Cond Load/Store, Interlocked Update, TxM)";
|
||||
_model_string = z_name[6];
|
||||
ambiguity++;
|
||||
}
|
||||
if (is_z196()) {
|
||||
_features_string = "System z G5-z196 (LDISP_fast, ExtImm, PCrel Load/Store, CmpB, Cond Load/Store, Interlocked Update)";
|
||||
_model_string = z_name[5];
|
||||
ambiguity++;
|
||||
}
|
||||
if (is_z10()) {
|
||||
_features_string = "System z G4-z10 (LDISP_fast, ExtImm, PCrel Load/Store, CmpB)";
|
||||
_model_string = z_name[4];
|
||||
ambiguity++;
|
||||
}
|
||||
if (is_z9()) {
|
||||
_features_string = "System z G3-z9 (LDISP_fast, ExtImm), out-of-support as of 2016-04-01";
|
||||
_model_string = z_name[3];
|
||||
ambiguity++;
|
||||
}
|
||||
if (is_z990()) {
|
||||
_features_string = "System z G2-z990 (LDISP_fast), out-of-support as of 2014-07-01";
|
||||
_model_string = z_name[2];
|
||||
ambiguity++;
|
||||
}
|
||||
if (is_z900()) {
|
||||
_features_string = "System z G1-z900 (LDISP), out-of-support as of 2014-07-01";
|
||||
_model_string = z_name[1];
|
||||
ambiguity++;
|
||||
}
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2016 SAP SE. All rights reserved.
|
||||
* Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2016, 2018 SAP SE. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -131,6 +131,7 @@ class VM_Version: public Abstract_VM_Version {
|
||||
static unsigned int _Dcache_lineSize;
|
||||
static unsigned int _Icache_lineSize;
|
||||
static bool _is_determine_features_test_running;
|
||||
static const char* _model_string;
|
||||
|
||||
static bool test_feature_bit(unsigned long* featureBuffer, int featureNum, unsigned int bufLen);
|
||||
static void set_features_string();
|
||||
@ -346,6 +347,7 @@ class VM_Version: public Abstract_VM_Version {
|
||||
static bool is_determine_features_test_running() { return _is_determine_features_test_running; }
|
||||
|
||||
// CPU feature query functions
|
||||
static const char* get_model_string() { return _model_string; }
|
||||
static bool has_StoreFacilityListExtended() { return (_features[0] & StoreFacilityListExtendedMask) == StoreFacilityListExtendedMask; }
|
||||
static bool has_Crypto() { return (_features[0] & CryptoFacilityMask) == CryptoFacilityMask; }
|
||||
static bool has_ETF2() { return (_features[0] & ETF2Mask) == ETF2Mask; }
|
||||
|
||||
@ -53,8 +53,8 @@ public class TestCPUInformation {
|
||||
Events.assertField(event, "hwThreads").atLeast(1);
|
||||
Events.assertField(event, "cores").atLeast(1);
|
||||
Events.assertField(event, "sockets").atLeast(1);
|
||||
Events.assertField(event, "cpu").containsAny("Intel", "AMD", "Unknown x86", "sparc", "ARM", "PPC", "PowerPC", "AArch64");
|
||||
Events.assertField(event, "description").containsAny("Intel", "AMD", "Unknown x86", "SPARC", "ARM", "PPC", "PowerPC", "AArch64");
|
||||
Events.assertField(event, "cpu").containsAny("Intel", "AMD", "Unknown x86", "sparc", "ARM", "PPC", "PowerPC", "AArch64", "s390");
|
||||
Events.assertField(event, "description").containsAny("Intel", "AMD", "Unknown x86", "SPARC", "ARM", "PPC", "PowerPC", "AArch64", "zArch");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user