RFR: 8313708: NMT: cleanup _mst_marker

Thomas Stuefe stuefe at openjdk.org
Thu Aug 31 09:43:03 UTC 2023


On Wed, 23 Aug 2023 08:43:36 GMT, Johan Sjölen <jsjolen at openjdk.org> wrote:

>> While learning the NMT code I came across _mst_marker and I don't really like how it combines 16bit index and 16bit position into single 32bit mst_marker using bit sizzling.
>> 
>> Consequently, right now we need the following 3 APIs: build_marker(), bucket_idx_from_marker(), pos_idx_from_marker() to support this. They are really not adding any value, in my opinion, and in fact obfuscate the code.
>> 
>> I'd like to propose that we simplify the code and pass a struct value (as suggested by Thomas) which hides away the 2 individual fields that are implementation detail.
>
> src/hotspot/share/services/mallocSiteTable.cpp line 118:
> 
>> 116:  *  Under any of above circumstances, caller should handle the situation.
>> 117:  */
>> 118: MallocSite* MallocSiteTable::lookup_or_add(const NativeCallStack& key, uint16_t* bucket_idx, uint16_t* bucket_pos, MEMFLAGS flags) {
> 
> Could it take a `BucketInfo*` instead of the two separate pointers?

I'd prefer BucketInfo* too

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/15145#discussion_r1302903364


More information about the hotspot-runtime-dev mailing list