RFR (S): 8133470: Uses of Atomic methods in plab.hpp should be moved to .inline.hpp file
Thomas Schatzl
thomas.schatzl at oracle.com
Thu Aug 13 15:32:06 UTC 2015
Hi all,
On Thu, 2015-08-13 at 12:49 +0200, Thomas Schatzl wrote:
> Hi all,
>
> in the review for 8073013 one of the review questions was why plab.hpp
> added atomic.inline.hpp, and that that is not good practice.
>
> This has been a pre-existing bug, i.e. plab.hpp already used the Atomic
> functions that reside in .inline.hpp.
>
> This CR fixes this issue by moving the problematic calls into
> plab.inline.hpp.
>
> The only problem is that changing includes from plab.hpp to
> plab.inline.hpp in cpp files and adding plab.hpp in header files opens
> up dependency issues and other missing includes.
>
> That's why this change is larger than it should.
>
> Webrev:
> https://bugs.openjdk.java.net/browse/JDK-8133470
> CR:
> http://cr.openjdk.java.net/~tschatzl/8133470/webrev/
>
> Testing:
> jprt
Mikael and Erik reminded me that it is not a good idea to move
PLABAllocator::allocate_aligned() into the .cpp file because CMS uses
only allocate_aligned(). This may result in performance degradation for
CMS, which is unwanted.
This required the introduction of a parNewGeneration.inline.hpp for the
method calling it. And some other code shuffling.
Here are new webrevs:
http://cr.openjdk.java.net/~tschatzl/8133470/webrev.0_to_1
http://cr.openjdk.java.net/~tschatzl/8133470/webrev.1
Testing:
jprt
Thanks,
Thomas
More information about the hotspot-gc-dev
mailing list