Re: [rvm-research] [rvm-core] Regarding Exception thrown in RefCount Implementation.

Rifat Shahriyar <[email protected]>
Newsgroups gmane.comp.java.jikes.rvm.devel
Message-ID <[email protected]>
Robin,
Thanks for finding out.

Hari,
Please see the attached patch which can be applied over current head. It 
will solve your problem for reference counting. But to correctly 
read/write the extra word you might still need to follow Steve's suggestion.


Regards
-
Rifat

On 25/12/2013 2:42 pm, Hari Krishnan wrote:
> Thank you Robin.
>
> Cheers
> Hari
>
>
> On Tue, Dec 24, 2013 at 9:21 PM, Robin Garner <[email protected] 
> <mailto:[email protected]>> wrote:
>
>     I've just done a bisection search.  Looks like this was broken in
>     r10480, which introduced Rifat's lazy treatment of new objects in
>     reference counting.
>
>     Rifat, could you take a look ?
>
>     Meanwhile Hari, I'd look through this revision and see if you can
>     see any implicit assumptions about the object header.
>
>     Robin
>
>
>     On Tue, Dec 24, 2013 at 1:04 PM, Hari Krishnan
>     <[email protected] <mailto:[email protected]>> wrote:
>
>         Hi Erik and Robin,
>
>         Thank you for the reply.  I am using RDB to inspect Boot
>         Image.  I am going to download the earlier stable release now
>          and will let you know the status soon.
>
>         Cheers
>         Hari
>
>
>         On Mon, Dec 23, 2013 at 8:21 AM, Erik Brangs
>         <[email protected] <mailto:[email protected]>> wrote:
>
>             Hi,
>
>             On 19.12.2013 01:45, Hari Krishnan wrote:
>             > I cannot figure out why this error pops up.
>
>             Based on your previous mails, I assume that you've already
>             read the documentation. I'm not proficient in MMTk so I
>             can't give you any specific advice. However, my experience
>             is that it is a good idea to read a book about debugging
>             if you never had any formal education in debugging.
>
>             You can also take a look at rdb (
>             http://sape.inf.usi.ch/rdb ), a Jikes RVM specific
>             debugger that's being developed by Dmitri Makarov and
>             Matthias Hauswirth at the University of Lugano. AFAIK
>             you'll need to use Mac OS if you want to attach to a
>             running Jikes RVM. If you don't use Mac OS, you can still
>             use rdb to examine the bootimage.
>
>             > I am attaching the patch here that reproduced that
>             error. The error that produced is following:
>
>             I can confirm that the patch reproduces the problem on hg
>             tip for the BaseBaseRefCount configuration. I'm not sure
>             whether it's a MMTk problem or a problem in the
>             interaction of MMTk and Jikes RVM. Perhaps the MMTk test
>             harness can be used to determine that?
>
>
>             Kind regards,
>
>             Erik Brangs
>
>             ------------------------------------------------------------------------------
>             Rapidly troubleshoot problems before they affect your
>             business. Most IT
>             organizations don't have a clear picture of how
>             application performance
>             affects their revenue. With AppDynamics, you get 100%
>             visibility into your
>             Java,.NET, & PHP application. Start your 15-day FREE TRIAL
>             of AppDynamics Pro!
>             http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
>             _______________________________________________
>             Jikesrvm-researchers mailing list
>             [email protected]
>             <mailto:[email protected]>
>             https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers
>
>
>
>         ------------------------------------------------------------------------------
>         Rapidly troubleshoot problems before they affect your
>         business. Most IT
>         organizations don't have a clear picture of how application
>         performance
>         affects their revenue. With AppDynamics, you get 100%
>         visibility into your
>         Java,.NET, & PHP application. Start your 15-day FREE TRIAL of
>         AppDynamics Pro!
>         http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
>         _______________________________________________
>         Jikesrvm-researchers mailing list
>         [email protected]
>         <mailto:[email protected]>
>         https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers
>
>
>
>     ------------------------------------------------------------------------------
>     Rapidly troubleshoot problems before they affect your business.
>     Most IT
>     organizations don't have a clear picture of how application
>     performance
>     affects their revenue. With AppDynamics, you get 100% visibility
>     into your
>     Java,.NET, & PHP application. Start your 15-day FREE TRIAL of
>     AppDynamics Pro!
>     http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
>     _______________________________________________
>     Jikesrvm-researchers mailing list
>     [email protected]
>     <mailto:[email protected]>
>     https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers
>
>
>
>
> ------------------------------------------------------------------------------
> Rapidly troubleshoot problems before they affect your business. Most IT
> organizations don't have a clear picture of how application performance
> affects their revenue. With AppDynamics, you get 100% visibility into your
> Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
> http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
>
>
> _______________________________________________
> Jikesrvm-researchers mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers

------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk

_______________________________________________
Jikesrvm-researchers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers
rcbug.patch (text/plain, 1.8 KB)
diff -r bc4e6f6713c4 MMTk/src/org/mmtk/plan/refcount/RCBaseCollector.java
--- a/MMTk/src/org/mmtk/plan/refcount/RCBaseCollector.java	Tue Nov 19 19:41:37 2013 +0100
+++ b/MMTk/src/org/mmtk/plan/refcount/RCBaseCollector.java	Wed Dec 25 15:26:21 2013 +1100
@@ -162,7 +162,9 @@
         RCHeader.makeUnlogged(current);
         if (!RCBase.BUILD_FOR_GENRC) {
           if (Space.isInSpace(RCBase.REF_COUNT, current)) {
-            ExplicitFreeListSpace.testAndSetLiveBit(current);
+            if (!ExplicitFreeListSpace.liveBitSet(current)) {
+              ExplicitFreeListSpace.unsyncSetLiveBit(current);
+            }
           }
         }
         VM.scanning.scanObject(getModifiedProcessor(), current);
diff -r bc4e6f6713c4 MMTk/src/org/mmtk/plan/refcount/RCHeader.java
--- a/MMTk/src/org/mmtk/plan/refcount/RCHeader.java	Tue Nov 19 19:41:37 2013 +0100
+++ b/MMTk/src/org/mmtk/plan/refcount/RCHeader.java	Wed Dec 25 15:26:21 2013 +1100
@@ -25,7 +25,7 @@
   /* Requirements */
   public static final int LOCAL_GC_BITS_REQUIRED = 0;
   public static final int GLOBAL_GC_BITS_REQUIRED = 8;
-  public static final int GC_HEADER_WORDS_REQUIRED = 0;
+  public static final int GC_HEADER_WORDS_REQUIRED = 2;
 
   /****************************************************************************
    * Object Logging (applies to *all* objects)
diff -r bc4e6f6713c4 MMTk/src/org/mmtk/policy/SegregatedFreeListSpace.java
--- a/MMTk/src/org/mmtk/policy/SegregatedFreeListSpace.java	Tue Nov 19 19:41:37 2013 +0100
+++ b/MMTk/src/org/mmtk/policy/SegregatedFreeListSpace.java	Wed Dec 25 15:26:21 2013 +1100
@@ -880,7 +880,7 @@
    * @param object The object whose live bit is to be set.
    */
   @Inline
-  protected static boolean liveBitSet(ObjectReference object) {
+  public static boolean liveBitSet(ObjectReference object) {
     return liveBitSet(VM.objectModel.refToAddress(object));
   }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.