Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement the functionalities of Foreign Linker API #12412

Closed
ChengJin01 opened this issue Apr 12, 2021 · 1 comment
Closed

Implement the functionalities of Foreign Linker API #12412

ChengJin01 opened this issue Apr 12, 2021 · 1 comment
Assignees
Labels
comp:vm project:panama Used to track Project Panama related work
Milestone

Comments

@ChengJin01
Copy link

ChengJin01 commented Apr 12, 2021

The issue is created to keep track of all PRs specific to the new feature in specified in JEP389 (Incubator) which also covers the failing jtreg test suites originally raised at #11195 and JEP419 (Second Incubator) at #14036.

[1] DownCall
(1) JEP389 & JEP419 Phase 1: primitive type support on X86_64 & Aarch64 (ARM8 is Aarch64 as confirmed by Joe), which includes Linux/x86_64, Windows/x86_64 and Linux/Aarch64.
ibmruntimes/openj9-openjdk-jdk16#46 (JDK16)
ibmruntimes/openj9-openjdk-jdk17#36 (JDK17)
ibmruntimes/openj9-openjdk-jdk#314 (JDKnext)
#12413 (JEP389 in OpenJ9) and #14077 (JEP419 in OpenJ9)

(2) JEP389 & JEP419 Phase 2 & 3: struct support on arguments and return value.
#13315 (OpenJ9) & eclipse-omr/omr#6287 (OMR)

(3) JEP389 & JEP419 Phase 4: support on PPC64/s390x, which includes Linux/PPC64LE, AIX/PPC64, and Linux/s390.
ibmruntimes/openj9-openjdk-jdk16#80 (JDK16)
ibmruntimes/openj9-openjdk-jdk17#23 (JDK17)
ibmruntimes/openj9-openjdk-jdk18#3 (JDK18)
ibmruntimes/openj9-openjdk-jdk#356 (JDK next)

[2] UpCall
Design and Implementation of Foreign Linker API: Upcall at #15068
PRs in OpenJ9:
#15069 (Part 1: creating the upcall stub in java)
#15307 (Part 1/JDK19+: creating the upcall stub in java)
#15083 (Part 1: creating the upcall stub in native)
#15308 (Part 2&3: generating thunk with the encoded signature)
#15309 (Part 4: dispatcher & the transition code)
#15310 (Enable downcall & upcall test suites for Java 17/18/19)

PRs in OpenJDK plus the resolved default library loading issue on AIX at #13679:
ibmruntimes/openj9-openjdk-jdk17#112 (JDK17)
ibmruntimes/openj9-openjdk-jdk18#57 (JDK18)
ibmruntimes/openj9-openjdk-jdk19#5 & ibmruntimes/openj9-openjdk-jdk19#26 (JDK19)
ibmruntimes/openj9-openjdk-jdk#457 & ibmruntimes/openj9-openjdk-jdk#487 (JDKnext)
ibmruntimes/openj9-openjdk-jdk20#23 & ibmruntimes/openj9-openjdk-jdk#559 (JEP434/Second Preview)

Thunk generation code on supported platforms:
[1] Power (AIX & Linux): #15308
[2] S390x (Linux): #15596
[3] Aarch64 (Linux & macOS): #15744
[4] x86_64 (Linux, Win and macOS): #15926
[5] Function stubs on z/OS: #15873

Bug fixes in jtreg tests:
VM:
(1) #15749 (supporting the session/scope in the same downcall handler in the multithreading environment)
(2) #15778 (supporting variadic functions in downcall)
(3) #16252 (replacing libffi/Aarch64 with the latest version in Github)
(4) #16260 (resolving the OOM issue with thunk allocation on zLinux with small page size)
(5) #16427 (Remove PUSH_OBJECT_IN_SPECIAL_FRAME in the upcall dispatcher)

Thunk:
Win/X86: #16344
Aarch64: #16332 & #16362 (fix in libffi/Aarch64)
zLinux: #16326

[3] VaList APIs on Power & zLinux in OpenJDK (no extra code required in OpenJ9)
ibmruntimes/openj9-openjdk-jdk#488: Power (Linux & AIX)
ibmruntimes/openj9-openjdk-jdk#509 : zLinux
ibmruntimes/openj9-openjdk-jdk19#27: Power (Linux & AIX)
ibmruntimes/openj9-openjdk-jdk19#38: zLinux
ibmruntimes/openj9-openjdk-jdk17#155: Power & zLinux

Note: the VaList APIs on x86_64 and Aarch64 is already offered in OpenJDK.

FYI: @tajila, @pshipton, @DanHeidinga

