212 // Returns buffer, or NULL if it failed. |
212 // Returns buffer, or NULL if it failed. |
213 static char* iso8601_time(char* buffer, size_t buffer_length); |
213 static char* iso8601_time(char* buffer, size_t buffer_length); |
214 |
214 |
215 // Interface for detecting multiprocessor system |
215 // Interface for detecting multiprocessor system |
216 static inline bool is_MP() { |
216 static inline bool is_MP() { |
217 #if !INCLUDE_NMT |
217 // During bootstrap if _processor_count is not yet initialized |
218 assert(_processor_count > 0, "invalid processor count"); |
218 // we claim to be MP as that is safest. If any platform has a |
219 return _processor_count > 1 || AssumeMP; |
219 // stub generator that might be triggered in this phase and for |
220 #else |
220 // which being declared MP when in fact not, is a problem - then |
221 // NMT needs atomic operations before this initialization. |
221 // the bootstrap routine for the stub generator needs to check |
222 return true; |
222 // the processor count directly and leave the bootstrap routine |
223 #endif |
223 // in place until called after initialization has ocurred. |
|
224 return (_processor_count != 1) || AssumeMP; |
224 } |
225 } |
225 static julong available_memory(); |
226 static julong available_memory(); |
226 static julong physical_memory(); |
227 static julong physical_memory(); |
227 static bool has_allocatable_memory_limit(julong* limit); |
228 static bool has_allocatable_memory_limit(julong* limit); |
228 static bool is_server_class_machine(); |
229 static bool is_server_class_machine(); |