> http://cr.openjdk.java.net/~rbackman/8020701.1/

Thumbs up!

src/os/posix/vm/os_posix.cpp
    Can you reformat the new lines that are over 80 cols?
    No need to re-review that change if you do it.

src/os/posix/vm/os_posix.hpp
    No comments.

src/os/windows/vm/os_windows.cpp
    The os_posix.cpp funcation has these:

274 assert(Thread::current()->is_Watcher_thread(), "Only for WatcherThread"); 275 assert(!WatcherThread::watcher_thread()->has_crash_protection(), "crash_protection already set?");

    but the Windows version of WatcherThreadCrashProtection::call()
    does not. Any particular reason for the difference?

    Sorry I missed this in the first round.

src/os/windows/vm/os_windows.hpp
    No comments.

src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp
src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp
src/os_cpu/linux_x86/vm/os_linux_x86.cpp
src/os_cpu/solaris_sparc/vm/os_solaris_sparc.cpp
src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp
    No comments.

src/share/vm/runtime/mutex.cpp
    The new assert line is well past 80 cols.
    Again, no need to re-review.

src/share/vm/runtime/os.cpp
    line 600: // since os::malloc can be called when the libjvm.{dll.so} is
        typo: '{dll.so}'
           -> '{dll,so}'

    line 601: // loaded and we don't have a thread yet.
        Please change "loaded" -> "first loaded"

src/share/vm/runtime/os.hpp
    No comments.

src/share/vm/runtime/thread.cpp
    No comments.

src/share/vm/runtime/thread.hpp
    No comments.

Dan


On 7/18/13 4:37 AM, Rickard Bäckman wrote:
Hi,

here is the updated webrev containing Dans suggested changes.
I also had to change the assert check in os::malloc, we discovered it wasn't 
safe to check Thread::current() since os::malloc() can be called when the 
libjvm is loaded / initialized and we don't have a thread yet.
Changing to logic a bit to require that the WatcherThread exists before looking 
up the thread and doing it by ThreadLocalStorage::get_thread_slow() makes it 
safe.

That is the only code change, other changes are comments or newlines in code 
(thread.hpp).

See the updated webrev:
http://cr.openjdk.java.net/~rbackman/8020701.1/

Thanks
/R


On Jul 17, 2013, at 8:12 PM, Rickard Bäckman wrote:

On Jul 17, 2013, at 7:03 PM, Daniel D. Daugherty wrote:

On 7/17/13 5:58 AM, Rickard Bäckman wrote:
Hi all,

can I please have reviews for the following change?

We are adding a mechanism for avoiding some crashes in the WatcherThread using 
different OS-specific methods.

Webrev: http://cr.openjdk.java.net/~rbackman/8020701/webrev/

Thanks
/R
Thumbs up! The bug mentions a few tests where you think this new
infrastructure will help diagnose the failures modes for those tests.
However, are there any new tests targeted to exercise this code?
Not diagnose the failures, but avoid the crashes they are currently causing.
Since at least one of them haven't been fixed yet (working on it) it will work 
as
a good verifier at the moment. When the bug is gone, it is harder. It is a bit 
hard
to write a test that causes the VM to crash at random but specific places. 
Eventually
we could do something with the whitebox api, but the crashes would only happen 
at
very specific places in that case making them a bit less interesting.


src/share/vm/runtime/os.hpp
   No comments.

src/share/vm/runtime/os.cpp
   No comments.

src/share/vm/runtime/thread.hpp
   line 756: void set_crash_protection(os::WatcherThreadCrashProtection* crash_protection) { 
assert(Thread::current()->is_Watcher_thread(), "Can only be set by 
WatcherThread"); _crash_protection = crash_protection; }
       This line is ridiculously long. Please reformat it to fit in 80 cols.
Ok

src/share/vm/runtime/thread.cpp
   No comments.

src/os/posix/vm/os_posix.hpp
   Nice comment. Hopefully it will keep anyone from doing something
   dangerous in the future.
:)

src/os/posix/vm/os_posix.cpp'
   Please add the following line above 268:

   * See the caveats for this class in os_posix.hpp.
Ok

src/os/windows/vm/os_windows.hpp
   No comments.

src/os/windows/vm/os_windows.cpp
   line 4692  * Protects the callback call so that S jumps back into this method
       Stale comment? What is 'S'?
typo. Should be something like raised EXCEPTIONS causes a jump back into this 
method.

   Please add the following line above 4692:

   * See the caveats for this class in os_windows.hpp.

src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp
   line 405:   // (no destructors run)
       Please change to "(no destructors can be run)"
Ok

src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp
   line 557:   // (no destructors run)
       Please change to "(no destructors can be run)"

src/os_cpu/linux_x86/vm/os_linux_x86.cpp
   line 229:   // (no destructors run)
       Please change to "(no destructors can be run)"

src/os_cpu/solaris_sparc/vm/os_solaris_sparc.cpp
   line 319:   // (no destructors run)
       Please change to "(no destructors can be run)"

src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp
   line 378:   // (no destructors run)
       Please change to "(no destructors can be run)"

src/share/vm/runtime/mutex.cpp
   No comments.

Dan

Thanks for the review!

/R


Reply via email to