RC Immix

Description

We're about to present a paper at OOPSLA'13, which combines reference counting and Immix in Jikes RVM. The result is an overall performance win against the current production collector, with worst-case degradation of around 5% and best-case improvement of 25%. This JIRA is to propose the addition of this new collector. The collector would be added to the regression tests and if it were sufficiently stable and performing, it could replace the current production collector (GenImmix).

The changes required to introduce the collector are modest. For expediency we attach a monolithic patch now (against revision 10741), but we will break this down into separate meaningful deltas shortly.

The algorithm is described in the paper "Taking Off the Gloves with Reference Counting Immix," which is available here: http://users.cecs.anu.edu.au/~steveb/downloads/pdf/rcix-oopsla-2013.pdf

Environment

None

Attachments

7

depends upon

is depended upon by

Activity

Show:

Erik BrangsAugust 13, 2015 at 9:09 AM

I'm assigning all RC collector issues to Steve so that he can determine what to about them (and when).

Erik BrangsFebruary 19, 2015 at 11:49 AM

There hasn't been any publicly visible progress on this issue for months. At the current rate of publicly visible progress, I doubt that this is going to make 3.1.4. That's why I'm changing the fix version to 3.2.

If you disagree, please post an updated patch / a link to a repository or ask someone from the core team to move the issue back to 3.1.4.

Rifat ShahriyarMay 24, 2014 at 4:25 AM

Thanks Erik. I will look into it. We are planning to add the collector for 3.1.4.

Erik BrangsMay 23, 2014 at 8:24 PM

Any updates on this? Are you still planning to add the collector for 3.1.4?

A test run with a gcstress-like RCImmix configuration (see attached diff) on IA32 shows that the collector from the currently attached patch is still buggy. In particular, a few tests fail with OVERTIME. I also saw this when testing on PPC64 so I suspect that this is a collector problem.

Most of the failures in the stress test are due to assertion failures after calling survivorCopy in RCBaseCollector.

The test run also confirms that the jython assertion failure is not PPC64-specific.

Rifat ShahriyarApril 6, 2014 at 2:52 AM

Thanks Erik. I will talk to Steve.

Details

Assignee

Reporter

Components

Fix versions

Affects versions

Priority

Created October 23, 2013 at 1:21 AM
Updated August 13, 2015 at 9:09 AM