This commit is contained in:
Jesper Wilhelmsson 2017-05-23 15:30:45 +02:00
commit 04e3b6c0b1
24 changed files with 53 additions and 61 deletions

View File

@ -1,5 +1,5 @@
# #
# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. # Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
@ -35,12 +35,14 @@ include $(SPEC)
include MakeBase.gmk include MakeBase.gmk
include TestFilesCompilation.gmk include TestFilesCompilation.gmk
$(eval $(call IncludeCustomExtension, jdk, test/JtregNative.gmk))
################################################################################ ################################################################################
# Targets for building the native tests themselves. # Targets for building the native tests themselves.
################################################################################ ################################################################################
# Add more directories here when needed. # Add more directories here when needed.
BUILD_JDK_JTREG_NATIVE_SRC := \ BUILD_JDK_JTREG_NATIVE_SRC += \
$(JDK_TOPDIR)/test/native_sanity \ $(JDK_TOPDIR)/test/native_sanity \
# #

View File

@ -64,7 +64,7 @@
#include <sys/uio.h> #include <sys/uio.h>
#include <unistd.h> #include <unistd.h>
#include <errno.h> #include <errno.h>
#include <sys/poll.h> #include <poll.h>
#include "jvm.h" #include "jvm.h"
#include "net_util.h" #include "net_util.h"

View File

@ -34,7 +34,7 @@
#include <unistd.h> #include <unistd.h>
#include <sys/types.h> #include <sys/types.h>
#include <sys/socket.h> #include <sys/socket.h>
#include <sys/poll.h> #include <poll.h>
#include <sys/pollset.h> #include <sys/pollset.h>
#include <fcntl.h> #include <fcntl.h>
#include <stddef.h> #include <stddef.h>

View File

@ -36,7 +36,7 @@
#include <sys/uio.h> #include <sys/uio.h>
#include <unistd.h> #include <unistd.h>
#include <errno.h> #include <errno.h>
#include <sys/poll.h> #include <poll.h>
#include "jvm.h" #include "jvm.h"
#include "net_util.h" #include "net_util.h"

View File

@ -32,7 +32,7 @@
#include <dlfcn.h> #include <dlfcn.h>
#include <sys/types.h> #include <sys/types.h>
#include <sys/socket.h> #include <sys/socket.h>
#include <sys/poll.h> #include <poll.h>
#include <sys/inotify.h> #include <sys/inotify.h>
#include "sun_nio_fs_LinuxWatchService.h" #include "sun_nio_fs_LinuxWatchService.h"

View File

@ -60,7 +60,7 @@
#include <sys/stat.h> #include <sys/stat.h>
#include <fcntl.h> #include <fcntl.h>
#include <errno.h> #include <errno.h>
#include <sys/signal.h> #include <signal.h>
/* O Flags */ /* O Flags */

View File

@ -732,6 +732,7 @@ ContinueInNewThread0(int (JNICALL *continuation)(void *), jlong stack_size, void
if (stack_size > 0) { if (stack_size > 0) {
pthread_attr_setstacksize(&attr, stack_size); pthread_attr_setstacksize(&attr, stack_size);
} }
pthread_attr_setguardsize(&attr, 0); // no pthread guard page on java threads
if (pthread_create(&tid, &attr, (void *(*)(void*))continuation, (void*)args) == 0) { if (pthread_create(&tid, &attr, (void *(*)(void*))continuation, (void*)args) == 0) {
void * tmp; void * tmp;

View File

@ -38,7 +38,7 @@
#include <sys/uio.h> #include <sys/uio.h>
#include <unistd.h> #include <unistd.h>
#include <errno.h> #include <errno.h>
#include <sys/poll.h> #include <poll.h>
#include "jvm.h" #include "jvm.h"
#include "net_util.h" #include "net_util.h"

View File

@ -127,7 +127,7 @@ public final class Module implements AnnotatedElement {
// define module to VM // define module to VM
boolean isOpen = descriptor.isOpen(); boolean isOpen = descriptor.isOpen() || descriptor.isAutomatic();
Version version = descriptor.version().orElse(null); Version version = descriptor.version().orElse(null);
String vs = Objects.toString(version, null); String vs = Objects.toString(version, null);
String loc = Objects.toString(uri, null); String loc = Objects.toString(uri, null);
@ -1050,9 +1050,6 @@ public final class Module implements AnnotatedElement {
if (syncVM) { if (syncVM) {
// throws IllegalStateException if defined to another module // throws IllegalStateException if defined to another module
addPackage0(this, pn); addPackage0(this, pn);
if (descriptor.isOpen() || descriptor.isAutomatic()) {
addExportsToAll0(this, pn);
}
} }
extraPackages.putIfAbsent(pn, Boolean.TRUE); extraPackages.putIfAbsent(pn, Boolean.TRUE);
} }
@ -1153,8 +1150,11 @@ public final class Module implements AnnotatedElement {
m.implAddReads(ALL_UNNAMED_MODULE, true); m.implAddReads(ALL_UNNAMED_MODULE, true);
} }
// exports and opens // export and open packages, skipped for open and automatic
initExportsAndOpens(m, nameToSource, nameToModule, layer.parents()); // modules since they are treated as if all packages are open
if (!descriptor.isOpen() && !descriptor.isAutomatic()) {
initExportsAndOpens(m, nameToSource, nameToModule, layer.parents());
}
} }
// register the modules in the boot layer // register the modules in the boot layer
@ -1215,21 +1215,11 @@ public final class Module implements AnnotatedElement {
Map<String, Module> nameToSource, Map<String, Module> nameToSource,
Map<String, Module> nameToModule, Map<String, Module> nameToModule,
List<ModuleLayer> parents) { List<ModuleLayer> parents) {
// The VM doesn't special case open or automatic modules so need to
// export all packages
ModuleDescriptor descriptor = m.getDescriptor();
if (descriptor.isOpen() || descriptor.isAutomatic()) {
assert descriptor.opens().isEmpty();
for (String source : descriptor.packages()) {
addExportsToAll0(m, source);
}
return;
}
Map<String, Set<Module>> openPackages = new HashMap<>(); Map<String, Set<Module>> openPackages = new HashMap<>();
Map<String, Set<Module>> exportedPackages = new HashMap<>(); Map<String, Set<Module>> exportedPackages = new HashMap<>();
// process the open packages first // process the open packages first
ModuleDescriptor descriptor = m.getDescriptor();
for (Opens opens : descriptor.opens()) { for (Opens opens : descriptor.opens()) {
String source = opens.source(); String source = opens.source();

View File

@ -206,7 +206,7 @@ static jlong initialHeapSize = 0; /* inital heap size */
* A minimum -Xss stack size suitable for all platforms. * A minimum -Xss stack size suitable for all platforms.
*/ */
#ifndef STACK_SIZE_MINIMUM #ifndef STACK_SIZE_MINIMUM
#define STACK_SIZE_MINIMUM (32 * KB) #define STACK_SIZE_MINIMUM (64 * KB)
#endif #endif
/* /*

View File

@ -28,7 +28,7 @@
#include "jvm.h" #include "jvm.h"
#include "jlong.h" #include "jlong.h"
#include "sun_nio_ch_DevPollArrayWrapper.h" #include "sun_nio_ch_DevPollArrayWrapper.h"
#include <sys/poll.h> #include <poll.h>
#include <unistd.h> #include <unistd.h>
#include <sys/time.h> #include <sys/time.h>

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -23,5 +23,3 @@
* questions. * questions.
*/ */
// AOT uses jdk.internal.misc.Unsafe
exports jdk.internal.misc to jdk.aot;

View File

@ -65,7 +65,7 @@
#include <sys/stat.h> #include <sys/stat.h>
#include <fcntl.h> #include <fcntl.h>
#include <errno.h> #include <errno.h>
#include <sys/signal.h> #include <signal.h>
/* O Flags */ /* O Flags */

View File

@ -742,6 +742,7 @@ ContinueInNewThread0(int (JNICALL *continuation)(void *), jlong stack_size, void
if (stack_size > 0) { if (stack_size > 0) {
pthread_attr_setstacksize(&attr, stack_size); pthread_attr_setstacksize(&attr, stack_size);
} }
pthread_attr_setguardsize(&attr, 0); // no pthread guard page on java threads
if (pthread_create(&tid, &attr, (void *(*)(void*))continuation, (void*)args) == 0) { if (pthread_create(&tid, &attr, (void *(*)(void*))continuation, (void*)args) == 0) {
void * tmp; void * tmp;

View File

@ -27,7 +27,7 @@
#define NET_UTILS_MD_H #define NET_UTILS_MD_H
#include <netdb.h> #include <netdb.h>
#include <sys/poll.h> #include <poll.h>
#include <sys/socket.h> #include <sys/socket.h>
/************************************************************************ /************************************************************************

View File

@ -31,24 +31,21 @@
#include "jlong.h" #include "jlong.h"
#include "sun_nio_ch_NativeThread.h" #include "sun_nio_ch_NativeThread.h"
#include "nio_util.h" #include "nio_util.h"
#include <signal.h>
#ifdef __linux__ #ifdef __linux__
#include <pthread.h> #include <pthread.h>
#include <sys/signal.h>
/* Also defined in net/linux_close.c */ /* Also defined in net/linux_close.c */
#define INTERRUPT_SIGNAL (__SIGRTMAX - 2) #define INTERRUPT_SIGNAL (__SIGRTMAX - 2)
#elif _AIX #elif _AIX
#include <pthread.h> #include <pthread.h>
#include <sys/signal.h>
/* Also defined in net/aix_close.c */ /* Also defined in net/aix_close.c */
#define INTERRUPT_SIGNAL (SIGRTMAX - 1) #define INTERRUPT_SIGNAL (SIGRTMAX - 1)
#elif __solaris__ #elif __solaris__
#include <thread.h> #include <thread.h>
#include <signal.h>
#define INTERRUPT_SIGNAL (SIGRTMAX - 2) #define INTERRUPT_SIGNAL (SIGRTMAX - 2)
#elif _ALLBSD_SOURCE #elif _ALLBSD_SOURCE
#include <pthread.h> #include <pthread.h>
#include <signal.h>
/* Also defined in net/bsd_close.c */ /* Also defined in net/bsd_close.c */
#define INTERRUPT_SIGNAL SIGIO #define INTERRUPT_SIGNAL SIGIO
#else #else

View File

@ -23,7 +23,7 @@
* questions. * questions.
*/ */
#include <sys/poll.h> #include <poll.h>
#include <sys/types.h> #include <sys/types.h>
#include <sys/socket.h> #include <sys/socket.h>
#include <string.h> #include <string.h>

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -26,3 +26,4 @@
exports sun.security.rsa to jdk.crypto.mscapi; exports sun.security.rsa to jdk.crypto.mscapi;
exports sun.security.internal.spec to jdk.crypto.mscapi; exports sun.security.internal.spec to jdk.crypto.mscapi;
exports sun.security.util to jdk.crypto.mscapi; exports sun.security.util to jdk.crypto.mscapi;

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -125,15 +125,13 @@ debugLoop_run(void)
jboolean replyToSender = JNI_TRUE; jboolean replyToSender = JNI_TRUE;
/* /*
* For VirtualMachine commands we hold the vmDeathLock * For all commands we hold the vmDeathLock
* while executing and replying to the command. This ensures * while executing and replying to the command. This ensures
* that a VM command after VM_DEATH will be allowed to complete * that a command after VM_DEATH will be allowed to complete
* before the thread posting the VM_DEATH continues VM * before the thread posting the VM_DEATH continues VM
* termination. * termination.
*/ */
if (cmd->cmdSet == JDWP_COMMAND_SET(VirtualMachine)){ debugMonitorEnter(vmDeathLock);
debugMonitorEnter(vmDeathLock);
}
/* Initialize the input and output streams */ /* Initialize the input and output streams */
inStream_init(&in, p); inStream_init(&in, p);
@ -172,9 +170,7 @@ debugLoop_run(void)
/* /*
* Release the vmDeathLock as the reply has been posted. * Release the vmDeathLock as the reply has been posted.
*/ */
if (cmd->cmdSet == JDWP_COMMAND_SET(VirtualMachine)){ debugMonitorExit(vmDeathLock);
debugMonitorExit(vmDeathLock);
}
inStream_destroy(&in); inStream_destroy(&in);
outStream_destroy(&out); outStream_destroy(&out);

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -240,10 +240,10 @@ dequeueCommand(void)
size = commandSize(command); size = commandSize(command);
/* /*
* Immediately close out any commands enqueued from a * Immediately close out any commands enqueued from
* previously attached debugger. * a dead VM or a previously attached debugger.
*/ */
if (command->sessionID != currentSessionID) { if (gdata->vmDead || command->sessionID != currentSessionID) {
log_debugee_location("dequeueCommand(): command session removal", NULL, NULL, 0); log_debugee_location("dequeueCommand(): command session removal", NULL, NULL, 0);
completeCommand(command); completeCommand(command);
command = NULL; command = NULL;

View File

@ -37,7 +37,7 @@
#include <thread.h> #include <thread.h>
#else #else
#include <pthread.h> #include <pthread.h>
#include <sys/poll.h> #include <poll.h>
#endif #endif
#include "socket_md.h" #include "socket_md.h"

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -49,7 +49,7 @@ public class TestJcmdDefaults {
private static final String TEST_SRC = System.getProperty("test.src").trim(); private static final String TEST_SRC = System.getProperty("test.src").trim();
private static final String[] VM_ARGS = new String[] { "-XX:+UsePerfData" }; private static final String[] VM_ARGS = new String[] { "-XX:+UsePerfData" };
private static final String JCMD_LIST_REGEX = "^\\d+\\s*.*"; private static final String JCMD_LIST_REGEX = "(?s)^\\d+\\s*.*";
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {
testJcmdUsage("-h"); testJcmdUsage("-h");

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -73,9 +73,9 @@ public class Settings extends TestHelper {
} }
static void runTestOptionDefault() throws IOException { static void runTestOptionDefault() throws IOException {
String stackSize = "256"; // in kb int stackSize = 256; // in kb
if (getArch().equals("ppc64") || getArch().equals("ppc64le")) { if (getArch().equals("ppc64") || getArch().equals("ppc64le")) {
stackSize = "800"; stackSize = 800;
} }
TestResult tr; TestResult tr;
tr = doExec(javaCmd, "-Xms64m", "-Xmx512m", tr = doExec(javaCmd, "-Xms64m", "-Xmx512m",
@ -86,7 +86,7 @@ public class Settings extends TestHelper {
throw new RuntimeException("test fails"); throw new RuntimeException("test fails");
} }
tr = doExec(javaCmd, "-Xms65536k", "-Xmx712m", tr = doExec(javaCmd, "-Xms65536k", "-Xmx712m",
"-Xss" + stackSize + "000", "-XshowSettings", "-jar", testJar.getAbsolutePath()); "-Xss" + (stackSize * 1024), "-XshowSettings", "-jar", testJar.getAbsolutePath());
containsAllOptions(tr); containsAllOptions(tr);
if (!tr.isOK()) { if (!tr.isOK()) {
System.out.println(tr); System.out.println(tr);

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -155,15 +155,21 @@ public class TooSmallStackSize extends TestHelper {
checkStack("16k"); checkStack("16k");
/* /*
* Try with a 32k stack size, which is the size that the launcher will * Try with a 64k stack size, which is the size that the launcher will
* set to if you try setting to anything smaller. This should produce the same * set to if you try setting to anything smaller. This should produce the same
* result as setting to 16k if the fix for 6762191 is in place. * result as setting to 16k if the fix for 6762191 is in place.
*/ */
String min_stack_allowed = checkStack("32k"); String min_stack_allowed = checkStack("64k");
/* /*
* Try again with a the minimum stack size that was given in the error message * Try again with a the minimum stack size that was given in the error message
*/ */
checkMinStackAllowed(min_stack_allowed); checkMinStackAllowed(min_stack_allowed);
/*
* Try again with a size that is not OS page aligned. This is to help test that
* asserts added for 8176768 are not triggered.
*/
checkMinStackAllowed("513k");
} }
} }