RFR (M): 7606282: tests on ReservedSpace/VirtualSpace

Stefan Karlsson stefan.karlsson at oracle.com
Fri Oct 25 11:48:22 UTC 2013


Hi Aleksey,

Adding hotspot-runtime-dev, since this is adding tests to test/runtime.

Inlined:

On 2013-10-24 16:00, aleksey.timofeev at oracle.com wrote:
> Thank you, Stefan, for review. I fixed up a little. Also I moved bug 
> this changeset refers to from INTJDK to JDK: JDK-8027237 
> <https://bugs.openjdk.java.net/browse/JDK-8027237>.
>
> I updated changeset:
> - Added comments to WB_StressVirtualSpaceResize method of whitebox
> - Dropped changes of comment in virtualspace.cpp
> - Extracted class in ReadFromNoaccessArea.java file
>
> Updated webrev: 
> http://cr.openjdk.java.net/~iignatyev/atimofeev/ResVirtSpaceTests/webrev.03/ 
> <http://cr.openjdk.java.net/%7Eiignatyev/atimofeev/ResVirtSpaceTests/webrev.03/>

http://cr.openjdk.java.net/~iignatyev/atimofeev/ResVirtSpaceTests/webrev.03/src/share/vm/prims/whitebox.cpp.udiff.html

The indentation in the HotSpot code is two spaces.

Could you fix the weird indentation in:

+    if (! (UseCompressedOops && rhs.base() != NULL &&
+                                      (Universe::narrow_oop_base() != NULL) &&
+                                      Universe::narrow_oop_use_implicit_null_checks())) {

Can you separate 'UseCompressedOops && _base' in the output?

+        tty->print_cr("WB_ReadFromNoaccessArea method is useless:\n "
+                "\t\"UseCompressedOops && _base != NULL\" is %d\n"
+                "\t\"Universe::narrow_oop_base() != NULL\" is %d\n"
+                "\t\"Universe::narrow_oop_use_implicit_null_checks()\" is %d",
+                UseCompressedOops && rhs.base() != NULL,
+                Universe::narrow_oop_base() != NULL,
+                Universe::narrow_oop_use_implicit_null_checks());




There are a couple of places where you mix types of different sizes. 
Some examples:

%d is for int, but you dereference a char*:

+    tty->print_cr("*(vs.low_boundary() - rhs.noaccess_prefix() / 2 ) = 
%d",
+            *(vs.low_boundary() - rhs.noaccess_prefix() / 2 ));


magnitude is a jlong (8 bytes) and os::random() returns a long, which is 
platform dependent:

+        x = (os::random() % (2 * magnitude)) - magnitude;


%d is int, but seed is long:

+    tty->print_cr("Random seed is %d", seed);


Could you change x to be a size_t and widen the types where necessary, 
instead of shrinking them. For example:

+        if (x < 0 && (((long) vs.committed_size()) + x) < 0) {

Mixing int (%d) and long.

+    tty->print_cr("reservedSpaceSize=%d, magnitude=%d, iterations=%d",
+            (long) reservedSpaceSize, (long) magnitude, (long) iterations);

Could you move the declaration of 'long x' into the for loop?

+    for (long x, i = 0; i < iterations; i++ ) {
+

Theres a spurious semicolon:

+        } else {
+            vs.shrink_by(-x);
+        };

thanks,
StefanK

>
> On 10/20/2013 12:54 AM, aleksey.timofeev at oracle.com wrote:
>> Hello.
>>
>> Probably, I didn't get responses for my previous letter because I 
>> sent it with wrong subject.
>>
>> Could somebody review my changeset containing new tests against 
>> ReservedSpace and VirtualSpace classes? Please find webrev here: 
>> http://cr.openjdk.java.net/~iignatyev/atimofeev/ResVirtSpaceTests/webrev.02/ 
>> <http://cr.openjdk.java.net/%7Eiignatyev/atimofeev/ResVirtSpaceTests/webrev.02/>. 
>> Apart from feedback commit sponsorship wanted.
>>
>
> -- 
> Best regards, Aleksey Timofeev.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20131025/5351d74e/attachment.htm>


More information about the hotspot-gc-dev mailing list