Issue Details (XML | Word | Printable)

Key: RVM-605
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Michael Bond
Reporter: Michael Bond
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
RVM

Possible fix for FreeListPageResource.releasePages()

Created: 29/Jul/08 05:16 PM   Updated: 17/Sep/08 09:16 AM
Component/s: MMTk
Affects Version/s: 2.9.2, 2.9.3
Fix Version/s: 3.0.1

Time Tracking:
Not Specified

File Attachments: 1. Text File releasePages-possible-fix.patch (0.8 kB)


Patch Submitted: Yes


 Description  « Hide
When adding a RawPageSpace and doing many acquire() and release() calls, I sometimes get a crash because the following line in FreeListPageResource.freeContiguousChunk() fails, i.e., returns -1:

int tmp = freeList.alloc(Space.PAGES_IN_CHUNK, chunkStart); // then alloc the entire chunk

Many Log.write()s later I think there may be a corner case in FreeListPageResource.releasePages() that needs slightly different handling. The attached patch eliminates the errors I was getting, but could an MMTk expert please check the change and verify that it's correct since I don't fully understand the code?

thanks,
Mike



 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
Steve Blackburn added a comment - 15/Sep/08 03:34 AM
Fixed in RVM-14985.

Apologies for not looking at this earlier. Work on RVM-648 took me to the same bug :-/ I ended up refactoring and improving the code to make it a bit clearer.