Future of CMS
Jon Masamitsu
jon.masamitsu at oracle.com
Fri Jun 17 16:21:23 UTC 2016
On 6/16/2016 1:33 PM, Jungwoo Ha wrote:
> I open to any different ways that is reasonable.
> What do you have in mind?
I wanted to look at a specific example because different
solutions would apply to different situations.
Generally, readability is important to us for a change
like this. Just put yourself in our position. If you didn't
work with CMS code, why have to look at it. Some
cases, of course, will be unavoidable.
Jon
>
> On Wed, Jun 15, 2016 at 2:00 PM, Jon Masamitsu
> <jon.masamitsu at oracle.com <mailto:jon.masamitsu at oracle.com>> wrote:
>
> Jungwoo,
>
> Could you send an example of something that would
> go under INCLUDE_CMS_GC? We might suggest an
> alternative. Having macros in the sources sometimes
> make it harder to read.
>
> Thanks.
>
> Jon
>
>
> On 06/15/2016 11:29 AM, Jungwoo Ha wrote:
>> Sounds reasonable to me.
>> CMS uses quite a bit of common code (ParNew, DefNew,
>> CardTable..., JIT for wb)
>> If we have the build flag, that means we have a macro (e.g.
>> INCLUDE_CMS_GC).
>> It would be great if the common part code is wrapped with the
>> macro, external contributor can submit without the
>> pre-integration test.
>>
>>
>> On Wed, Jun 15, 2016 at 1:43 AM, Volker Simonis
>> <volker.simonis at gmail.com <mailto:volker.simonis at gmail.com>> wrote:
>>
>> On Tue, Jun 14, 2016 at 11:50 PM, Jungwoo Ha <jwha at google.com
>> <mailto:jwha at google.com>> wrote:
>> >>
>> >> But seriously: SAP is supporting CMS and will probably do
>> so for quite a
>> >> long time (simply because we do support old Java releases
>> for a very long
>> >> time).
>> >>
>> >>
>> >> Completely removing CMS from the HotSpot code base may
>> increase these
>> >> support costs considerably for us.
>> >>
>> >> Do you plan to really delete the sources from the repos or
>> do you only
>> >> plan to disable it at build time?
>> >>
>> >>
>> >> I just don't know how this is going to play out. I expect
>> that the
>> >> OpenJDK community
>> >> will want the sources to stay. In such a case Oracle would
>> want them
>> >> segregated sufficiently
>> >> that we don't build the the sources.
>> >>
>> >> I think only disable it at build time would make it easier
>> for us and
>> >> others to still support it in the future. But in that case
>> we really have to
>> >> come up with a better development model which would allow
>> external
>> >> developers to directly push CMS changes (much like ppc64
>> or aarch64
>> >> changes). Everything else would be a real PITA.
>> >>
>> >>
>> >> I think some model like ppc64/aarch64 would be a good way
>> to go. That
>> >> would be a
>> >> nice side effect of this change. You know better than I on
>> how to get
>> >> there.
>> >
>> >
>> > We also need to support CMS perhaps for a long time. I like
>> the idea of
>> > segregating it, and have more external developers
>> contribute to it.
>> > Is there any document or can anyone explain to me how
>> ppc64/arch64 works?
>> > In such case, who is responsible for code review, building,
>> testing, release
>> > and so on?
>>
>> There's nothing special in the way the ppc64/arch64
>> projects/ports
>> work. They are integral part of hotspot/openjdk and
>> contributing to
>> them is regulated by the very same rules.
>>
>> The only thing that we've manged to somehow mitigate for
>> ppc64/arch64
>> is the pain that external (i.e. non-Oracle) committers are
>> still not
>> able to directly push to the hotspot repositories because of
>> Oracles
>> inability/unwillingness to open up their infamous JPRT
>> pre-integration
>> test system. So as an exception to this restriction, we are now
>> allowed to push changes directly, if they only touch files in
>> hotspot/src/cpu/{ppc,aarch64}. This helps a little bit but
>> still not
>> always, because many changes still touch shared code (e.g. if
>> they
>> come with a regression test which is in hotspot/test we
>> already need
>> an Oracle sponsor even if we're committers and the change is
>> fully
>> reviewed).
>>
>> Building and testing the ports is the exclusive duty of the
>> corresponding projects. So for example we at SAP have nightly
>> builds
>> of all relevant OpenJDK repositories on our porting platforms
>> and I'm
>> pretty sure Red Hat has the same for aarch64.
>>
>> Regarding CMS, I think the idea is that the CMS sources should be
>> separated into their own directory with the same relaxed
>> checkin rules
>> like the ones for ppc64/arch64. But again this would only help a
>> little bit, because there will still remain quite some
>> supporting CMS
>> code in shared places (e.g. runtime, compilers, etc..).
>>
>> Also, building CMS will probably be controlled by a
>> build-time/configure option (i.e. --use-cms) which will be
>> switched
>> off by default. So it would be our duty to build with these
>> option
>> turned on and test the resulting builds.
>>
>> Regards,
>> Volker
>>
>>
>> >
>>
>>
>>
>>
>> --
>> Jungwoo Ha | Java Platform Team | jwha at google.com
>> <mailto:jwha at google.com>
>>
>
>
>
>
> --
> Jungwoo Ha | Java Platform Team | jwha at google.com <mailto:jwha at google.com>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20160617/5f5722b5/attachment.htm>
More information about the hotspot-gc-dev
mailing list