--- old/src/share/vm/runtime/os.hpp 2016-07-21 12:32:31.569685172 +0200 +++ new/src/share/vm/runtime/os.hpp 2016-07-21 12:32:31.478682433 +0200 @@ -235,12 +235,18 @@ static int processor_count() { return _processor_count; } - static void set_processor_count(int count) { _processor_count = count; } + static void set_processor_count(int count); // Returns the number of CPUs this process is currently allowed to run on. // Note that on some OSes this can change dynamically. static int active_processor_count(); + // At startup the number of active CPUs this process is allowed to run on. + // This value does not change dynamically. May be different to active_processor_count(). + static int initial_active_processor_count() { + return _initial_active_processor_count; + } + // Bind processes to processors. // This is a two step procedure: // first you generate a distribution of processes to processors, @@ -1012,8 +1018,9 @@ protected: - static long _rand_seed; // seed for random number generator - static int _processor_count; // number of processors + static long _rand_seed; // seed for random number generator + static int _processor_count; // number of processors + static int _initial_active_processor_count; // number of active processors during initialization. static char* format_boot_path(const char* format_string, const char* home,