Please review the following fix: webrev: http://cr.openjdk.java.net/~sla/8015440/webrev.00/ bug: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8015440
The problem is that serial gc does not compact the heap at every full gc but only every 4th full gc (by default). When the heap isn't compacted the "usage" is returned as a higher-than-expect value. This can be changed with -XX:MarkSweepAlwaysCompactCount=1. Testing: I have rerun the test on a machine where it failed to make sure that it runs correctly with the extra flag. Thanks, /Staffan