< prev index next >

src/share/vm/memory/barrierSet.hpp

Print this page
rev 7318 : 8064721: The card tables only ever need two covering regions

*** 47,57 **** enum Flags { None = 0, TargetUninitialized = 1 }; protected: ! int _max_covered_regions; Name _kind; public: BarrierSet() { _kind = Uninit; } --- 47,62 ---- enum Flags { None = 0, TargetUninitialized = 1 }; protected: ! // Some barrier sets create tables whose elements correspond to parts of ! // the heap; the CardTableModRefBS is an example. Such barrier sets will ! // normally reserve space for such tables, and commit parts of the table ! // "covering" parts of the heap that are committed. At most one covered ! // region per generation is needed. ! static const int _max_covered_regions = 2; Name _kind; public: BarrierSet() { _kind = Uninit; }
*** 157,178 **** // virtual "_work" function below, which must implement the barrier.) inline void write_region(MemRegion mr); protected: virtual void write_region_work(MemRegion mr) = 0; public: - - // Some barrier sets create tables whose elements correspond to parts of - // the heap; the CardTableModRefBS is an example. Such barrier sets will - // normally reserve space for such tables, and commit parts of the table - // "covering" parts of the heap that are committed. The constructor is - // passed the maximum number of independently committable subregions to - // be covered, and the "resize_covered_region" function allows the - // sub-parts of the heap to inform the barrier set of changes of their - // sizes. - BarrierSet(int max_covered_regions) : - _max_covered_regions(max_covered_regions) {} - // Inform the BarrierSet that the the covered heap region that starts // with "base" has been changed to have the given size (possibly from 0, // for initialization.) virtual void resize_covered_region(MemRegion new_region) = 0; --- 162,171 ----
< prev index next >