Re: [9, 8u40] RFR (M): 8063135: Enable full LF sharing by default

2014-11-18 Thread Aleksey Shipilev
On 11/18/2014 11:23 PM, Vladimir Ivanov wrote:
> http://cr.openjdk.java.net/~vlivanov/8063135/webrev.00/
> https://bugs.openjdk.java.net/browse/JDK-8063135

Broken array index here:

 69 TRACE_METHOD_LINKAGE  = (Boolean) values[3];
 70 COMPILE_THRESHOLD = (Integer) values[5];

Also, how does it pass the tests? It should fail with AIOBE during
MethodHandleStatics::, since

 53 final Object[] values = new Object[7];
 ...
 72 PROFILE_LEVEL = (Integer) values[7];

Thanks,
-Aleksey.



signature.asc
Description: OpenPGP digital signature
___
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev


Re: [9, 8u40] RFR (XXS): 8059880: Get rid of LambdaForm interpretation

2014-11-18 Thread Aleksey Shipilev
On 11/19/2014 12:01 AM, Vladimir Ivanov wrote:
> http://cr.openjdk.java.net/~vlivanov/8059880/webrev.00/
> https://bugs.openjdk.java.net/browse/JDK-8059880

Yes, for the love of God, GO FOR IT.

-Aleksey.



signature.asc
Description: OpenPGP digital signature
___
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev


[9, 8u40] RFR (XXS): 8059880: Get rid of LambdaForm interpretation

2014-11-18 Thread Vladimir Ivanov

http://cr.openjdk.java.net/~vlivanov/8059880/webrev.00/
https://bugs.openjdk.java.net/browse/JDK-8059880

Once full LambdaForm sharing is on by default, amount of instantiated 
LambdaForms drastically reduces. On Octane it varies from 1k to 3k 
depending on the subbenchmark (was up to 300k before LF sharing-related 
changes).


It allows to skip interpretation step without inducing slowdown at 
startup. Every LambdaForm is precompiled once it is instantiated. 
Avoiding LF interpretation significantly reduces worst-case stack usage 
(4-5 stack frames per interpreted LF to 1 stack frame per compiled LF).


The fix is to set COMPILE_THRESHOLD down to 0. It triggers LF 
precompilation for every LF.


Testing: jck (api/java_lang/invoke), jdk/java/lang/invoke, 
jdk/java/util/streams, octane


Thanks!

Best regards,
Vladimir Ivanov
___
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev


Re: MemberName$Factory.resolve() and the Eclipse debugger.

