comparison src/os/linux/vm/os_linux.cpp @ 7994:9fae07c31641

6518907: cleanup IA64 specific code in Hotspot Summary: removed unused IA64 specific code Reviewed-by: twisti, kvn, dholmes
author morris
date Fri, 25 Jan 2013 16:50:33 -0800
parents 22ba8c8ce6a6
children 5cd2fac2ae70
comparison
equal deleted inserted replaced
7993:76341426b645 7994:9fae07c31641
1153 // 4466587: glibc 2.2.x compiled w/o "--enable-kernel=2.4.0" (RH 7.0, 1153 // 4466587: glibc 2.2.x compiled w/o "--enable-kernel=2.4.0" (RH 7.0,
1154 // SuSE 7.2, Debian) can not handle alternate signal stack correctly 1154 // SuSE 7.2, Debian) can not handle alternate signal stack correctly
1155 // for initial thread if its stack size exceeds 6M. Cap it at 2M, 1155 // for initial thread if its stack size exceeds 6M. Cap it at 2M,
1156 // in case other parts in glibc still assumes 2M max stack size. 1156 // in case other parts in glibc still assumes 2M max stack size.
1157 // FIXME: alt signal stack is gone, maybe we can relax this constraint? 1157 // FIXME: alt signal stack is gone, maybe we can relax this constraint?
1158 #ifndef IA64
1159 if (stack_size > 2 * K * K) stack_size = 2 * K * K;
1160 #else
1161 // Problem still exists RH7.2 (IA64 anyway) but 2MB is a little small 1158 // Problem still exists RH7.2 (IA64 anyway) but 2MB is a little small
1162 if (stack_size > 4 * K * K) stack_size = 4 * K * K; 1159 if (stack_size > 2 * K * K IA64_ONLY(*2))
1163 #endif 1160 stack_size = 2 * K * K IA64_ONLY(*2);
1164
1165 // Try to figure out where the stack base (top) is. This is harder. 1161 // Try to figure out where the stack base (top) is. This is harder.
1166 // 1162 //
1167 // When an application is started, glibc saves the initial stack pointer in 1163 // When an application is started, glibc saves the initial stack pointer in
1168 // a global variable "__libc_stack_end", which is then used by system 1164 // a global variable "__libc_stack_end", which is then used by system
1169 // libraries. __libc_stack_end should be pretty close to stack top. The 1165 // libraries. __libc_stack_end should be pretty close to stack top. The
4365 int os::Linux::safe_cond_timedwait(pthread_cond_t *_cond, pthread_mutex_t *_mutex, const struct timespec *_abstime) 4361 int os::Linux::safe_cond_timedwait(pthread_cond_t *_cond, pthread_mutex_t *_mutex, const struct timespec *_abstime)
4366 { 4362 {
4367 if (is_NPTL()) { 4363 if (is_NPTL()) {
4368 return pthread_cond_timedwait(_cond, _mutex, _abstime); 4364 return pthread_cond_timedwait(_cond, _mutex, _abstime);
4369 } else { 4365 } else {
4370 #ifndef IA64
4371 // 6292965: LinuxThreads pthread_cond_timedwait() resets FPU control 4366 // 6292965: LinuxThreads pthread_cond_timedwait() resets FPU control
4372 // word back to default 64bit precision if condvar is signaled. Java 4367 // word back to default 64bit precision if condvar is signaled. Java
4373 // wants 53bit precision. Save and restore current value. 4368 // wants 53bit precision. Save and restore current value.
4374 int fpu = get_fpu_control_word(); 4369 int fpu = get_fpu_control_word();
4375 #endif // IA64
4376 int status = pthread_cond_timedwait(_cond, _mutex, _abstime); 4370 int status = pthread_cond_timedwait(_cond, _mutex, _abstime);
4377 #ifndef IA64
4378 set_fpu_control_word(fpu); 4371 set_fpu_control_word(fpu);
4379 #endif // IA64
4380 return status; 4372 return status;
4381 } 4373 }
4382 } 4374 }
4383 4375
4384 //////////////////////////////////////////////////////////////////////////////// 4376 ////////////////////////////////////////////////////////////////////////////////