openj9 icon indicating copy to clipboard operation
openj9 copied to clipboard

Improve x86 inline object allocations

Open 0xdaryl opened this issue 1 year ago • 1 comments

  • Misc. x86 allocation path improvements
  • Remove obsolete TR_EnableNewAllocationProfiling code
  • Misc. x86 allocation path improvements
  • Cleanup x86 object initialization path
  • Move x86 inlined allocation verification out of line
  • Move off-heap dataAddr allocation into a separate function
  • Use ScratchRegisterManager in x86 inline allocations
  • Misc. code cleanup for readability
  • Remove allocated object cache line alignment code on Power and x86
  • Remove deprecated shouldAlignTLHAlloc() checks on TR::Nodes
  • Compare variable array sizes as 32-bits for x86 inline allocations
  • Add knobs to disable x86 object allocation features
  • Misc. readability and formatting improvements to x86 inline allocation
  • Perform zero initialization of TLH objects when batch clearing enabled

0xdaryl avatar May 17 '24 14:05 0xdaryl

Jenkins test sanity.functional,sanity.openjdk xlinux,win jdk21

0xdaryl avatar May 17 '24 14:05 0xdaryl

Jenkins test sanity.functional,sanity.openjdk xlinux,win jdk21

0xdaryl avatar May 21 '24 17:05 0xdaryl

I think this PR build filled the xlinux machines with cores and took them offline.

pshipton avatar May 23 '24 18:05 pshipton

I had reviewed this before, but added one more minor comment/request. I have also asked @ymanton to review this change and will consider a merge after you reply to the comment and Younes gives his review approval.

vijaysun-omr avatar May 27 '24 14:05 vijaysun-omr

Jenkins compile xlinux jdk17

0xdaryl avatar May 28 '24 12:05 0xdaryl

Jenkins test sanity.functional,sanity.openjdk xlinux,win jdk21

vijaysun-omr avatar May 29 '24 17:05 vijaysun-omr

I'll wait for @ymanton to formally approve this, and the checks to pass, before I merge.

vijaysun-omr avatar May 29 '24 23:05 vijaysun-omr

Since we want to keep all codegens aware of key changes in one, I thought I'd mention @zl-wang @r30shah and @knn-k here so that they can consider whatever feels relevant to their platforms

vijaysun-omr avatar May 30 '24 12:05 vijaysun-omr

Going to take a look at this today. Tagging @ehsankianifar as he is working on fixing the issue we are seeing on Z.

r30shah avatar May 30 '24 13:05 r30shah

The bulk of the work in this PR addresses technical debt issues, as this code became very difficult to understand and make changes to over time. The code was refactored, dead code eliminated, comments added, more meaningful variable and function names created, etc. Hopefully it is in a better state now.

In terms of pure enhancements, the main contribution was to improve the performance of zero initializing shorter arrays with better instruction sequences, and providing knobs to turn off features like TLH prefetching.

0xdaryl avatar May 30 '24 13:05 0xdaryl