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));
}