2014-11-18 Thread George Marrows
Does anyone here know the best way to engage with the Eclipse developers on
this kind of thing?
We will try their mailing list (
http://dev.eclipse.org/mhonarc/lists/jdt-debug-dev/), but it's eerily
quiet

George

On Tue, Nov 18, 2014 at 3:29 PM, MacGregor, Duncan (GE Energy Management) <
duncan.macgre...@ge.com> wrote:

> https://bugs.eclipse.org/bugs/show_bug.cgi?id=449791
>
>
> On 18/11/2014 14:06, "Marcus Lagergren" 
> wrote:
>
> >Nicely done, Duncan. Do you have a link to the issue report?
> >
> >Regards
> >Marcus
> >
> >> On 03 Nov 2014, at 16:48, MacGregor, Duncan (GE Energy Management)
> >> wrote:
> >>
> >> I’ve reported an Eclipse bug. Doesn’t look like their debugger has ever
> >> done quite the right thing, unless the behaviour of the JVM has changed
> >> significantly.
> >>
> >> On 03/11/2014 15:33, "Christian Thalinger"
> >>  wrote:
> >>
> >>> Interesting.  Thanks for digging deep.
> >>>
>  On Oct 31, 2014, at 8:36 AM, MacGregor, Duncan (GE Energy Management)
>   wrote:
> 
>  Okay, I now know why the JVM is stuck for so long, just not why
> Eclipse
>  is
>  doing what it does.
> 
>  At certain points during the loading of our application Eclipse will
>  make
>  a large number (upto 1) jdwp classesForSignature requests, each of
>  which causes the jdwp lib to trawl over a large number of classes
>  (several
>  10s of thousands), resulting in upto a couple hundred million jvmti
>  GetClassSignature calls, and is particularly pointless because it
> fails
>  to
>  find any of these classes.
> 
>  That last bit gave me a clue. These large numbers of
> classesForSignature
>  requests occur when classes have been GCed, and a request is being
>  issued
>  for every single class that has been successfully Gced. Since we¹re
>  careful to ensure that all the code we dynamically execute at startup
> is
>  done in temporary class loaders so that the everything can be Gced
> away,
>  and since variance LF stuff can also be Gced, the problem is much
> worse
>  than it would be in other applications.
> 
>  It¹s really bad in earlier 8 updates without the LF editor work
> because
>  there¹s more classes and more getting Gced, so I¹ve seen 3 minute long
>  pauses with that version.
> 
>  I guess this should be reported as a bug to the Eclipse debug team,
> but
>  I
>  wonder if classesForSignature can¹t be made faster in some way.
> 
>  Regards, Duncan.
> 
>  ___
>  mlvm-dev mailing list
>  mlvm-dev@openjdk.java.net
>  http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
> >>>
> >>> ___
> >>> mlvm-dev mailing list
> >>> mlvm-dev@openjdk.java.net
> >>> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
> >>
> >> ___
> >> mlvm-dev mailing list
> >> mlvm-dev@openjdk.java.net
> >> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
> >
> >___
> >mlvm-dev mailing list
> >mlvm-dev@openjdk.java.net
> >http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
>
> ___
> mlvm-dev mailing list
> mlvm-dev@openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
>
___
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev


[9, 8u40] RFR (M): 8063135: Enable full LF sharing by default

2014-11-18 Thread Vladimir Ivanov

http://cr.openjdk.java.net/~vlivanov/8063135/webrev.00/
https://bugs.openjdk.java.net/browse/JDK-8063135

Turn on full LambdaForm sharing and get rid of custom LambdaForm shapes. 
8059877 [1] eliminated most of the regressions caused by LF sharing. The 
rest will be addressed separately [2].


Testing: jck (api/java_lang/invoke), jdk/java/lang/invoke, 
jdk/java/util/streams, octane


Thanks!

Best regards,
Vladimir Ivanov

[1] https://bugs.openjdk.java.net/browse/JDK-8059877
[2] https://bugs.openjdk.java.net/browse/JDK-8063137
___
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev


Re: MemberName$Factory.resolve() and the Eclipse debugger.

2014-11-18 Thread MacGregor, Duncan (GE Energy Management)
https://bugs.eclipse.org/bugs/show_bug.cgi?id=449791


On 18/11/2014 14:06, "Marcus Lagergren" 
wrote:

>Nicely done, Duncan. Do you have a link to the issue report?
>
>Regards
>Marcus
>
>> On 03 Nov 2014, at 16:48, MacGregor, Duncan (GE Energy Management)
>> wrote:
>> 
>> I’ve reported an Eclipse bug. Doesn’t look like their debugger has ever
>> done quite the right thing, unless the behaviour of the JVM has changed
>> significantly.
>> 
>> On 03/11/2014 15:33, "Christian Thalinger"
>>  wrote:
>> 
>>> Interesting.  Thanks for digging deep.
>>> 
 On Oct 31, 2014, at 8:36 AM, MacGregor, Duncan (GE Energy Management)
  wrote:
 
 Okay, I now know why the JVM is stuck for so long, just not why
Eclipse
 is
 doing what it does.
 
 At certain points during the loading of our application Eclipse will
 make
 a large number (upto 1) jdwp classesForSignature requests, each of
 which causes the jdwp lib to trawl over a large number of classes
 (several
 10s of thousands), resulting in upto a couple hundred million jvmti
 GetClassSignature calls, and is particularly pointless because it
fails
 to
 find any of these classes.
 
 That last bit gave me a clue. These large numbers of
classesForSignature
 requests occur when classes have been GCed, and a request is being
 issued
 for every single class that has been successfully Gced. Since we¹re
 careful to ensure that all the code we dynamically execute at startup
is
 done in temporary class loaders so that the everything can be Gced
away,
 and since variance LF stuff can also be Gced, the problem is much
worse
 than it would be in other applications.
 
 It¹s really bad in earlier 8 updates without the LF editor work
because
 there¹s more classes and more getting Gced, so I¹ve seen 3 minute long
 pauses with that version.
 
 I guess this should be reported as a bug to the Eclipse debug team,
but
 I
 wonder if classesForSignature can¹t be made faster in some way.
 
 Regards, Duncan.
 
 ___
 mlvm-dev mailing list
 mlvm-dev@openjdk.java.net
 http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
>>> 
>>> ___
>>> mlvm-dev mailing list
>>> mlvm-dev@openjdk.java.net
>>> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
>> 
>> ___
>> mlvm-dev mailing list
>> mlvm-dev@openjdk.java.net
>> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
>
>___
>mlvm-dev mailing list
>mlvm-dev@openjdk.java.net
>http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

___
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev


Re: MemberName$Factory.resolve() and the Eclipse debugger.

2014-11-18 Thread Marcus Lagergren
Nicely done, Duncan. Do you have a link to the issue report?

Regards
Marcus

> On 03 Nov 2014, at 16:48, MacGregor, Duncan (GE Energy Management) 
>  wrote:
> 
> I’ve reported an Eclipse bug. Doesn’t look like their debugger has ever
> done quite the right thing, unless the behaviour of the JVM has changed
> significantly.
> 
> On 03/11/2014 15:33, "Christian Thalinger"
>  wrote:
> 
>> Interesting.  Thanks for digging deep.
>> 
>>> On Oct 31, 2014, at 8:36 AM, MacGregor, Duncan (GE Energy Management)
>>>  wrote:
>>> 
>>> Okay, I now know why the JVM is stuck for so long, just not why Eclipse
>>> is
>>> doing what it does.
>>> 
>>> At certain points during the loading of our application Eclipse will
>>> make
>>> a large number (upto 1) jdwp classesForSignature requests, each of
>>> which causes the jdwp lib to trawl over a large number of classes
>>> (several
>>> 10s of thousands), resulting in upto a couple hundred million jvmti
>>> GetClassSignature calls, and is particularly pointless because it fails
>>> to
>>> find any of these classes.
>>> 
>>> That last bit gave me a clue. These large numbers of classesForSignature
>>> requests occur when classes have been GCed, and a request is being
>>> issued
>>> for every single class that has been successfully Gced. Since we¹re
>>> careful to ensure that all the code we dynamically execute at startup is
>>> done in temporary class loaders so that the everything can be Gced away,
>>> and since variance LF stuff can also be Gced, the problem is much worse
>>> than it would be in other applications.
>>> 
>>> It¹s really bad in earlier 8 updates without the LF editor work because
>>> there¹s more classes and more getting Gced, so I¹ve seen 3 minute long
>>> pauses with that version.
>>> 
>>> I guess this should be reported as a bug to the Eclipse debug team, but
>>> I
>>> wonder if classesForSignature can¹t be made faster in some way.
>>> 
>>> Regards, Duncan.
>>> 
>>> ___
>>> mlvm-dev mailing list
>>> mlvm-dev@openjdk.java.net
>>> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
>> 
>> ___
>> mlvm-dev mailing list
>> mlvm-dev@openjdk.java.net
>> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
> 
> ___
> mlvm-dev mailing list
> mlvm-dev@openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

___
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev