<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Thanks Mandy. I also appreciate you noticing (off-list) that I can
remove the extra space in "Class <?>" in several places. I
have updated webrev.4 in place.<br>
<br>
dl<br>
<br>
<div class="moz-cite-prefix">On 11/2/18 1:55 PM, Mandy Chung wrote:<br>
</div>
<blockquote type="cite"
cite="mid:a9ca9ac2-01aa-62cb-be7e-cec7d0bc521e@oracle.com">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Hi Dean,<br>
<br>
I reviewed webrev.4 version. It looks good. Happy to see moving
the doPrivileged support to Java and the performance improvement.<br>
<br>
<div class="moz-cite-prefix">On 10/31/18 3:23 PM, <a
class="moz-txt-link-abbreviated"
href="mailto:dean.long@oracle.com" moz-do-not-send="true">dean.long@oracle.com</a>
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:0e3759bf-9c6f-dd75-bb27-5579e23c5348@oracle.com"><a
class="moz-txt-link-freetext"
href="https://bugs.openjdk.java.net/browse/JDK-8212605"
moz-do-not-send="true">https://bugs.openjdk.java.net/browse/JDK-8212605</a>
<br>
<a class="moz-txt-link-freetext"
href="http://cr.openjdk.java.net/%7Edlong/8212605/webrev.1"
moz-do-not-send="true">http://cr.openjdk.java.net/~dlong/8212605/webrev.1</a>
<br>
<br>
This change implements AccessController.doPrivileged in Java.
This gives a performance improvement while also being useful to
Project Loom by removing the Java --> native --> Java
transition. One reason doPrivileged has historically been in
native is because of the need to guarantee the cleanup of the
privileged context when doPrivileged returns. To do that in
Java, the information that AccessController.getContext needs is
pushed onto the Java stack as arguments to a method that
getContext will recognize during its stack walk. This allows us
to remove the native privileged stack while guaranteeing that
the privileged context goes away when the method returns. <br>
</blockquote>
<blockquote type="cite"
cite="mid:0e3759bf-9c6f-dd75-bb27-5579e23c5348@oracle.com">Tested
with tier1-tier3 hotspot and jdk tests and JCK api/java_security
tests. For the first few rounds of testing, I kept the old
native privileged stack and compared the results of the old and
new implementations for each getContext call, which did catch
some early bugs. The changes were also examined by internal
security experts and run through additional internal security
tests. <br>
<br>
The improvement on this [1] doPrivileged microbenchmark is
approximate 50x. <br>
<br>
There is no attempt to optimize getContext() or security
permission checks in this change, however, this is intended to
be a first step towards other possible improvements, for example
those proposed here [2]. <br>
<br>
</blockquote>
<br>
FYI. Sean and I also did some experiment to replace
JVM_GetStackAccessControlContext with StackWalker some time ago.
Another potential area to move the code from VM to Java for the
future as David explored and probably involves performance work
in the stack walker.<br>
<br>
Mandy<br>
</blockquote>
<br>
</body>
</html>