8376813: [lworld] Add print for dummy field reused as null-marker#2001
8376813: [lworld] Add print for dummy field reused as null-marker#2001jsikstro wants to merge 2 commits intoopenjdk:lworldfrom
Conversation
|
👋 Welcome back jsikstro! A progress list of the required criteria for merging this PR into |
|
@jsikstro This change now passes all automated pre-integration checks. ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details. After integration, the commit message for the final commit will be: You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been 116 new commits pushed to the
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details. As you do not have Committer status in this project an existing Committer must agree to sponsor your change. Possible candidates are the reviewers of this PR (@fparain, @Arraying) but any other Committer may sponsor as well. ➡️ To flag this PR as ready for integration with the above commit message, type |
Webrevs
|
fparain
left a comment
There was a problem hiding this comment.
Looks good to me.
It's unfortunate that the null marker offset is stored in the FieldLayoutBuilder and not in FieldLayout, this would have prevented adding an argument to the print method.
Arraying
left a comment
There was a problem hiding this comment.
Thanks for the changes, this makes debugging and developing a lot easier. One thing that came to mind is that we have a bunch of flat array specific printing logic in e.g. FlatArrayKlass::oop_print_value_on. As a possible extension, would we ever want to convey such information in the array itself, rather than the field? For example when debug-printing the human-version of the array header to indicate the null marker is reused as the dummy field (when applicable)?
I'm not entirely sure of how arrays work so I'd need to spend some time on figuring that out before giving a better answer. When trying to understand emtpy InlineKlasses, it wasn't immediately clear to me that the empty dummy-field was reused as the null-marker, so I'd say anything we can do to convey that more clearly is something we'd want to do. |
|
Thank you for the reviews everyone! I reran tier1-2 on the tip of lworld, which is green. /integrate |
|
/sponsor |
|
Going to push as commit ff2e209.
Your commit was automatically rebased without conflicts. |
Hello,
Right now it's not clear that the dummy field that is injected into empty inline klasses can be/is reused for the null-marker when looking at the printed layout from -XX:+PrintInlineLayout. I suggest we enhance this print to indicate if the dummy field has been reused for the null-marker.
I've tested that the added comment in the print is there when nullability is turned on (default), and not there when turned off (
-XX:-UseNullableValueFlattening -XX:-UseNullableNonAtomicValueFlattening).Testing:
Progress
Issue
Reviewers
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/valhalla.git pull/2001/head:pull/2001$ git checkout pull/2001Update a local copy of the PR:
$ git checkout pull/2001$ git pull https://git.openjdk.org/valhalla.git pull/2001/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 2001View PR using the GUI difftool:
$ git pr show -t 2001Using diff file
Download this PR as a diff file:
https://git.openjdk.org/valhalla/pull/2001.diff
Using Webrev
Link to Webrev Comment