Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/standard' into dragonwell
Browse files Browse the repository at this point in the history
Summary: Merge upstream code

Test Plan: CICD

Reviewed-by: kuaiwei, yuleil

Issue: #26
  • Loading branch information
Accelerator1996 committed Nov 7, 2023
2 parents 9c16e89 + 9a5aeaa commit 47e5f39
Show file tree
Hide file tree
Showing 11 changed files with 1,760 additions and 21 deletions.
31 changes: 31 additions & 0 deletions .github/workflows/check_pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#
# Copyright (c) 2021 Alibaba Group Holding Limited. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Alibaba designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#

name: Dragonwell_17_check_pr_format

on: [pull_request]

jobs:
check_commit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: dragonwell-releng/check_commit_action@master
1,689 changes: 1,689 additions & 0 deletions .github/workflows/submit.yml

Large diffs are not rendered by default.

32 changes: 24 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,27 @@
# Welcome to the JDK!
![Dragonwell Logo](https://raw.githubusercontent.com/wiki/alibaba/dragonwell8/images/dragonwell_std_txt_horiz.png)

For build instructions please see the
[online documentation](https://openjdk.java.net/groups/build/doc/building.html),
or either of these files:
# Introduction

- [doc/building.html](doc/building.html) (html version)
- [doc/building.md](doc/building.md) (markdown version)
Over the years, Java has proliferated in Alibaba. Many applications are written in Java and many our Java developers have written more than one billion lines of Java code.

See <https://openjdk.java.net/> for more information about
the OpenJDK Community and the JDK.
Alibaba Dragonwell, as a downstream version of OpenJDK, is the OpenJDK implementation at Alibaba optimized for online e-commerce, financial, logistics applications running on 100,000+ servers. Alibaba Dragonwell is the engine that runs these distributed Java applications in extreme scaling.

Alibaba Dragonwell is clearly a "friendly fork" under the same licensing terms as the upstream OpenJDK project. Alibaba is committed to collaborate closely with OpenJDK community and intends to bring as many customized features as possible from Alibaba Dragonwell to the upstream.

# Using Alibaba Dragonwell



# Acknowledgement

Special thanks to those who have made contributions to Alibaba's internal JDK builds.

# Publications

Technologies included in Alibaba Dragonwell have been published in following papers

* ICSE'19:https://2019.icse-conferences.org/event/icse-2019-technical-papers-safecheck-safety-enhancement-of-java-unsafe-api

* ICPE'18: https://dl.acm.org/citation.cfm?id=3186295

* ICSE'18 SEIP https://www.icse2018.org/event/icse-2018-software-engineering-in-practice-java-performance-troubleshooting-and-optimization-at-alibaba
2 changes: 1 addition & 1 deletion make/autoconf/jdk-version.m4
Original file line number Diff line number Diff line change
Expand Up @@ -481,7 +481,7 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
[Set vendor version string @<:@not specified@:>@])])
if test "x$with_vendor_version_string" = xyes; then
AC_MSG_ERROR([--with-vendor-version-string must have a value])
elif [ ! [[ $with_vendor_version_string =~ ^[[:graph:]]*$ ]] ]; then
elif [ ! [[ $with_vendor_version_string =~ ^[[:print:]]*$ ]] ]; then
AC_MSG_ERROR([--with--vendor-version-string contains non-graphical characters: $with_vendor_version_string])
else
VENDOR_VERSION_STRING="$with_vendor_version_string"
Expand Down
4 changes: 4 additions & 0 deletions make/conf/github-actions.conf
Original file line number Diff line number Diff line change
Expand Up @@ -25,17 +25,21 @@

# Versions and download locations for dependencies used by GitHub Actions (GHA)

BOOT_JDK_VERSION=17
GTEST_VERSION=1.8.1
JTREG_VERSION=6.1+3

LINUX_X64_BOOT_JDK_FILENAME=openjdk-17.0.6_linux-x64_bin.tar.gz
LINUX_X64_BOOT_JDK_EXT=tar.gz
LINUX_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.6%2B10/OpenJDK17U-jdk_x64_linux_hotspot_17.0.6_10.tar.gz
LINUX_X64_BOOT_JDK_SHA256=a0b1b9dd809d51a438f5fa08918f9aca7b2135721097f0858cf29f77a35d4289

WINDOWS_X64_BOOT_JDK_FILENAME=openjdk-17.0.6_windows-x64_bin.zip
WINDOWS_X64_BOOT_JDK_EXT=zip
WINDOWS_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.6%2B10/OpenJDK17U-jdk_x64_windows_hotspot_17.0.6_10.zip
WINDOWS_X64_BOOT_JDK_SHA256=d544c4f00d414a1484c0a5c1758544f30f308c4df33f9a28bd4a404215d0d444

