Mercurial > hg > graal-jvmci-8
changeset 23438:acf5ee723439
Merge
author | asaha |
---|---|
date | Wed, 09 Sep 2015 10:58:32 -0700 |
parents | c1374141598c (diff) 822b661ed05a (current diff) |
children | 565881d71b60 |
files | .hgtags |
diffstat | 6 files changed, 25 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgtags Tue Sep 08 15:13:28 2015 -0700 +++ b/.hgtags Wed Sep 09 10:58:32 2015 -0700 @@ -748,3 +748,4 @@ 8a23b6392c590b7bf5f6ad2c4746dc03981a7f60 jdk8u66-b11 ab64d7ea4f48ea4bdbcc43d4a653be157d9c29e3 jdk8u66-b12 4d699853544cf869d4edaf23b7cc9cfbb2900a2b jdk8u66-b13 +b8f426369187c32551f0a3d571d933908988c81c jdk8u72-b00
--- a/src/os/linux/vm/os_linux.cpp Tue Sep 08 15:13:28 2015 -0700 +++ b/src/os/linux/vm/os_linux.cpp Wed Sep 09 10:58:32 2015 -0700 @@ -5922,9 +5922,11 @@ status = pthread_mutex_unlock(_mutex); assert (status == 0, "invariant"); } else { + // must capture correct index before unlocking + int index = _cur_index; status = pthread_mutex_unlock(_mutex); assert (status == 0, "invariant"); - status = pthread_cond_signal (&_cond[_cur_index]); + status = pthread_cond_signal (&_cond[index]); assert (status == 0, "invariant"); } } else {
--- a/src/os/linux/vm/perfMemory_linux.cpp Tue Sep 08 15:13:28 2015 -0700 +++ b/src/os/linux/vm/perfMemory_linux.cpp Wed Sep 09 10:58:32 2015 -0700 @@ -217,9 +217,9 @@ // return false; } - // See if the uid of the directory matches the effective uid of the process. - // - if (statp->st_uid != geteuid()) { + // If user is not root then see if the uid of the directory matches the effective uid of the process. + uid_t euid = geteuid(); + if ((euid != 0) && (statp->st_uid != euid)) { // The directory was not created by this user, declare it insecure. // return false;
--- a/src/os/solaris/vm/perfMemory_solaris.cpp Tue Sep 08 15:13:28 2015 -0700 +++ b/src/os/solaris/vm/perfMemory_solaris.cpp Wed Sep 09 10:58:32 2015 -0700 @@ -219,9 +219,9 @@ // return false; } - // See if the uid of the directory matches the effective uid of the process. - // - if (statp->st_uid != geteuid()) { + // If user is not root then see if the uid of the directory matches the effective uid of the process. + uid_t euid = geteuid(); + if ((euid != 0) && (statp->st_uid != euid)) { // The directory was not created by this user, declare it insecure. // return false;
--- a/src/os_cpu/linux_sparc/vm/vm_version_linux_sparc.cpp Tue Sep 08 15:13:28 2015 -0700 +++ b/src/os_cpu/linux_sparc/vm/vm_version_linux_sparc.cpp Wed Sep 09 10:58:32 2015 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2015, 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 @@ -53,6 +53,10 @@ return cpuinfo_field_contains("cpu", "Niagara"); } +static bool detect_M_family() { + return cpuinfo_field_contains("cpu", "SPARC-M"); +} + static bool detect_blkinit() { return cpuinfo_field_contains("cpucaps", "blkinit"); } @@ -66,6 +70,11 @@ features = niagara1_m | T_family_m; } + if (detect_M_family()) { + NOT_PRODUCT(if (PrintMiscellaneous && Verbose) tty->print_cr("Detected Linux on M family");) + features = sun4v_m | generic_v9_m | M_family_m | T_family_m; + } + if (detect_blkinit()) { features |= blk_init_instructions_m; }
--- a/src/share/vm/runtime/objectMonitor.cpp Tue Sep 08 15:13:28 2015 -0700 +++ b/src/share/vm/runtime/objectMonitor.cpp Wed Sep 09 10:58:32 2015 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2015, 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 @@ -226,7 +226,8 @@ // // * The monitor entry list operations avoid locks, but strictly speaking // they're not lock-free. Enter is lock-free, exit is not. -// See http://j2se.east/~dice/PERSIST/040825-LockFreeQueues.html +// For a description of 'Methods and apparatus providing non-blocking access +// to a resource,' see U.S. Pat. No. 7844973. // // * The cxq can have multiple concurrent "pushers" but only one concurrent // detaching thread. This mechanism is immune from the ABA corruption. @@ -1955,7 +1956,8 @@ // (duration) or we can fix the count at approximately the duration of // a context switch and vary the frequency. Of course we could also // vary both satisfying K == Frequency * Duration, where K is adaptive by monitor. -// See http://j2se.east/~dice/PERSIST/040824-AdaptiveSpinning.html. +// For a description of 'Adaptive spin-then-block mutual exclusion in +// multi-threaded processing,' see U.S. Pat. No. 8046758. // // This implementation varies the duration "D", where D varies with // the success rate of recent spin attempts. (D is capped at approximately