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

CMS: Incorrect encoding of overflown object arrays during concurrent precleaning

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P3 P3
    • hs14
    • hs14, 1.4.2_01, 6
    • hotspot
    • gc
    • 1.4.2
    • b03
    • generic, x86, sparc
    • generic, solaris, solaris_9

        Here's the "evaluation" from 6578335 during whose investigation
        this problem was first diagnosed:

        What we were doing is that if we overflowed the marking stack
        when trying to push a newly marked (now grey) object encountered during
        precleaning, we would just dirty the card the object (now marked)
        lay on, with the expectation that a later precleaning pass or the final
        remark phase (which would pick up all remaining dirty cards) would deal
        with the object. But of course in the case of an object _array_,
        preclean/remark would just scrub the dirty pages not the entire array,
        so the part of the object array that protruded off the dirtied page
        on to a possibly clean page would not be scanned and if that part
        contained references to white objects, those would be lost.

        The fix of course is in the case of overflown object arrays,
        to dirty all the pages that the newly marked overflown object array
        lies on when encoding its greyness for the purposes of rescan (by a
        later preclean pass or the subsequent final remark).

              ysr Y. Ramakrishna
              ysr Y. Ramakrishna
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: