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

G1: filter out perm gen cards in the C++ post write barrier

    • Icon: Enhancement Enhancement
    • Resolution: Won't Fix
    • Icon: P4 P4
    • 9
    • hs20
    • hotspot
    • None
    • gc
    • generic
    • generic

      When we enqueue dirty cards on the update buffers for processing by the concurrent refinement threads, it is possible to enqueue cards on the perm gen. Given that we don't generate RSet entries for those, the concurrent refinement process just drops them. It would have been nice if we could filter them out earlier and maybe enqueue fewer update buffers.

      I would guess that doing this filtering in the JITed barriers might be counter-produtive, as it will make the barriers a bit more expensive and maybe the JITed barriers do not update that many perm gen objedcts anyway. However, it might be worthwhile to do the filtering in the C++ barriers that are explicitly called by the JVM code. Those seem to be called during class loading and should update perm gen objects more often than the JITed barriers.

      This is not a huge priority, given that the perm gen will be going away soon and this issue will disappear. But we might get some short-term benefit out of this, given that the patch should be very small and straightforward (most likely an extra if-statement in the write barrier).

            johnc John Cuthbertson
            tonyp Tony Printezis
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: