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

G1: optimize nmethods scanning

    Details

    • Subcomponent:
      gc
    • Resolved In Build:
      b47
    • CPU:
      generic
    • OS:
      generic

      Backports

        Description

        The current mechanism that maintains the scavenge roots in nmethods list is unsuitable for G1. The list implies that there are two types of collections: young (after which the list should be pruned) and full (during which we would scan the whole code cache). So, currently G1 doesn't prune this list at all, which means that the list can grow pretty big. We must have something more flexible. The best way I see to do that is that we would have Rset for each G1 region that would contains nmethods that point to this region. This would allow us to scan only the nmethods requried and also to parallelize the scanning process.

          Attachments

          1. code_root_handling.png
            182 kB
            Thomas Schatzl
          2. ext_root_scan_avg_max.png
            521 kB
            Thomas Schatzl
          3. ext_root_scan.perf.png
            110 kB
            Thomas Schatzl
          4. nashornbench.txt.csv
            3 kB
            Thomas Schatzl
          5. object_copy_update_rs_scan_rs.detail.png
            206 kB
            Thomas Schatzl
          6. object_copy_update_rs_scan_rs.png
            390 kB
            Thomas Schatzl

            Issue Links

              Activity

                People

                • Assignee:
                  tschatzl Thomas Schatzl
                  Reporter:
                  iveresov Igor Veresov
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  8 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved:
                    Imported:
                    Indexed: