« Return to Thread: SF.net SVN: jikesrvm:[15687] rvmroot/trunk

SF.net SVN: jikesrvm:[15687] rvmroot/trunk

by dgrove-oss :: Rate this Message:

Reply to Author | View in Thread

Revision: 15687
          http://jikesrvm.svn.sourceforge.net/jikesrvm/?rev=15687&view=rev
Author:   dgrove-oss
Date:     2009-05-08 12:32:26 +0000 (Fri, 08 May 2009)

Log Message:
-----------
RVM-712 : Fix missing case in RVMMethod.isUninterruptible that was resulting in incorrect computation of uninterruptibility for methods of Uninterruptible classes that were annotated as UnpreemptibleNoWarn.  Also fix half a dozen violations that had been missed because the checking was incomplete.

Modified Paths:
--------------
    rvmroot/trunk/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/ReferenceProcessor.java
    rvmroot/trunk/rvm/src/org/jikesrvm/VM.java
    rvmroot/trunk/rvm/src/org/jikesrvm/classloader/RVMMethod.java
    rvmroot/trunk/rvm/src/org/jikesrvm/scheduler/Lock.java
    rvmroot/trunk/rvm/src-generated/options/Options.template

Modified: rvmroot/trunk/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/ReferenceProcessor.java
===================================================================
--- rvmroot/trunk/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/ReferenceProcessor.java 2009-05-08 06:47:00 UTC (rev 15686)
+++ rvmroot/trunk/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/ReferenceProcessor.java 2009-05-08 12:32:26 UTC (rev 15687)
@@ -384,7 +384,7 @@
    * be the address of a heap object, depending on the VM.
    * @param trace the thread local trace element.
    */
-  @UnpreemptibleNoWarn("Call out to ReferenceQueue API")
+  @UninterruptibleNoWarn("Call out to ReferenceQueue API")
   public ObjectReference processReference(TraceLocal trace, ObjectReference reference) {
     if (VM.VerifyAssertions) VM._assert(!reference.isNull());
 

Modified: rvmroot/trunk/rvm/src/org/jikesrvm/VM.java
===================================================================
--- rvmroot/trunk/rvm/src/org/jikesrvm/VM.java 2009-05-08 06:47:00 UTC (rev 15686)
+++ rvmroot/trunk/rvm/src/org/jikesrvm/VM.java 2009-05-08 12:32:26 UTC (rev 15687)
@@ -2317,7 +2317,7 @@
    * @param value  value to pass to host o/s
    */
   @NoInline
-  @UnpreemptibleNoWarn("We need to do preemptible operations but are accessed from unpreemptible code")
+  @UninterruptibleNoWarn("We're never returning to the caller, so even though this code is preemptible it is safe to call from any context")
   public static void sysExit(int value) {
     handlePossibleRecursiveCallToSysExit();
 

Modified: rvmroot/trunk/rvm/src/org/jikesrvm/classloader/RVMMethod.java
===================================================================
--- rvmroot/trunk/rvm/src/org/jikesrvm/classloader/RVMMethod.java 2009-05-08 06:47:00 UTC (rev 15686)
+++ rvmroot/trunk/rvm/src/org/jikesrvm/classloader/RVMMethod.java 2009-05-08 12:32:26 UTC (rev 15687)
@@ -619,6 +619,7 @@
     if (hasInterruptibleAnnotation()) return false;
     if (hasPreemptibleAnnotation()) return false;
     if (hasUnpreemptibleAnnotation()) return false;
+    if (hasUnpreemptibleNoWarnAnnotation()) return false;
     if (hasUninterruptibleAnnotation()) return true;
     if (hasUninterruptibleNoWarnAnnotation()) return true;
     return getDeclaringClass().hasUninterruptibleAnnotation();

Modified: rvmroot/trunk/rvm/src/org/jikesrvm/scheduler/Lock.java
===================================================================
--- rvmroot/trunk/rvm/src/org/jikesrvm/scheduler/Lock.java 2009-05-08 06:47:00 UTC (rev 15686)
+++ rvmroot/trunk/rvm/src/org/jikesrvm/scheduler/Lock.java 2009-05-08 12:32:26 UTC (rev 15687)
@@ -266,6 +266,7 @@
    *
    * @param o the object to be unlocked
    */
+  @Unpreemptible
   public void unlockHeavy(Object o) {
     boolean deflated = false;
     mutex.lock(); // Note: thread switching is not allowed while mutex is held.

Modified: rvmroot/trunk/rvm/src-generated/options/Options.template
===================================================================
--- rvmroot/trunk/rvm/src-generated/options/Options.template 2009-05-08 06:47:00 UTC (rev 15686)
+++ rvmroot/trunk/rvm/src-generated/options/Options.template 2009-05-08 12:32:26 UTC (rev 15687)
@@ -185,6 +185,7 @@
   }
 
   // Print a short description of every option
+  @Interruptible
   public static void printHelp() {
 
     VM.sysWrite("Commands\n");
@@ -243,6 +244,7 @@
   }
 
   // print the options values
+  @Interruptible
   public static void printOptions() {
     VM.sysWrite("Current value of VM options:\n");
     //Begin generated option value printing


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.

------------------------------------------------------------------------------
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image
processing features enabled. http://p.sf.net/sfu/kodak-com
_______________________________________________
Jikesrvm-commits mailing list
Jikesrvm-commits@...
https://lists.sourceforge.net/lists/listinfo/jikesrvm-commits

 « Return to Thread: SF.net SVN: jikesrvm:[15687] rvmroot/trunk