RFR (L): JDK-6843347 Boundary values in some public GC options cause crashes
bengt.rutisson at oracle.com
Wed May 15 08:08:28 UTC 2013
On 5/15/13 9:32 AM, Thomas Schatzl wrote:
> Hi all,
> please review another version of the changes for this CR after Bengt's
> The difference to the previous is
> - do not try to fix up a MarkSweepAlwaysCompactCount=0 setting on the
> command line (but fail on argument verification later)
> - changed various "unsigned int" to "uint" that are related to
> MarkSweepAlwaysCompactCount handling (psMarkSweep.cpp, space.hpp,
> - remove redundant braces/fix spacing in psMarkSweep.cpp
> v1 to v2:
> - change the type of MarkSweepAlwaysCompactCount from intx to uintx,
> with related changes.
> initial to v1:
> - minimum value for HeapSizePerGCThread is os::vm_page_size()
> On Tue, 2013-05-14 at 09:48 +0200, Thomas Schatzl wrote:
>> On Tue, 2013-05-14 at 08:47 +0200, Bengt Rutisson wrote:
>>> Hi Thomas,
>>> In arguments.cpp you check for MarkSweepAlwaysCompactCount == 0 and in
>>> that case silently set MarkSweepAlwaysCompactCount = 1. I think I
>>> would prefer not to reset it and let there be an error message when we
>>> hit "verify_min_value(MarkSweepAlwaysCompactCount, 1,
>>> "MarkSweepAlwaysCompactCount");" further down. Otherwise people won't
>>> know that they have made a mistake on the command line if they run
>>> with -XX:MarkSweepAlwaysCompactCount=0.
>> That's fine with me - I added that for backwards compatibility as the
>> use e.g. in psMarkSweepDecorator.cpp also silently set it to this value.
>>> One minor nit:
>>> In psMarkSweep.cpp you updated one line to be:
>>> unsigned int count = (maximum_heap_compaction)? 1 :
>>> I don't think the parenthesis increase readability here, but it would
>>> help with a space before the ?. Also, I am more used to seeing uint
>>> instead of unsigned int, but HotSpot has a lot of occurrences of both
>>> variants, so I leave it up to you to choose. So, to summarize I would
>>> uint count = maximum_heap_compaction ? 1 :
>> Will fix both issues. I changed the type to uint as I also prefer that.
>> Thanks for your comments.
More information about the hotspot-gc-dev