src/share/vm/runtime/thread.inline.hpp

Thu, 24 May 2018 20:03:11 +0800

author
aoqi
date
Thu, 24 May 2018 20:03:11 +0800
changeset 8868
91ddc23482a4
parent 7535
7ae4e26cb1e0
permissions
-rw-r--r--

Increase MaxHeapSize for better performance on MIPS

aoqi@0 1 /*
aoqi@0 2 * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
aoqi@0 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
aoqi@0 4 *
aoqi@0 5 * This code is free software; you can redistribute it and/or modify it
aoqi@0 6 * under the terms of the GNU General Public License version 2 only, as
aoqi@0 7 * published by the Free Software Foundation.
aoqi@0 8 *
aoqi@0 9 * This code is distributed in the hope that it will be useful, but WITHOUT
aoqi@0 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
aoqi@0 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
aoqi@0 12 * version 2 for more details (a copy is included in the LICENSE file that
aoqi@0 13 * accompanied this code).
aoqi@0 14 *
aoqi@0 15 * You should have received a copy of the GNU General Public License version
aoqi@0 16 * 2 along with this work; if not, write to the Free Software Foundation,
aoqi@0 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
aoqi@0 18 *
aoqi@0 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
aoqi@0 20 * or visit www.oracle.com if you need additional information or have any
aoqi@0 21 * questions.
aoqi@0 22 *
aoqi@0 23 */
aoqi@0 24
aoqi@0 25 #ifndef SHARE_VM_RUNTIME_THREAD_INLINE_HPP
aoqi@0 26 #define SHARE_VM_RUNTIME_THREAD_INLINE_HPP
aoqi@0 27
aoqi@0 28 #define SHARE_VM_RUNTIME_THREAD_INLINE_HPP_SCOPE
aoqi@0 29
aoqi@0 30 #include "runtime/thread.hpp"
aoqi@0 31 #ifdef TARGET_OS_FAMILY_linux
aoqi@0 32 # include "thread_linux.inline.hpp"
aoqi@0 33 #endif
aoqi@0 34 #ifdef TARGET_OS_FAMILY_solaris
aoqi@0 35 # include "thread_solaris.inline.hpp"
aoqi@0 36 #endif
aoqi@0 37 #ifdef TARGET_OS_FAMILY_windows
aoqi@0 38 # include "thread_windows.inline.hpp"
aoqi@0 39 #endif
aoqi@0 40 #ifdef TARGET_OS_FAMILY_aix
aoqi@0 41 # include "thread_aix.inline.hpp"
aoqi@0 42 #endif
aoqi@0 43 #ifdef TARGET_OS_FAMILY_bsd
aoqi@0 44 # include "thread_bsd.inline.hpp"
aoqi@0 45 #endif
aoqi@0 46
aoqi@0 47 #undef SHARE_VM_RUNTIME_THREAD_INLINE_HPP_SCOPE
aoqi@0 48
goetz@6911 49 inline jlong Thread::cooked_allocated_bytes() {
goetz@6911 50 jlong allocated_bytes = OrderAccess::load_acquire(&_allocated_bytes);
goetz@6911 51 if (UseTLAB) {
goetz@6911 52 size_t used_bytes = tlab().used_bytes();
goetz@6911 53 if ((ssize_t)used_bytes > 0) {
goetz@6911 54 // More-or-less valid tlab. The load_acquire above should ensure
goetz@6911 55 // that the result of the add is <= the instantaneous value.
goetz@6911 56 return allocated_bytes + used_bytes;
goetz@6911 57 }
goetz@6911 58 }
goetz@6911 59 return allocated_bytes;
goetz@6911 60 }
goetz@6911 61
goetz@6911 62 #ifdef PPC64
goetz@6911 63 inline JavaThreadState JavaThread::thread_state() const {
goetz@6911 64 return (JavaThreadState) OrderAccess::load_acquire((volatile jint*)&_thread_state);
goetz@6911 65 }
goetz@6911 66
goetz@6911 67 inline void JavaThread::set_thread_state(JavaThreadState s) {
goetz@6911 68 OrderAccess::release_store((volatile jint*)&_thread_state, (jint)s);
goetz@6911 69 }
goetz@6911 70 #endif
goetz@6911 71
goetz@6911 72 inline void JavaThread::set_done_attaching_via_jni() {
goetz@6911 73 _jni_attach_state = _attached_via_jni;
goetz@6911 74 OrderAccess::fence();
goetz@6911 75 }
goetz@6911 76
aoqi@0 77 #endif // SHARE_VM_RUNTIME_THREAD_INLINE_HPP

mercurial