RFR: Cleanup NumberSeq additions [v2]
William Kemper
wkemper at openjdk.org
Thu Apr 27 20:48:57 UTC 2023
On Thu, 27 Apr 2023 20:20:53 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:
>> I have been looking into how to decrease our upstream exposure for `NumberSeq` changes, and it seems to be not solvable in an easy way. Normally, I would add `AbsSeq::add(AbsSeq& other)` methods and get to that from `HdrSeq::add(HdrSeq& other)`, and that almost works. The remaining bit is figuring out the decaying average/variance thingie.
>>
>> I spent an hour trying to come up with easily provable equations for _combining_ the decaying average/variance. The decaying average is somewhat easy, although there are boundary problems (decaying average treats 0-th element without adjustments, which requires remembering the `_last` element to compensate). Decaying variance looks remarkably scary in the few of my approaches.
>>
>> If we enter with current code upstream, it would be the uphill battle to implemented decays and prove they work. So instead, I took the alternative approach of doing everything inside Shenandoah code, except the decays. This reverts `numberSeq.*` to upstream state.
>>
>> Additional testing:
>> - [x] Linux x86_64 fastdebug `hotspot_gc_shenandoah`
>> - [x] Linux AArch64 fastdebug `hotspot_gc_shenandoah`
>> - [ ] GitFarm
>
> Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision:
>
> Clear the fields
Changes requested by wkemper (Committer).
src/hotspot/share/gc/shenandoah/shenandoahNumberSeq.cpp line 124:
> 122: }
> 123:
> 124: void HdrSeq::add(HdrSeq& other) {
Can we make `other` be a `const` reference? just to make it clear who is getting added to who.
-------------
PR Review: https://git.openjdk.org/shenandoah/pull/268#pullrequestreview-1404842044
PR Review Comment: https://git.openjdk.org/shenandoah/pull/268#discussion_r1179653220
More information about the shenandoah-dev
mailing list