On Tue, 21 Jun 2022 13:44:23 GMT, Thomas Stuefe <stu...@openjdk.org> wrote:

>>> > > I would have thought that since we don't have the pool anymore, we can 
>>> > > just remove this test line. The lines above already
>>> > > test against MaxMetaspaceSize.
>>> > 
>>> > 
>>> > Okay.
>>> > > I think you may be right, we need a replacement for the old memory bean 
>>> > > for these tests. Whitebox seems easiest.
>>> > 
>>> > 
>>> > So should we keep test changes as it is or discard existing test changes 
>>> > and then rewrite related tests via new compressed class space query 
>>> > whitebox API? I prefer to keep tests as it is rather than adding whitebox 
>>> > API since I've made a lot of test changes. But I also want to hear your 
>>> > expert suggestions as final conclusion.
>>> 
>>> I think the easier way would be actually to add a whitebox API for class 
>>> space use, as @iklam suggested, and just replace the memory pool usage 
>>> calls with that one. That would be a purely mechanical change if a bit 
>>> onerous. But since the metaspace itself did not change, the numbers are the 
>>> same, so the tests test the same. Still easier than trying to think through 
>>> the changed semantics for each test.
>>> 
>>> Sorry that this seems to have exploded in complexity :-(
>> 
>> Never mind:) I did a closer look at these test changes, it seems that many 
>> changes are still necessary even if we provide a 
>> WhiteBox.getCompressedClassSpaceMemoryUsage(). In particular, tests other 
>> than 
>> test/hotspot/jtreg/vmTestbase/vm/mlvm/indy/stress/gc/lotsOfCallSites/Test.java
>>  need to be tweaked. Can you please confirm it? Thanks.
>
>> > > > I would have thought that since we don't have the pool anymore, we can 
>> > > > just remove this test line. The lines above already
>> > > > test against MaxMetaspaceSize.
>> > > 
>> > > 
>> > > Okay.
>> > > > I think you may be right, we need a replacement for the old memory 
>> > > > bean for these tests. Whitebox seems easiest.
>> > > 
>> > > 
>> > > So should we keep test changes as it is or discard existing test changes 
>> > > and then rewrite related tests via new compressed class space query 
>> > > whitebox API? I prefer to keep tests as it is rather than adding 
>> > > whitebox API since I've made a lot of test changes. But I also want to 
>> > > hear your expert suggestions as final conclusion.
>> > 
>> > 
>> > I think the easier way would be actually to add a whitebox API for class 
>> > space use, as @iklam suggested, and just replace the memory pool usage 
>> > calls with that one. That would be a purely mechanical change if a bit 
>> > onerous. But since the metaspace itself did not change, the numbers are 
>> > the same, so the tests test the same. Still easier than trying to think 
>> > through the changed semantics for each test.
>> > Sorry that this seems to have exploded in complexity :-(
>> 
>> Never mind:) I did a closer look at these test changes, it seems that many 
>> changes are still necessary even if we provide a 
>> WhiteBox.getCompressedClassSpaceMemoryUsage(). In particular, tests other 
>> than 
>> test/hotspot/jtreg/vmTestbase/vm/mlvm/indy/stress/gc/lotsOfCallSites/Test.java
>>  need to be tweaked. Can you please confirm it? 
> 
> Why, what changes do you have in mind?

Hi @tstuefe @iklam, I've added WhiteBox.getCompressedClassSpace, but it seems 
that new commit is not much better/more straightforward than current version.

Things are getting more complicated after adding whitebox API. We fake a 
compressed class pool via WhiteBox.getCompressedClassMemoryPool, but 
ManagementFactory.getMemoryPoolMXBeans() can not aware of this newly created 
pool, because its internal structures are created at VM startup. The 
consequence is , any test involving iterating all pools, should be tweaked as 
before. We did much more than before, but we benefit less from it.

Please take a look at [new 
version](https://urldefense.com/v3/__https://github.com/openjdk/jdk/compare/master...kelthuzadx:jmm_calc_v2?expand=1__;!!ACWV5N9M2RV99hQ!LawnKAskIviQw1F1WYg4Jqozx8LlY-cUvmvLZ61Xw0ScQVDWe6B7UU1f3KJ_djJMrZF9bRiLlFb4wo2FC-lnLdu0Lw$
 ), I don't push it directly so that we have a chance to use current version.

-------------

PR: https://git.openjdk.org/jdk/pull/8831

Reply via email to