Question about fixup_partial_loads at"Pause mark end" phase

彭 成寒 pengch81 at hotmail.com
Fri Jan 18 01:47:53 UTC 2019


Hi Per,

Sorry to distburb you.  I am new to learn ZGC.
I don't understand why we need ZHeap::fixup_partial_loads() at mark_end phase. I see the comment as below in the file:

  // C2 can generate code where a safepoint poll is inserted
  // between a load and the associated load barrier. To handle
  // this case we need to rescan the thread stack here to make
  // sure such oops are marked.

From the comments, the compiled thread maybe be caused the mark leakage at safepoint poll. Which STW pahse for this polling? is it the mark_end phase? if yes, all the objects should be marked at concurrent mark phase? Could you help me understand this pece of code? Thank you very much!

Hi Per,

Sorry to distburb you. I don't understand why we need ZHeap::fixup_partial_loads() at mark_end phase. I see the comment as below in the file:

  // C2 can generate code where a safepoint poll is inserted
  // between a load and the associated load barrier. To handle
  // this case we need to rescan the thread stack here to make
  // sure such oops are marked.

From the comments, the compiled thread maybe be caused the mark leakage at safepoint poll. Which STW pahse for this polling? is it the mark_end phase? if yes, all the objects should be marked at concurrent mark phase? COuld you help me understand this pece of code? Thank you very much!

Ryan peng

发自我的华为手机


More information about the zgc-dev mailing list