[11u] RFR: backport of JDK-8208658: Make CDS archived heap regions usable even if compressed oop encoding has changed
Jiangli Zhou
jianglizhou at google.com
Fri Jan 24 15:32:13 UTC 2020
Hi Christoph,
On Fri, Jan 24, 2020 at 6:33 AM Langer, Christoph
<christoph.langer at sap.com> wrote:
>
> Hi Jiangli,
>
> This backport looks good to me.
>
> Would you want me to run it through our test infrastructure to get additional confidence?
>
That would be most helpful and reassuring. I will wait for your
testing result before pushing. Thank you!
Best regards,
Jiangli
> Cheers
> Christoph
>
> > -----Original Message-----
> > From: hotspot-runtime-dev <hotspot-runtime-dev-
> > bounces at openjdk.java.net> On Behalf Of Jiangli Zhou
> > Sent: Mittwoch, 22. Januar 2020 02:05
> > To: jdk-updates-dev at openjdk.java.net; hotspot-runtime-dev <hotspot-
> > runtime-dev at openjdk.java.net>
> > Subject: [11u] RFR: backport of JDK-8208658: Make CDS archived heap
> > regions usable even if compressed oop encoding has changed
> >
> > I'd like to request a backport of JDK-8208658 to JDK 11u. It was an
> > enhancement that improves CDS usability and would improve startup time
> > if there's an existing default CDS archive (currently does not exist
> > in OpenJDK 11).
> >
> > webrev: http://cr.openjdk.java.net/~jiangli/8208658-backport/webrev.00
> >
> > The backport applied to jdk11u-dev mostly clean. The following small
> > set of changes were hand merged to filemap.cpp without additional
> > modifications. The backport was tested with all existing cds and
> > appcds tests, and tier 1 tests.
> >
> > --- filemap.cpp
> > +++ filemap.cpp
> > @@ -967,7 +1069,9 @@
> > if (base == NULL || base != addr) {
> > // dealloc the regions from java heap
> > dealloc_archive_heap_regions(regions, region_num);
> > - log_info(cds)("UseSharedSpaces: Unable to map at required
> > address in java heap.");
> > + log_info(cds)("UseSharedSpaces: Unable to map at required
> > address in java heap. "
> > + INTPTR_FORMAT ", size = " SIZE_FORMAT " bytes",
> > + p2i(addr), regions[i].byte_size());
> > return false;
> > }
> > }
> > @@ -1216,34 +1348,25 @@
> > idx == MetaspaceShared::rw ||
> > idx == MetaspaceShared::mc ||
> > idx == MetaspaceShared::md, "invalid region index");
> > - char* base = _header->region_addr(idx);
> > + char* base = region_addr(idx);
> > if (p >= base && p < base + space_at(idx)->_used) {
> > return true;
> > }
> > return false;
> > }
> >
> > -void FileMapInfo::print_shared_spaces() {
> > - tty->print_cr("Shared Spaces:");
> > - for (int i = 0; i < MetaspaceShared::n_regions; i++) {
> > - CDSFileMapRegion* si = space_at(i);
> > - char *base = _header->region_addr(i);
> > - tty->print(" %s " INTPTR_FORMAT "-" INTPTR_FORMAT,
> > - shared_region_name[i],
> > - p2i(base), p2i(base + si->_used));
> > - }
> > -}
> > -
> > // Unmap mapped regions of shared space.
> > void FileMapInfo::stop_sharing_and_unmap(const char* msg) {
> > FileMapInfo *map_info = FileMapInfo::current_info();
> > if (map_info) {
> > map_info->fail_continue("%s", msg);
> > for (int i = 0; i < MetaspaceShared::num_non_heap_spaces; i++) {
> > - char *addr = map_info->_header->region_addr(i);
> > - if (addr != NULL && !MetaspaceShared::is_heap_region(i)) {
> > - map_info->unmap_region(i);
> > - map_info->space_at(i)->_addr._base = NULL;
> > + if (!MetaspaceShared::is_heap_region(i)) {
> > + char *addr = map_info->region_addr(i);
> > + if (addr != NULL) {
> > + map_info->unmap_region(i);
> > + map_info->space_at(i)->_addr._base = NULL;
> > + }
> >
> > Best regards,
> > Jiangli
More information about the jdk-updates-dev
mailing list