@tajila tajila added comp:vm project:panama Used to track Project Panama related work labels Apr 12, 2021
@tajila tajila assigned tajila and ChengJin01 and unassigned tajila Apr 12, 2021
@tajila tajila added this to the Release 0.28 (Java 17) milestone Apr 12, 2021
@ChengJin01 ChengJin01 changed the title Implement the functionality of JEP389: Foreign Linker API (Incubator) Implement the functionality of Foreign Linker API Dec 6, 2021
@ChengJin01 ChengJin01 changed the title Implement the functionality of Foreign Linker API Implement the functionalities of Foreign Linker API Dec 6, 2021
ChengJin01 pushed a commit to ChengJin01/openj9-openjdk-jdk that referenced this issue Sep 23, 2022
The changes aim to enable the VaList support on Power
(Linux & AIX) by implementing the VaList specific APIs
in OpenJDK given the underlying code has been offered
in OpenJ9.

Note:
The PR is part of FFI downcall & upcall work at
eclipse-openj9/openj9#12412 and eclipse-openj9/openj9#15068.

Signed-off-by: Cheng Jin <jincheng@ca.ibm.com>
ChengJin01 pushed a commit to ChengJin01/openj9-openjdk-jdk19 that referenced this issue Sep 23, 2022
The changes aim to enable the VaList support on Power
(Linux & AIX) by implementing the VaList specific APIs
in OpenJDK given the underlying code has been offered
in OpenJ9.

Note:
The PR is part of FFI downcall & upcall work at
eclipse-openj9/openj9#12412 and eclipse-openj9/openj9#15068.

Signed-off-by: Cheng Jin <jincheng@ca.ibm.com>
ChengJin01 pushed a commit to ChengJin01/openj9-openjdk-jdk that referenced this issue Oct 5, 2022
The changes aim to enable the VaList support on zLinux
by implementing the VaList specific APIs in OpenJDK
given the underlying code has been offered in OpenJ9.

Note:
The PR is part of FFI downcall & upcall work at
eclipse-openj9/openj9#12412 and eclipse-openj9/openj9#15068.

Signed-off-by: Cheng Jin <jincheng@ca.ibm.com>
ChengJin01 pushed a commit to ChengJin01/openj9-openjdk-jdk19 that referenced this issue Oct 17, 2022
The changes aim to enable the VaList support on zLinux
by implementing the VaList specific APIs in OpenJDK
given the underlying code has been offered in OpenJ9.

Note:
The PR is part of FFI downcall & upcall work at
eclipse-openj9/openj9#12412 and eclipse-openj9/openj9#15068.

Signed-off-by: Cheng Jin <jincheng@ca.ibm.com>
ChengJin01 pushed a commit to ChengJin01/openj9-openjdk-jdk19 that referenced this issue Oct 17, 2022
The changes aim to enable the VaList support on zLinux
by implementing the VaList specific APIs in OpenJDK
given the underlying code has been offered in OpenJ9.

Note:
The PR is part of FFI downcall & upcall work at
eclipse-openj9/openj9#12412 and eclipse-openj9/openj9#15068.

Signed-off-by: Cheng Jin <jincheng@ca.ibm.com>
ChengJin01 pushed a commit to ChengJin01/openj9-openjdk-jdk that referenced this issue Oct 17, 2022
The changes aim to enable the VaList support on zLinux
by implementing the VaList specific APIs in OpenJDK
given the underlying code has been offered in OpenJ9.

Note:
The PR is part of FFI downcall & upcall work at
eclipse-openj9/openj9#12412 and eclipse-openj9/openj9#15068.

Signed-off-by: Cheng Jin <jincheng@ca.ibm.com>
ChengJin01 pushed a commit to ChengJin01/openj9-openjdk-jdk18 that referenced this issue Oct 21, 2022
The changes aim to enable the VaList support on Power
(AIX & Linux) and zLinux by implementing the VaList
specific APIs in OpenJDK given the underlying code has
been offered in OpenJ9.

Note:
The PR is part of FFI downcall & upcall work at
eclipse-openj9/openj9#12412 and eclipse-openj9/openj9#15068.

Signed-off-by: Cheng Jin <jincheng@ca.ibm.com>
ChengJin01 pushed a commit to ChengJin01/openj9-openjdk-jdk18 that referenced this issue Oct 21, 2022
The changes aim to enable the VaList support on Power
(AIX & Linux) and zLinux by implementing the VaList
specific APIs in OpenJDK given the underlying code has
been offered in OpenJ9.

Note:
The PR is part of FFI downcall & upcall work at
eclipse-openj9/openj9#12412 and eclipse-openj9/openj9#15068.

Signed-off-by: Cheng Jin <jincheng@ca.ibm.com>
ChengJin01 pushed a commit to ChengJin01/openj9-openjdk-jdk17 that referenced this issue Oct 21, 2022
The changes aim to enable the VaList support on Power
(AIX & Linux) and zLinux by implementing the VaList
specific APIs in OpenJDK given the underlying code has
been offered in OpenJ9.

Note:
The PR is part of FFI downcall & upcall work at
eclipse-openj9/openj9#12412 and eclipse-openj9/openj9#15068.

