Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8347830

[premain] UseCompatibleCompressedOops is broken after merging with mainline

XMLWordPrintable

      Since the following version, UseCompatibleCompressedOops is disabled

      https://github.com/openjdk/leyden/blob/478f86f9cd6df6b92c037c83d0540b9c5fe97e5c/src/hotspot/share/cds/cdsConfig.cpp#L478

      #ifdef _LP64
          // FLAG_SET_ERGO_IF_DEFAULT(UseCompatibleCompressedOops, true); // FIXME @iklam - merge with mainline - UseCompatibleCompressedOops
      #endif

      I changed the above line when merging mainline into premain:

      [1] A lot of code were removed (or moved??) in the mainline as part of JDK-8345655:

      https://github.com/openjdk/leyden/commit/73b5dbaec340b3e8c958d63f510df92ec621c04e#diff-b933a6f48f03a3b4336d8567621c475b93efbe7dfac762dfc3b65f7567577dc9

      But premain had changes in these lines that test for UseCompatibleCompressedOops

      https://github.com/openjdk/leyden/blame/cc111760a0dd123935e039feb19eaac742f865b2/src/hotspot/share/memory/virtualspace.cpp#L534

      We need to move the UseCompatibleCompressedOops checks following JDK-8345655

      [2] The following assert is triggered when UseCompatibleCompressedOops==true

      https://github.com/openjdk/leyden/blob/478f86f9cd6df6b92c037c83d0540b9c5fe97e5c/src/hotspot/share/oops/compressedOops.cpp#L89

        assert((intptr_t)base() <= ((intptr_t)_heap_address_range.start() - (intptr_t)os::vm_page_size()) ||
               base() == nullptr, "invalid value");

            iklam Ioi Lam
            iklam Ioi Lam
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: