提交 51c9f300 编写于 作者: B bdelsart

8035496: G1 ARM: missing remset entry noticed by VerifyAfterGC for...

8035496: G1 ARM: missing remset entry noticed by VerifyAfterGC for vm/gc/concurrent/lp50yp10rp70mr30st0
Summary: release_store used when registering a PerRegionTable. Also reviewed-by: vitalyd@gmail.com
Reviewed-by: jmasa, tschatzl, brutisso
上级 972d83d5
......@@ -514,7 +514,15 @@ void OtherRegionsTable::add_reference(OopOrNarrowOopStar from, int tid) {
PerRegionTable* first_prt = _fine_grain_regions[ind];
prt->set_collision_list_next(first_prt);
_fine_grain_regions[ind] = prt;
// The assignment into _fine_grain_regions allows the prt to
// start being used concurrently. In addition to
// collision_list_next which must be visible (else concurrent
// parsing of the list, if any, may fail to see other entries),
// the content of the prt must be visible (else for instance
// some mark bits may not yet seem cleared or a 'later' update
// performed by a concurrent thread could be undone when the
// zeroing becomes visible). This requires store ordering.
OrderAccess::release_store_ptr((volatile PerRegionTable*)&_fine_grain_regions[ind], prt);
_n_fine_entries++;
if (G1HRRSUseSparseTable) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册