MACOS_X64_BOOT_JDK_FILENAME=openjdk-17.0.6_macos-x64_bin.tar.gz
MACOS_X64_BOOT_JDK_EXT=tar.gz
MACOS_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.6%2B10/OpenJDK17U-jdk_x64_mac_hotspot_17.0.6_10.tar.gz
MACOS_X64_BOOT_JDK_SHA256=faa2927584cf2bd0a35d2ac727b9f22725e23b2b24abfb3b2ac7140f4d65fbb4
5 changes: 2 additions & 3 deletions src/hotspot/share/opto/bytecodeInfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -156,18 +156,17 @@ bool InlineTree::should_inline(ciMethod* callee_method, ciMethod* caller_method,
int invoke_count = method()->interpreter_invocation_count();

assert(invoke_count != 0, "require invocation count greater than zero");
int freq = call_site_count / invoke_count;
double freq = (double)call_site_count / (double)invoke_count;

// bump the max size if the call is frequent
if ((freq >= InlineFrequencyRatio) ||
(call_site_count >= InlineFrequencyCount) ||
is_unboxing_method(callee_method, C) ||
is_init_with_ea(callee_method, caller_method, C)) {

max_inline_size = C->freq_inline_size();
if (size <= max_inline_size && TraceFrequencyInlining) {
CompileTask::print_inline_indent(inline_level());
tty->print_cr("Inlined frequent method (freq=%d count=%d):", freq, call_site_count);
tty->print_cr("Inlined frequent method (freq=%lf):", freq);
CompileTask::print_inline_indent(inline_level());
callee_method->print();
tty->cr();
Expand Down
3 changes: 1 addition & 2 deletions src/hotspot/share/runtime/globals.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -1441,9 +1441,8 @@ const intx ObjectAlignmentInBytes = 8;
product(intx, SpecTrapLimitExtraEntries, 3, EXPERIMENTAL, \
"Extra method data trap entries for speculation") \
\
develop(intx, InlineFrequencyRatio, 20, \
product(double, InlineFrequencyRatio, 0.25, DIAGNOSTIC, \
"Ratio of call site execution to caller method invocation") \
range(0, max_jint) \
\
product_pd(intx, InlineFrequencyCount, DIAGNOSTIC, \
"Count of call site execution necessary to trigger frequent " \
Expand Down
4 changes: 2 additions & 2 deletions test/jdk/sun/net/www/http/HttpClient/B8209178.java
Original file line number Diff line number Diff line change
Expand Up @@ -148,8 +148,8 @@ public void test(HttpServer server /*, HttpClient.Version version*/) throws IOEx
private void callHttpsServerThroughProxy(URI uri, Proxy p) throws IOException {
HttpsURLConnection urlConnection = (HttpsURLConnection) uri.toURL().openConnection(p);

urlConnection.setConnectTimeout(1000);
urlConnection.setReadTimeout(3000);
urlConnection.setConnectTimeout(10000);
urlConnection.setReadTimeout(30000);
urlConnection.setDoInput(true);
urlConnection.setDoOutput(true);
urlConnection.setRequestMethod("POST");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ public Map.Entry<Boolean, String> runTest() {
try {
// Get OCSP responses for non-root certs in the chain
Map<X509Certificate, byte[]> responseMap = srm.get(
CertStatusRequestType.OCSP, oReq, chain, 5000,
CertStatusRequestType.OCSP, oReq, chain, 20000,
TimeUnit.MILLISECONDS);

// There should be one entry in the returned map and
Expand Down Expand Up @@ -144,7 +144,7 @@ public Map.Entry<Boolean, String> runTest() {

try {
// Get OCSP responses for non-root certs in the chain
srm.get(CertStatusRequestType.OCSP_MULTI, oReq, chain, 5000,
srm.get(CertStatusRequestType.OCSP_MULTI, oReq, chain, 20000,
TimeUnit.MILLISECONDS);

// There should be two entries in the returned map and
Expand Down Expand Up @@ -183,7 +183,7 @@ public Map.Entry<Boolean, String> runTest() {
try {
// Get OCSP responses for non-root certs in the chain
Map<X509Certificate, byte[]> responseMap = srm.get(
CertStatusRequestType.OCSP_MULTI, oReq, chain, 5000,
CertStatusRequestType.OCSP_MULTI, oReq, chain, 20000,
TimeUnit.MILLISECONDS);

// There should be two entries in the returned map and
Expand Down Expand Up @@ -225,7 +225,7 @@ public Map.Entry<Boolean, String> runTest() {

try {
// Get OCSP responses for non-root certs in the chain
srm.get(CertStatusRequestType.OCSP_MULTI, oReq, chain, 5000,
srm.get(CertStatusRequestType.OCSP_MULTI, oReq, chain, 20000,
TimeUnit.MILLISECONDS);

// There should be two entries in the returned map and
Expand Down
2 changes: 1 addition & 1 deletion test/lib-test/jdk/test/whitebox/vm_flags/IntxTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
import jdk.test.lib.Platform;
public class IntxTest {
private static final String FLAG_NAME = "OnStackReplacePercentage";
private static final String FLAG_DEBUG_NAME = "InlineFrequencyCount";
private static final String FLAG_DEBUG_NAME = "BciProfileWidth";
private static final long COMPILE_THRESHOLD = VmFlagTest.WHITE_BOX.getIntxVMFlag("CompileThreshold");
private static final Long[] TESTS = {0L, 100L, (long)(Integer.MAX_VALUE>>3)*100L};

Expand Down
1 change: 1 addition & 0 deletions version.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
17.0.8.0.9+7-GA

0 comments on commit 47e5f39

Please sign in to comment.