Skip to content

8381531: [lworld] Startup performance regression with Valhalla caused by Method::link_method#2357

Draft
matias9927 wants to merge 13 commits into
openjdk:lworldfrom
matias9927:sig_cc_8381531
Draft

8381531: [lworld] Startup performance regression with Valhalla caused by Method::link_method#2357
matias9927 wants to merge 13 commits into
openjdk:lworldfrom
matias9927:sig_cc_8381531

Conversation

@matias9927
Copy link
Copy Markdown
Contributor

@matias9927 matias9927 commented Apr 22, 2026

The method Method::link_method() has a notable impact on overhead and results in notable performance regressions from mainline. The source of this performance difference seems to be the aggressive calculation and recalculation of signature calling conventions for methods. This patch introduces the possibility for methods to inherit adapters from super methods so long as its calling conventions are compatible with the calling conventions introduced by local interfaces.

This design reports a x-y% improvment.

Verified with tier 1-5 tests.



Progress

  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue
  • Change must be properly reviewed (1 review required, with at least 1 Committer)

Issue

  • JDK-8381531: [lworld] Startup performance regression with Valhalla caused by Method::link_method (Bug - P3)

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.org/valhalla.git pull/2357/head:pull/2357
$ git checkout pull/2357

Update a local copy of the PR:
$ git checkout pull/2357
$ git pull https://git.openjdk.org/valhalla.git pull/2357/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 2357

View PR using the GUI difftool:
$ git pr show -t 2357

Using diff file

Download this PR as a diff file:
https://git.openjdk.org/valhalla/pull/2357.diff

@bridgekeeper
Copy link
Copy Markdown

bridgekeeper Bot commented Apr 22, 2026

👋 Welcome back matsaave! A progress list of the required criteria for merging this PR into lworld will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk
Copy link
Copy Markdown

openjdk Bot commented Apr 22, 2026

❗ This change is not yet ready to be integrated.
See the Progress checklist in the description for automated requirements.

ResourceMark rm;
bool new_entry = false;

// Inherit adapter from super method as long as it is compatible with adapters from local interfaces
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we wrap this in a if (!method->is_static()) {...} block?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants