Clean up type of BUSY in CMS

XMLWordPrintable

    • Type: Enhancement
    • Resolution: Not an Issue
    • Priority: P4
    • tbd
    • Affects Version/s: 10
    • Component/s: hotspot
    • gc

      src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.cpp

      In CMSCollector::par_take_from_overflow_list, if BUSY and prefix were
      of type oopDesc*, I think there would be a whole lot fewer casts and
      cast_to_oop's. Later on, I think suffix_head, observed_overflow_list,
      and curr_overflow_list could also be oopDesc* instead of oop to
      eliminate more casts.

      And some similar changes in CMSCollector::par_push_on_overflow_list.

      And similarly in parNewGeneration.cpp, in push_on_overflow_list and
      take_from_overflow_list_work.

      As noted in the comments for JDK-8165857, the lists and "objects"
      involved here aren't really oops, but rather the shattered remains of
      oops. The suggestion there was to use HeapWord* and carry through the
      fanout; what was actually done was to change _overflow_list to
      oopDesc* to minimize fanout, even though that's kind of lying to the
      type system. Now, with the cleanup of cmpxchg_ptr and such, we're
      paying the price of doing the minimal thing back then.

            Assignee:
            Unassigned
            Reporter:
            Coleen Phillimore
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: