RFR (XS) : 8141641: Runtime: implement range for ErrorLogTimeout
David Holmes
david.holmes at oracle.com
Mon Nov 16 03:29:25 UTC 2015
On 16/11/2015 7:38 AM, Dmitry Dmitriev wrote:
> Hi Gerard,
>
> Several comments:
> 1) I beleive that David mean UINT_MAX, i.e. without "x", because it
> always 32-bit and can avoid overflow of resulting value. Thus, I think
> that upper range should be "max_juint".
<sigh> I missed the 'x' on the flag type. When I said UINT_MAX I was
thinking the flag was a UINT. UINTX_MAX can lead to overflow as you
pointed out much earlier - sorry.
> 2) Also, in revision 0 you correct using of ErrorLogTimeout to match
> definition by removing "60" from call to the "os::sleep" in
> src/share/vm/runtime/thread.cpp. Did something changed between rev0 and
> rev1?
>
> 3) Also, David suggested to wrap constants in multiplication in
> src/share/vm/runtime/thread.cpp into CONST64 to avoid possible
> overflows, i.e.:
> os::sleep(this, ErrorLogTimeout * CONST64(1000), false);
I'm making a bit of a hash of this review - sorry.
I agree with Dmitry that the os::sleep call should be changed as above:
os::sleep(this, ErrorLogTimeout * CONST64(1000), false);
but as the sleep arg is a jlong we need to limit ErrorLogTimeout to
(MAX_JLONG/1000) _but_ that's too big for uintx on 32-bit. Which means
the true range is different on 32-bit versus 64-bit. So if I finally get
this right we should have the range as:
range(0, LP64_ONLY(MAX_JLONG/1000) NOT_LP64(UINTX_MAX))
Not sure we have MAX_JLONG defined as a constant. I don't agree with
just selecting the 32-bit range as that again becomes an arbitrary
constraint on 64-bit.
David
-----
> Thanks,
> Dmitry
>
> On 12.11.2015 21:26, gerard ziemski wrote:
>> hi all,
>>
>> I have updated the fix with rev1, incorporating the feedback from David:
>>
>> - Use trivial range
>>
>>
>> http://cr.openjdk.java.net/~gziemski/8141641_rev1
>>
>>
>> cheers
>>
>> On 11/10/2015 01:34 PM, gerard ziemski wrote:
>>>
>>> hi all,
>>>
>>> Please review this small fix for JEP-245, which implements range for
>>> the last new runtime flag.
>>>
>>> bug: https://bugs.openjdk.java.net/browse/JDK-8141641
>>> webrev: http://cr.openjdk.java.net/~gziemski/8141641_rev0
>>>
>>>
>>> Thank you.
>
More information about the hotspot-dev
mailing list