Don't know when Interrupt_lock was last used (comments indicate it was mainly for Solaris) but it is now unused:
./share/vm/runtime/mutexLocker.cpp:Monitor* Interrupt_lock = NULL;
./share/vm/runtime/mutexLocker.cpp: def(Interrupt_lock , Monitor, special, true, Monitor::_safepoint_check_never); // used for interrupt processing
./share/vm/runtime/mutex.cpp: this != Interrupt_lock && this != ProfileVM_lock &&
./share/vm/runtime/fprofiler.cpp: // holding the Interrupt_lock or for other reasons.
./share/vm/runtime/mutexLocker.hpp:extern Monitor* Interrupt_lock; // a lock used for condition variable mediated interrupt processing
Ditto for ProfileVM_lock
./share/vm/runtime/mutexLocker.cpp:Monitor* ProfileVM_lock = NULL;
./share/vm/runtime/mutexLocker.cpp: def(ProfileVM_lock , Monitor, special, false, Monitor::_safepoint_check_never); // used for profiling of the VMThread
./share/vm/runtime/mutex.cpp: this != Interrupt_lock && this != ProfileVM_lock &&
./share/vm/runtime/mutexLocker.hpp:extern Monitor* ProfileVM_lock; // a lock used for profiling the VMThread
./share/vm/runtime/mutexLocker.cpp:Monitor* Interrupt_lock = NULL;
./share/vm/runtime/mutexLocker.cpp: def(Interrupt_lock , Monitor, special, true, Monitor::_safepoint_check_never); // used for interrupt processing
./share/vm/runtime/mutex.cpp: this != Interrupt_lock && this != ProfileVM_lock &&
./share/vm/runtime/fprofiler.cpp: // holding the Interrupt_lock or for other reasons.
./share/vm/runtime/mutexLocker.hpp:extern Monitor* Interrupt_lock; // a lock used for condition variable mediated interrupt processing
Ditto for ProfileVM_lock
./share/vm/runtime/mutexLocker.cpp:Monitor* ProfileVM_lock = NULL;
./share/vm/runtime/mutexLocker.cpp: def(ProfileVM_lock , Monitor, special, false, Monitor::_safepoint_check_never); // used for profiling of the VMThread
./share/vm/runtime/mutex.cpp: this != Interrupt_lock && this != ProfileVM_lock &&
./share/vm/runtime/mutexLocker.hpp:extern Monitor* ProfileVM_lock; // a lock used for profiling the VMThread