Signed-off-by: Cheng Jin <jincheng@ca.ibm.com>
ChengJin01 pushed a commit to ChengJin01/openj9-openjdk-jdk19 that referenced this issue Oct 22, 2022
The changes add Power & zLinux support to those FFI
related jtreg test suites to ensure they are executed
on all supported platforms.

Note:
The PR is part of FFI downcall & upcall work at
eclipse-openj9/openj9#12412 and eclipse-openj9/openj9#15068.

Signed-off-by: Cheng Jin <jincheng@ca.ibm.com>
ChengJin01 pushed a commit to ChengJin01/openj9-openjdk-jdk that referenced this issue Oct 22, 2022
The changes add Power & zLinux support to those FFI
related jtreg test suites to ensure they are executed
on all supported platforms.

Note:
The PR is part of FFI downcall & upcall work at
eclipse-openj9/openj9#12412 and eclipse-openj9/openj9#15068.

Signed-off-by: Cheng Jin <jincheng@ca.ibm.com>
ChengJin01 pushed a commit to ChengJin01/openj9-openjdk-jdk17 that referenced this issue Oct 24, 2022
The changes aim to enable the VaList support on Power
(AIX & Linux) and zLinux by implementing the VaList
specific APIs in OpenJDK given the underlying code has
been offered in OpenJ9.

Note:
The PR is part of FFI downcall & upcall work at
eclipse-openj9/openj9#12412 and eclipse-openj9/openj9#15068.

Signed-off-by: Cheng Jin <jincheng@ca.ibm.com>
ChengJin01 pushed a commit to ChengJin01/openj9-openjdk-jdk17 that referenced this issue Oct 24, 2022
The changes aim to enable the VaList support on Power
(AIX & Linux) and zLinux by implementing the VaList
specific APIs in OpenJDK given the underlying code has
been offered in OpenJ9.

Note:
The PR is part of FFI downcall & upcall work at
eclipse-openj9/openj9#12412 and eclipse-openj9/openj9#15068.

Signed-off-by: Cheng Jin <jincheng@ca.ibm.com>
ChengJin01 pushed a commit to ChengJin01/openj9-openjdk-jdk17 that referenced this issue Oct 25, 2022
The changes aim to enable the VaList support on Power
(AIX & Linux) and zLinux by implementing the VaList
specific APIs in OpenJDK given the underlying code has
been offered in OpenJ9.

Note:
The PR is part of FFI downcall & upcall work at
eclipse-openj9/openj9#12412 and eclipse-openj9/openj9#15068.

Signed-off-by: Cheng Jin <jincheng@ca.ibm.com>
ChengJin01 pushed a commit to ChengJin01/openj9-openjdk-jdk17 that referenced this issue Oct 27, 2022
The changes aim to enable the VaList support on Power
(AIX & Linux) and zLinux by implementing the VaList
specific APIs in OpenJDK given the underlying code has
been offered in OpenJ9.

Note:
The PR is part of FFI downcall & upcall work at
eclipse-openj9/openj9#12412 and eclipse-openj9/openj9#15068.

Signed-off-by: Cheng Jin <jincheng@ca.ibm.com>
ChengJin01 pushed a commit to ChengJin01/openj9 that referenced this issue Oct 27, 2022
The changes backport the same test suites in JEP424(JDK19)
with the required APIs in JEP389/412(JDK17).

Note:
The PR is part of FFI downcall & upcall work at
eclipse-openj9#12412 and eclipse-openj9#15068.

Signed-off-by: Cheng Jin <jincheng@ca.ibm.com>
ChengJin01 pushed a commit to ChengJin01/openj9-openjdk-jdk17 that referenced this issue Nov 3, 2022
The changes aim to enable the VaList support on Power
(AIX & Linux) and zLinux by implementing the VaList
specific APIs in OpenJDK given the underlying code has
been offered in OpenJ9.

Note:
The PR is part of FFI downcall & upcall work at
eclipse-openj9/openj9#12412 and eclipse-openj9/openj9#15068.

Signed-off-by: Cheng Jin <jincheng@ca.ibm.com>
ChengJin01 pushed a commit to ChengJin01/openj9-openjdk-jdk17 that referenced this issue Nov 30, 2022
The changes add Power & zLinux support to those FFI
related jtreg test suites to ensure they are executed
on all supported platforms.

Note:
The PR is part of FFI downcall & upcall work at
eclipse-openj9/openj9#12412 and eclipse-openj9/openj9#15068.

Signed-off-by: Cheng Jin <jincheng@ca.ibm.com>
@pshipton
Copy link
Member

This issue seems completed, all the linked PRs are merged. jdk20 work continues via other issues and PRs in the jdk20 milestone plan. I'll close this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
comp:vm project:panama Used to track Project Panama related work
Projects
None yet
Development

No branches or pull requests

3 participants