RFR (L): 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29

Jon Masamitsu jon.masamitsu at oracle.com
Fri Jan 30 23:18:26 UTC 2015


On 1/29/2015 2:30 AM, Thomas Schatzl wrote:
> ...
> AAAAAA AAAAAA AAAAAA  // heap area, each AAAAAA is a single region
>     |      |      |    // area covered by auxilary pages
>        1       2       // auxiliary data pages

Are bitmaps an example of the auxiliary data?
AAAAAA are 6 regions?

And the preferred layout would be

  AAAAAA AAAAAA AAAAAA  // heap area, each AAAAAA is a single region

|      |      |      |    // area covered by auxilary pages

    1       2       // auxiliary data pages

so that (regions replace by 0 have been uncommitted)

  AA00AA 000000 A000AA  // heap area, each AAAAAA is a single region

|      |      |      |    // area covered by auxilary pages

     1       2       // auxiliary data pages


then the page for 2 can be uncommitted.


>
> So if auxiliary data pages were unaligned, so that they correspond to
> uneven multiples of the heap, when uncommitting e.g. the second region
> (second set of AAAAAA), we would have to split the auxiliary data pages
> 1 and 2 into smaller ones.

You mean we would have to use small pages for the auxiliary data?
So we could uncommit the auxiliary data pages corresponding to the
heap uncommit more easily?

>
> That does not seem to be a good tradeoff in complexity, given that the
> waste is at most one large page in reserved space (and unfortunately,
> due to the Linux large page implementation also in actually used space).

The waste is 1 large page for each auxiliary data structure?

Jon


More information about the hotspot-gc-dev mailing list