8181785: Remove the experimental ClearFPUAtPark JVM Flag

Removing the experimental and unstable ClearFPUAtPark optimization for SPARC

Reviewed-by: kbarrett, tschatzl, rehn
This commit is contained in:
Erik Österlund 2017-06-14 08:47:27 +02:00
parent 7bea157c87
commit 2a0bd0cd04
5 changed files with 2 additions and 47 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 2017, Oracle and/or its affiliates. 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
@ -37,14 +37,6 @@ void handle_unexpected_exception(Thread* thread, int sig, siginfo_t* info, addre
void continue_with_dump(void);
#endif
#if defined(__sparc) && defined(COMPILER2)
// For Sun Studio compiler implementation is in file
// src/os_cpu/solaris_sparc/vm/solaris_sparc.il
// For gcc implementation is in file
// src/os_cpu/solaris_sparc/vm/os_solaris_sparc.cpp
extern "C" void _mark_fpu_nosave() ;
#endif
#define PROCFILE_LENGTH 128
#endif // OS_SOLARIS_VM_OS_SHARE_SOLARIS_HPP

View File

@ -5103,11 +5103,6 @@ void os::PlatformEvent::park() { // AKA: down()
if (v == 0) {
// Do this the hard way by blocking ...
// See http://monaco.sfbay/detail.jsf?cr=5094058.
// TODO-FIXME: for Solaris SPARC set fprs.FEF=0 prior to parking.
// Only for SPARC >= V8PlusA
#if defined(__sparc) && defined(COMPILER2)
if (ClearFPUAtPark) { _mark_fpu_nosave(); }
#endif
int status = os::Solaris::mutex_lock(_mutex);
assert_status(status == 0, status, "mutex_lock");
guarantee(_nParked == 0, "invariant");
@ -5150,11 +5145,6 @@ int os::PlatformEvent::park(jlong millis) {
compute_abstime(&abst, millis);
// See http://monaco.sfbay/detail.jsf?cr=5094058.
// For Solaris SPARC set fprs.FEF=0 prior to parking.
// Only for SPARC >= V8PlusA
#if defined(__sparc) && defined(COMPILER2)
if (ClearFPUAtPark) { _mark_fpu_nosave(); }
#endif
int status = os::Solaris::mutex_lock(_mutex);
assert_status(status == 0, status, "mutex_lock");
guarantee(_nParked == 0, "invariant");
@ -5347,12 +5337,6 @@ void Parker::park(bool isAbsolute, jlong time) {
// Do this the hard way by blocking ...
// See http://monaco.sfbay/detail.jsf?cr=5094058.
// TODO-FIXME: for Solaris SPARC set fprs.FEF=0 prior to parking.
// Only for SPARC >= V8PlusA
#if defined(__sparc) && defined(COMPILER2)
if (ClearFPUAtPark) { _mark_fpu_nosave(); }
#endif
if (time == 0) {
status = os::Solaris::cond_wait(_cond, _mutex);
} else {

View File

@ -725,14 +725,6 @@ void os::Solaris::init_thread_fpu_state(void) {
// Nothing needed on Sparc.
}
#if defined(__sparc) && defined(COMPILER2) && defined(_GNU_SOURCE)
// See file build/solaris/makefiles/$compiler.make
// For compiler1 the architecture is v8 and frps isn't present in v8
extern "C" void _mark_fpu_nosave() {
__asm__ __volatile__ ("wr %%g0, 0, %%fprs \n\t" : : :);
}
#endif //defined(__sparc) && defined(COMPILER2)
#ifndef PRODUCT
void os::verify_stack_alignment() {
}

View File

@ -1,5 +1,5 @@
//
// Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
// Copyright (c) 2002, 2017, Oracle and/or its affiliates. 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
@ -32,17 +32,6 @@
.end
// Clear SPARC fprs.FEF DU and DL bits --
// allows the kernel to avoid saving FPU state at context-switch time.
// Use for state-transition points (into _thread_blocked) or when
// parking.
.inline _mark_fpu_nosave, 0
.volatile
wr %g0, 0, %fprs
.nonvolatile
.end
// Support for jint Atomic::xchg(jint exchange_value, volatile jint* dest).
//
// Arguments:

View File

@ -1191,8 +1191,6 @@ public:
\
diagnostic(bool, InlineNotify, true, "intrinsify subset of notify") \
\
experimental(intx, ClearFPUAtPark, 0, "(Unsafe, Unstable)") \
\
experimental(intx, hashCode, 5, \
"(Unstable) select hashCode generation algorithm") \
\