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

[Wisp] Enable Wisp feature #113

Closed
zhengxiaolinX opened this issue Jul 22, 2020 · 5 comments
Closed

[Wisp] Enable Wisp feature #113

zhengxiaolinX opened this issue Jul 22, 2020 · 5 comments
Assignees
Labels
enhancement New feature or request

Comments

@zhengxiaolinX
Copy link
Contributor

Description
Wisp is a user-transparent coroutine implementation based on the Java platform. Users can smoothly run their applications on Wisp without changing one line of Java code by using the -XX:+UseWisp2 JVM option.

Expected behavior
Use the JVM option -XX:+UseWisp2 to enable Wisp feature, which supports Linux x64 platform only

Execution environment

  • OS and version: Linux
  • CPU model: x64
@zhengxiaolinX zhengxiaolinX self-assigned this Jul 22, 2020
zhengxiaolinX added a commit to dragonwell-project/dragonwell8_hotspot that referenced this issue Jul 22, 2020
Summary:
- From http://hg.openjdk.java.net/mlvm/mlvm/hotspot/file/4cd7d914b0e3/coro-simple.patch.
- Resolve trivial conflicts in: systemDictionary.hpp, thread.cpp, debug.hpp.
- Add an option "EnableCoroutine".

Test Plan: run jtreg tests

Reviewed-by: yuleil, shiyuexw, sanhong

Issue: dragonwell-project/dragonwell8#113
zhengxiaolinX added a commit to dragonwell-project/dragonwell8_jdk that referenced this issue Jul 22, 2020
Summary:
- From http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/93a6c619b0ca/coro-simple.patch
- Add 'EnableCoroutine' option to test/java/dyn/CoroutineTest.java

Test Plan: test/java/dyn/CoroutineTest.java jtreg test

Reviewed-by: yuleil, shiyuexw, sanhong

Issue: dragonwell-project/dragonwell8#113
zhengxiaolinX added a commit to dragonwell-project/dragonwell8_hotspot that referenced this issue Jul 23, 2020
Summary: Bug fixes for JKU coroutine
The JKU patch has several flaws:
1. When using JDI to debug coroutine, it may crash because the _switchTo intrinsic entry will change to the interpreter one, which is a SHOULD_NOT_REACH_HERE().
2. Change miscellaneous thread-local data structures to coroutine-local level during _switchTo phase.
3. Disable making zombies of _switchTo alike intrinsic things.
4. Fix multiple mem leak problems for coroutine data structures.
5. Create an empty JNIHandleBlock for the first Java call.
6. The stack layout of Coroutine doesn't align with 16 bytes on x86_64 which will cause some float point instructions to throw an sig fault.
7. etc.

Test Plan: Coroutine tests

Reviewed-by: yuleil, shiyuexw, sanhong

Issue: dragonwell-project/dragonwell8#113
@sluongng
Copy link

Will this be ported to dragonwell11 as well?

@zhengxiaolinX
Copy link
Contributor Author

Will this be ported to dragonwell11 as well?

Might be months later. Please stay tuned :)

@sluongng
Copy link

Might be a good idea to add documentation around Wisp usages and Wisp vs Wisp2 as well.

@zhengxiaolinX
Copy link
Contributor Author

Might be a good idea to add documentation around Wisp usages and Wisp vs Wisp2 as well.

Thanks for your advice. We will edit wiki pages after the release and instead, offer Wisp2 only.

zhengxiaolinX added a commit to dragonwell-project/dragonwell8_jdk that referenced this issue Jul 29, 2020
Summary: Add JDK code of the Wisp implementation

Test Plan: all Wisp tests

Reviewed-by: yuleil, shiyuexw, sanhong

Issue: dragonwell-project/dragonwell8#113
zhengxiaolinX added a commit to dragonwell-project/dragonwell8_hotspot that referenced this issue Jul 29, 2020
Summary: Add Hotspot code of the Wisp implementation

Test Plan: all Wisp tests

Reviewed-by: yuleil, shiyuexw, sanhong

Issue: dragonwell-project/dragonwell8#113
zhengxiaolinX added a commit to dragonwell-project/dragonwell8_hotspot that referenced this issue Jul 30, 2020
Summary: Fix build failure of the two platforms

Test Plan: Successfully generate builds of the two platforms

Reviewed-by: yuleil, shiyuexw, sanhong

Issue: dragonwell-project/dragonwell8#113
zhengxiaolinX added a commit to dragonwell-project/dragonwell8_jdk that referenced this issue Jul 30, 2020
Summary: Add -XX:+UnlockExperimentalVMOptions to all wisp tests

Test Plan: all Wisp tests

Reviewed-by: yuleil, shiyuexw, sanhong

Issue: dragonwell-project/dragonwell8#113
zhengxiaolinX added a commit to dragonwell-project/dragonwell8_hotspot that referenced this issue Jul 30, 2020
Summary: Change the Wisp flag to experimental

Test Plan: all Wisp tests

Reviewed-by: yuleil, shiyuexw, sanhong

Issue: dragonwell-project/dragonwell8#113
@zhengxiaolinX
Copy link
Contributor Author

Wisp code check-in finished, issue closed.

zhengxiaolinX added a commit to dragonwell-project/dragonwell8_jdk that referenced this issue Aug 3, 2020
Summary: as the title

Test Plan: On Windows platform: TestAggressiveHeap.java, TestExcessGCLockerCollections.java and ThreadCpuTimesDeadlock.java

Reviewed-by: yuleil, shiyuexw

Issue: dragonwell-project/dragonwell8#113
@zhengxiaolinX zhengxiaolinX added the enhancement New feature or request label Aug 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants