!594 Sync master to openEuler-22.03-LTS-SP3
From: @zhangyunbo7 Reviewed-by: @kuenking111 Signed-off-by: @kuenking111
This commit is contained in:
commit
0598a80404
72
8137165-Tests-fail-in-SR_Handler-because-thread-is-n.patch
Normal file
72
8137165-Tests-fail-in-SR_Handler-because-thread-is-n.patch
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
From 11116ea71b22635302759817b43c555ded53f882 Mon Sep 17 00:00:00 2001
|
||||||
|
Subject: 8137165: Tests fail in SR_Handler because thread is not VMThread or JavaThread
|
||||||
|
|
||||||
|
---
|
||||||
|
hotspot/src/os/linux/vm/os_linux.cpp | 16 +++++++++++++---
|
||||||
|
1 file changed, 13 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/hotspot/src/os/linux/vm/os_linux.cpp b/hotspot/src/os/linux/vm/os_linux.cpp
|
||||||
|
index 6ee49eedc..773c746af 100644
|
||||||
|
--- a/hotspot/src/os/linux/vm/os_linux.cpp
|
||||||
|
+++ b/hotspot/src/os/linux/vm/os_linux.cpp
|
||||||
|
@@ -1070,6 +1070,13 @@ void os::free_thread(OSThread* osthread) {
|
||||||
|
assert(osthread != NULL, "osthread not set");
|
||||||
|
|
||||||
|
if (Thread::current()->osthread() == osthread) {
|
||||||
|
+#ifdef ASSERT
|
||||||
|
+ sigset_t current;
|
||||||
|
+ sigemptyset(¤t);
|
||||||
|
+ pthread_sigmask(SIG_SETMASK, NULL, ¤t);
|
||||||
|
+ assert(!sigismember(¤t, SR_signum), "SR signal should not be blocked!");
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
// Restore caller's signal mask
|
||||||
|
sigset_t sigmask = osthread->caller_sigmask();
|
||||||
|
pthread_sigmask(SIG_SETMASK, &sigmask, NULL);
|
||||||
|
@@ -4723,7 +4730,8 @@ static void SR_handler(int sig, siginfo_t* siginfo, ucontext_t* context) {
|
||||||
|
// after sigsuspend.
|
||||||
|
int old_errno = errno;
|
||||||
|
|
||||||
|
- Thread* thread = Thread::current();
|
||||||
|
+ Thread* thread = Thread::current_or_null();
|
||||||
|
+ assert(thread != NULL, "Missing current thread in SR_handler");
|
||||||
|
OSThread* osthread = thread->osthread();
|
||||||
|
assert(thread->is_VM_thread() || thread->is_Java_thread(), "Must be VMThread or JavaThread");
|
||||||
|
|
||||||
|
@@ -4735,7 +4743,7 @@ static void SR_handler(int sig, siginfo_t* siginfo, ucontext_t* context) {
|
||||||
|
os::SuspendResume::State state = osthread->sr.suspended();
|
||||||
|
if (state == os::SuspendResume::SR_SUSPENDED) {
|
||||||
|
sigset_t suspend_set; // signals for sigsuspend()
|
||||||
|
-
|
||||||
|
+ sigemptyset(&suspend_set);
|
||||||
|
// get current set of blocked signals and unblock resume signal
|
||||||
|
pthread_sigmask(SIG_BLOCK, NULL, &suspend_set);
|
||||||
|
sigdelset(&suspend_set, SR_signum);
|
||||||
|
@@ -5025,6 +5033,7 @@ static bool call_chained_handler(struct sigaction *actp, int sig,
|
||||||
|
|
||||||
|
// try to honor the signal mask
|
||||||
|
sigset_t oset;
|
||||||
|
+ sigemptyset(&oset);
|
||||||
|
pthread_sigmask(SIG_SETMASK, &(actp->sa_mask), &oset);
|
||||||
|
|
||||||
|
// call into the chained handler
|
||||||
|
@@ -5035,7 +5044,7 @@ static bool call_chained_handler(struct sigaction *actp, int sig,
|
||||||
|
}
|
||||||
|
|
||||||
|
// restore the signal mask
|
||||||
|
- pthread_sigmask(SIG_SETMASK, &oset, 0);
|
||||||
|
+ pthread_sigmask(SIG_SETMASK, &oset, NULL);
|
||||||
|
}
|
||||||
|
// Tell jvm's signal handler the signal is taken care of.
|
||||||
|
return true;
|
||||||
|
@@ -6699,6 +6708,7 @@ void Parker::park(bool isAbsolute, jlong time) {
|
||||||
|
// Don't catch signals while blocked; let the running threads have the signals.
|
||||||
|
// (This allows a debugger to break into the running thread.)
|
||||||
|
sigset_t oldsigs;
|
||||||
|
+ sigemptyset(&oldsigs);
|
||||||
|
sigset_t* allowdebug_blocked = os::Linux::allowdebug_blocked_signals();
|
||||||
|
pthread_sigmask(SIG_BLOCK, allowdebug_blocked, &oldsigs);
|
||||||
|
#endif
|
||||||
|
--
|
||||||
|
2.19.1
|
||||||
|
|
||||||
135
Extending-the-IV-Length-Supported-by-KAEProvider-AES.patch
Normal file
135
Extending-the-IV-Length-Supported-by-KAEProvider-AES.patch
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
From f4b0357c01f51e813642c3ac5c8ff33c1576eb72 Mon Sep 17 00:00:00 2001
|
||||||
|
Subject: Extending the IV Length Supported by KAEProvider AES/Gcm
|
||||||
|
---
|
||||||
|
.../security/openssl/kae_symmetric_cipher.c | 23 ++++++--
|
||||||
|
.../security/openssl/KAEGcmIvLenTest.java | 52 +++++++++++++++++++
|
||||||
|
2 files changed, 72 insertions(+), 3 deletions(-)
|
||||||
|
create mode 100644 jdk/test/org/openeuler/security/openssl/KAEGcmIvLenTest.java
|
||||||
|
|
||||||
|
diff --git a/jdk/src/solaris/native/org/openeuler/security/openssl/kae_symmetric_cipher.c b/jdk/src/solaris/native/org/openeuler/security/openssl/kae_symmetric_cipher.c
|
||||||
|
index ec8894f1a..7618d6e16 100644
|
||||||
|
--- a/jdk/src/solaris/native/org/openeuler/security/openssl/kae_symmetric_cipher.c
|
||||||
|
+++ b/jdk/src/solaris/native/org/openeuler/security/openssl/kae_symmetric_cipher.c
|
||||||
|
@@ -146,6 +146,7 @@ Java_org_openeuler_security_openssl_KAESymmetricCipherBase_nativeInit(JNIEnv* en
|
||||||
|
const EVP_CIPHER* cipher = NULL;
|
||||||
|
ENGINE* kaeEngine = NULL;
|
||||||
|
int keyLength = (*env)->GetArrayLength(env, key);
|
||||||
|
+ int ivLength = 0;
|
||||||
|
|
||||||
|
const char* algo = (*env)->GetStringUTFChars(env, cipherType, 0);
|
||||||
|
if (StartsWith("aes", algo)) {
|
||||||
|
@@ -158,7 +159,6 @@ Java_org_openeuler_security_openssl_KAESymmetricCipherBase_nativeInit(JNIEnv* en
|
||||||
|
|
||||||
|
KAE_TRACE("KAESymmetricCipherBase_nativeInit: kaeEngine => %p", kaeEngine);
|
||||||
|
|
||||||
|
- (*env)->ReleaseStringUTFChars(env, cipherType, algo);
|
||||||
|
if (cipher == NULL) {
|
||||||
|
KAE_ThrowOOMException(env, "create EVP_CIPHER fail");
|
||||||
|
goto cleanup;
|
||||||
|
@@ -170,19 +170,35 @@ Java_org_openeuler_security_openssl_KAESymmetricCipherBase_nativeInit(JNIEnv* en
|
||||||
|
|
||||||
|
if (iv != NULL) {
|
||||||
|
ivBytes = (*env)->GetByteArrayElements(env, iv, NULL);
|
||||||
|
+ ivLength = (*env)->GetArrayLength(env, iv);
|
||||||
|
}
|
||||||
|
if (key != NULL) {
|
||||||
|
keyBytes = (*env)->GetByteArrayElements(env, key, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (!EVP_CipherInit_ex(ctx, cipher, kaeEngine, (const unsigned char*)keyBytes,
|
||||||
|
- (const unsigned char*)ivBytes, encrypt ? 1 : 0)) {
|
||||||
|
+ if (!EVP_CipherInit_ex(ctx, cipher, kaeEngine, NULL,
|
||||||
|
+ NULL, encrypt ? 1 : 0)) {
|
||||||
|
KAE_ThrowFromOpenssl(env, "EVP_CipherInit_ex failed", KAE_ThrowRuntimeException);
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (strcasecmp(algo + 8, "gcm") == 0) {
|
||||||
|
+ /* Set IV length if default 12 bytes (96 bits) is not appropriate */
|
||||||
|
+ if(!EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_GCM_SET_IVLEN, ivLength, NULL)) {
|
||||||
|
+ KAE_ThrowFromOpenssl(env, "EVP_CIPHER_CTX_ctrl failed", KAE_ThrowRuntimeException);
|
||||||
|
+ goto cleanup;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (!EVP_CipherInit_ex(ctx, NULL, kaeEngine, (const unsigned char*)keyBytes,
|
||||||
|
+ (const unsigned char*)ivBytes, encrypt ? 1 : 0)) {
|
||||||
|
+ KAE_ThrowFromOpenssl(env, "EVP_CipherInit_ex int key & iv failed", KAE_ThrowRuntimeException);
|
||||||
|
+ goto cleanup;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
EVP_CIPHER_CTX_set_padding(ctx, padding ? 1 : 0);
|
||||||
|
|
||||||
|
+ (*env)->ReleaseStringUTFChars(env, cipherType, algo);
|
||||||
|
FreeMemoryFromInit(env, iv, ivBytes, key, keyBytes, keyLength);
|
||||||
|
return (jlong)ctx;
|
||||||
|
|
||||||
|
@@ -190,6 +206,7 @@ cleanup:
|
||||||
|
if (ctx != NULL) {
|
||||||
|
EVP_CIPHER_CTX_free(ctx);
|
||||||
|
}
|
||||||
|
+ (*env)->ReleaseStringUTFChars(env, cipherType, algo);
|
||||||
|
FreeMemoryFromInit(env, iv, ivBytes, key, keyBytes, keyLength);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
diff --git a/jdk/test/org/openeuler/security/openssl/KAEGcmIvLenTest.java b/jdk/test/org/openeuler/security/openssl/KAEGcmIvLenTest.java
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000..c9e2257aa
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/jdk/test/org/openeuler/security/openssl/KAEGcmIvLenTest.java
|
||||||
|
@@ -0,0 +1,52 @@
|
||||||
|
+import org.openeuler.security.openssl.KAEProvider;
|
||||||
|
+
|
||||||
|
+import javax.crypto.Cipher;
|
||||||
|
+import javax.crypto.spec.GCMParameterSpec;
|
||||||
|
+import javax.crypto.spec.SecretKeySpec;
|
||||||
|
+import java.nio.charset.StandardCharsets;
|
||||||
|
+import java.security.Security;
|
||||||
|
+import java.util.Arrays;
|
||||||
|
+
|
||||||
|
+/**
|
||||||
|
+ * @test
|
||||||
|
+ * @summary Basic test for AES/GCM Iv
|
||||||
|
+ * @requires os.arch=="aarch64"
|
||||||
|
+ * @run main KAEGcmIvLenTest
|
||||||
|
+ */
|
||||||
|
+public class KAEGcmIvLenTest {
|
||||||
|
+ private static String plainText = "helloworldhellow"; // 16bytes for NoPadding
|
||||||
|
+ private static String shortPlainText = "helloworld"; // 5 bytes for padding
|
||||||
|
+ private static SecretKeySpec ks = new SecretKeySpec("AESEncryptionKey".getBytes(StandardCharsets.UTF_8), "AES"); // key has 16 bytes
|
||||||
|
+ private static int[] ivLens = {12, 16};
|
||||||
|
+ public static void main(String[] args) throws Exception {
|
||||||
|
+ Security.addProvider(new KAEProvider());
|
||||||
|
+ for (int ivLen : ivLens) {
|
||||||
|
+ testGcm(plainText,"AES/GCM/NoPadding", "KAEProvider", "SunJCE", ivLen);
|
||||||
|
+ testGcm(plainText,"AES/GCM/NoPadding", "SunJCE", "KAEProvider", ivLen);
|
||||||
|
+ testGcm(shortPlainText,"AES/GCM/PKCS5Padding", "KAEProvider", "SunJCE", ivLen);
|
||||||
|
+ testGcm(shortPlainText,"AES/GCM/PKCS5Padding", "SunJCE", "KAEProvider", ivLen);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ private static void testGcm(String plainText, String algo, String encryptProvider, String decryptProvider, int ivLen) throws Exception {
|
||||||
|
+ Cipher enCipher = Cipher.getInstance(algo, encryptProvider);
|
||||||
|
+ enCipher.init(Cipher.ENCRYPT_MODE, ks, getIv(ivLen));
|
||||||
|
+ byte[] cipherText = enCipher.doFinal(plainText.getBytes());
|
||||||
|
+
|
||||||
|
+ Cipher deCipher = Cipher.getInstance(algo, decryptProvider);
|
||||||
|
+ deCipher.init(Cipher.DECRYPT_MODE, ks, getIv(ivLen));
|
||||||
|
+ byte[] origin = deCipher.doFinal(cipherText);
|
||||||
|
+
|
||||||
|
+ if (!Arrays.equals(plainText.getBytes(), origin)) {
|
||||||
|
+ throw new RuntimeException("gcm decryption failed, algo = " + algo);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ private static GCMParameterSpec getIv(int ivLen) {
|
||||||
|
+ if (ivLen == 16) {
|
||||||
|
+ return new GCMParameterSpec(128, "abcdefghabcdefgh".getBytes(StandardCharsets.UTF_8));
|
||||||
|
+ }
|
||||||
|
+ return new GCMParameterSpec(96, "abcdefghabcd".getBytes(StandardCharsets.UTF_8));
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
--
|
||||||
|
2.19.1
|
||||||
|
|
||||||
88
The-fast-serialization-function-of-sun.rmi.transport.patch
Normal file
88
The-fast-serialization-function-of-sun.rmi.transport.patch
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
Subject: [PATCH][Huawei] The fast serialization function of
|
||||||
|
sun.rmi.transport.ConnectionOutputStream is disabled by default
|
||||||
|
|
||||||
|
---
|
||||||
|
.../classes/java/io/ObjectOutputStream.java | 23 ++++++++++++++++---
|
||||||
|
.../sun/rmi/server/MarshalOutputStream.java | 10 ++++++++
|
||||||
|
2 files changed, 30 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/jdk/src/share/classes/java/io/ObjectOutputStream.java b/jdk/src/share/classes/java/io/ObjectOutputStream.java
|
||||||
|
index 328f47589..78dc3c5b2 100644
|
||||||
|
--- a/jdk/src/share/classes/java/io/ObjectOutputStream.java
|
||||||
|
+++ b/jdk/src/share/classes/java/io/ObjectOutputStream.java
|
||||||
|
@@ -240,7 +240,7 @@ public class ObjectOutputStream
|
||||||
|
* Value of "UseFastSerializer" property. The fastSerializer is turned
|
||||||
|
* on when it is true.
|
||||||
|
*/
|
||||||
|
- private final boolean useFastSerializer = UNSAFE.getUseFastSerializer();
|
||||||
|
+ private boolean useFastSerializer = UNSAFE.getUseFastSerializer();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* value of "printFastSerializer" property,
|
||||||
|
@@ -254,7 +254,22 @@ public class ObjectOutputStream
|
||||||
|
* Magic number that is written to the stream header when using fastserilizer.
|
||||||
|
*/
|
||||||
|
private static final short STREAM_MAGIC_FAST = (short)0xdeca;
|
||||||
|
+
|
||||||
|
+ /**
|
||||||
|
+ * The default value is true. If you want to disable the fast serialization function, please set it to false.
|
||||||
|
+ */
|
||||||
|
+ protected boolean enableFastSerializerClass(){
|
||||||
|
+ return true;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
+ /**
|
||||||
|
+ * Disable fast serialization functionality.
|
||||||
|
+ */
|
||||||
|
+ private void disableFastSerializerStatusByClass() {
|
||||||
|
+ if ( this.useFastSerializer && !enableFastSerializerClass()){
|
||||||
|
+ this.useFastSerializer = false;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
/**
|
||||||
|
* Creates an ObjectOutputStream that writes to the specified OutputStream.
|
||||||
|
* This constructor writes the serialization stream header to the
|
||||||
|
@@ -279,7 +294,8 @@ public class ObjectOutputStream
|
||||||
|
* @see ObjectInputStream#ObjectInputStream(InputStream)
|
||||||
|
*/
|
||||||
|
public ObjectOutputStream(OutputStream out) throws IOException {
|
||||||
|
- verifySubclass();
|
||||||
|
+ disableFastSerializerStatusByClass();
|
||||||
|
+ verifySubclass();
|
||||||
|
bout = new BlockDataOutputStream(out);
|
||||||
|
handles = new HandleTable(10, (float) 3.00);
|
||||||
|
subs = new ReplaceTable(10, (float) 3.00);
|
||||||
|
@@ -311,7 +327,8 @@ public class ObjectOutputStream
|
||||||
|
* @see java.io.SerializablePermission
|
||||||
|
*/
|
||||||
|
protected ObjectOutputStream() throws IOException, SecurityException {
|
||||||
|
- SecurityManager sm = System.getSecurityManager();
|
||||||
|
+ disableFastSerializerStatusByClass();
|
||||||
|
+ SecurityManager sm = System.getSecurityManager();
|
||||||
|
if (sm != null) {
|
||||||
|
sm.checkPermission(SUBCLASS_IMPLEMENTATION_PERMISSION);
|
||||||
|
}
|
||||||
|
diff --git a/jdk/src/share/classes/sun/rmi/server/MarshalOutputStream.java b/jdk/src/share/classes/sun/rmi/server/MarshalOutputStream.java
|
||||||
|
index 699f11072..e113441f8 100644
|
||||||
|
--- a/jdk/src/share/classes/sun/rmi/server/MarshalOutputStream.java
|
||||||
|
+++ b/jdk/src/share/classes/sun/rmi/server/MarshalOutputStream.java
|
||||||
|
@@ -48,6 +48,16 @@ import sun.rmi.transport.Target;
|
||||||
|
*/
|
||||||
|
public class MarshalOutputStream extends ObjectOutputStream
|
||||||
|
{
|
||||||
|
+ /**
|
||||||
|
+ * value of "enableRMIFastSerializerClass" property
|
||||||
|
+ */
|
||||||
|
+ private static final boolean enableRMIFastSerializerClass = java.security.AccessController.doPrivileged( new sun.security.action.GetBooleanAction( "enableRMIFastSerializerClass")).booleanValue();
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ protected boolean enableFastSerializerClass() {
|
||||||
|
+ return this.enableRMIFastSerializerClass;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
/**
|
||||||
|
* Creates a marshal output stream with protocol version 1.
|
||||||
|
*/
|
||||||
|
--
|
||||||
|
2.44.0
|
||||||
|
|
||||||
@ -1,17 +1,18 @@
|
|||||||
From c4fd69c76c41b7b6168f1071d50143566f7d269e
|
From a168b23b9b49998642adabda7edd76a0d45c07b8
|
||||||
Date: Fri, 22 Sep 2023 14:48:33 +0800
|
Date: Fri, 22 Sep 2023 14:48:33 +0800
|
||||||
Subject: [PATCH] add Fix-aarch64-runtime-thread-signal-transfer-bug
|
Subject: [PATCH] add Fix-aarch64-runtime-thread-signal-transfer-bug
|
||||||
|
|
||||||
---
|
---
|
||||||
.../src/cpu/aarch64/vm/vm_version_aarch64.cpp | 47 +++++----
|
.../src/cpu/aarch64/vm/vm_version_aarch64.cpp | 47 +++++----
|
||||||
.../src/cpu/aarch64/vm/vm_version_aarch64.hpp | 8 ++
|
.../src/cpu/aarch64/vm/vm_version_aarch64.hpp | 8 ++
|
||||||
hotspot/src/os/linux/vm/os_linux.cpp | 7 ++
|
hotspot/src/os/linux/vm/os_linux.cpp | 3 +
|
||||||
.../linux_aarch64/vm/thread_linux_aarch64.cpp | 97 +++++++++++++++++++
|
.../linux_aarch64/vm/thread_linux_aarch64.cpp | 97 +++++++++++++++++++
|
||||||
.../linux_aarch64/vm/thread_linux_aarch64.hpp | 3 +
|
.../linux_aarch64/vm/thread_linux_aarch64.hpp | 3 +
|
||||||
5 files changed, 141 insertions(+), 21 deletions(-)
|
hotspot/src/share/vm/runtime/os.cpp | 5 +
|
||||||
|
6 files changed, 142 insertions(+), 21 deletions(-)
|
||||||
|
|
||||||
diff --git a/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.cpp b/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.cpp
|
diff --git a/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.cpp b/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.cpp
|
||||||
index 27ab00dd..839df4a3 100644
|
index 27ab00dda..839df4a34 100644
|
||||||
--- a/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.cpp
|
--- a/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.cpp
|
||||||
+++ b/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.cpp
|
+++ b/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.cpp
|
||||||
@@ -169,27 +169,7 @@ void VM_Version::get_processor_features() {
|
@@ -169,27 +169,7 @@ void VM_Version::get_processor_features() {
|
||||||
@ -76,7 +77,7 @@ index 27ab00dd..839df4a3 100644
|
|||||||
ResourceMark rm;
|
ResourceMark rm;
|
||||||
|
|
||||||
diff --git a/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.hpp b/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.hpp
|
diff --git a/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.hpp b/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.hpp
|
||||||
index 7f3a5326..47353df9 100644
|
index 7f3a53262..47353df91 100644
|
||||||
--- a/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.hpp
|
--- a/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.hpp
|
||||||
+++ b/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.hpp
|
+++ b/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.hpp
|
||||||
@@ -63,6 +63,7 @@ public:
|
@@ -63,6 +63,7 @@ public:
|
||||||
@ -108,21 +109,10 @@ index 7f3a5326..47353df9 100644
|
|||||||
static ByteSize ctr_el0_offset() { return byte_offset_of(PsrInfo, ctr_el0); }
|
static ByteSize ctr_el0_offset() { return byte_offset_of(PsrInfo, ctr_el0); }
|
||||||
static bool is_zva_enabled() {
|
static bool is_zva_enabled() {
|
||||||
diff --git a/hotspot/src/os/linux/vm/os_linux.cpp b/hotspot/src/os/linux/vm/os_linux.cpp
|
diff --git a/hotspot/src/os/linux/vm/os_linux.cpp b/hotspot/src/os/linux/vm/os_linux.cpp
|
||||||
index 2dde2587..647ef582 100644
|
index 6b1e6b805..6ee49eedc 100644
|
||||||
--- a/hotspot/src/os/linux/vm/os_linux.cpp
|
--- a/hotspot/src/os/linux/vm/os_linux.cpp
|
||||||
+++ b/hotspot/src/os/linux/vm/os_linux.cpp
|
+++ b/hotspot/src/os/linux/vm/os_linux.cpp
|
||||||
@@ -5576,6 +5576,10 @@ jint os::init_2(void)
|
@@ -5760,6 +5760,9 @@ void os::set_native_thread_name(const char *name) {
|
||||||
Linux::is_floating_stack() ? "floating stack" : "fixed stack");
|
|
||||||
}
|
|
||||||
|
|
||||||
+#ifdef AARCH64
|
|
||||||
+ JavaThread::os_linux_aarch64_options(active_processor_count(), argv_for_execvp);
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
if (UseNUMA) {
|
|
||||||
if (!Linux::libnuma_init()) {
|
|
||||||
UseNUMA = false;
|
|
||||||
@@ -5760,6 +5764,9 @@ void os::set_native_thread_name(const char *name) {
|
|
||||||
const int rc = Linux::_pthread_setname_np(pthread_self(), buf);
|
const int rc = Linux::_pthread_setname_np(pthread_self(), buf);
|
||||||
// ERANGE should not happen; all other errors should just be ignored.
|
// ERANGE should not happen; all other errors should just be ignored.
|
||||||
assert(rc != ERANGE, "pthread_setname_np failed");
|
assert(rc != ERANGE, "pthread_setname_np failed");
|
||||||
@ -133,7 +123,7 @@ index 2dde2587..647ef582 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.cpp b/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.cpp
|
diff --git a/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.cpp b/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.cpp
|
||||||
index 87e42318..8b0e2c98 100644
|
index 87e42318a..b9c468d6d 100644
|
||||||
--- a/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.cpp
|
--- a/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.cpp
|
||||||
+++ b/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.cpp
|
+++ b/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.cpp
|
||||||
@@ -25,6 +25,7 @@
|
@@ -25,6 +25,7 @@
|
||||||
@ -248,7 +238,7 @@ index 87e42318..8b0e2c98 100644
|
|||||||
assert(this->is_Java_thread(), "must be JavaThread");
|
assert(this->is_Java_thread(), "must be JavaThread");
|
||||||
JavaThread* jt = (JavaThread *)this;
|
JavaThread* jt = (JavaThread *)this;
|
||||||
diff --git a/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.hpp b/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.hpp
|
diff --git a/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.hpp b/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.hpp
|
||||||
index a2f0135c..f14ace0d 100644
|
index a2f0135c2..f14ace0d3 100644
|
||||||
--- a/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.hpp
|
--- a/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.hpp
|
||||||
+++ b/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.hpp
|
+++ b/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.hpp
|
||||||
@@ -66,6 +66,9 @@
|
@@ -66,6 +66,9 @@
|
||||||
@ -261,6 +251,23 @@ index a2f0135c..f14ace0d 100644
|
|||||||
bool pd_get_top_frame_for_profiling(frame* fr_addr, void* ucontext, bool isInJava);
|
bool pd_get_top_frame_for_profiling(frame* fr_addr, void* ucontext, bool isInJava);
|
||||||
private:
|
private:
|
||||||
bool pd_get_top_frame(frame* fr_addr, void* ucontext, bool isInJava);
|
bool pd_get_top_frame(frame* fr_addr, void* ucontext, bool isInJava);
|
||||||
|
diff --git a/hotspot/src/share/vm/runtime/os.cpp b/hotspot/src/share/vm/runtime/os.cpp
|
||||||
|
index ff35e8b3a..cae1cf477 100644
|
||||||
|
--- a/hotspot/src/share/vm/runtime/os.cpp
|
||||||
|
+++ b/hotspot/src/share/vm/runtime/os.cpp
|
||||||
|
@@ -366,6 +366,11 @@ static void signal_thread_entry(JavaThread* thread, TRAPS) {
|
||||||
|
}
|
||||||
|
|
||||||
|
void os::init_before_ergo() {
|
||||||
|
+#ifdef AARCH64
|
||||||
|
+ // global variables
|
||||||
|
+ extern char** argv_for_execvp;
|
||||||
|
+ JavaThread::os_linux_aarch64_options(active_processor_count(), argv_for_execvp);
|
||||||
|
+#endif
|
||||||
|
initialize_initial_active_processor_count();
|
||||||
|
// We need to initialize large page support here because ergonomics takes some
|
||||||
|
// decisions depending on large page support and the calculated large page size.
|
||||||
--
|
--
|
||||||
2.19.1
|
2.19.1
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -937,7 +937,7 @@ Provides: java-%{javaver}-%{origin}-accessibility%{?1} = %{epoch}:%{version}-%{r
|
|||||||
|
|
||||||
Name: java-%{javaver}-%{origin}
|
Name: java-%{javaver}-%{origin}
|
||||||
Version: %{javaver}.%{updatever}.%{buildver}
|
Version: %{javaver}.%{updatever}.%{buildver}
|
||||||
Release: 0
|
Release: 5
|
||||||
# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons
|
# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons
|
||||||
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
|
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
|
||||||
# also included the epoch in their virtual provides. This created a
|
# also included the epoch in their virtual provides. This created a
|
||||||
@ -1333,7 +1333,12 @@ Patch438: Huawei-Add-Aggressive-CDS.patch
|
|||||||
Patch439: Backport-8151845-Comment-in-globals.hpp-for-MetaspaceSize-is-.patch
|
Patch439: Backport-8151845-Comment-in-globals.hpp-for-MetaspaceSize-is-.patch
|
||||||
Patch440: Backport-8210706-G1-may-deadlock-when-starting-a-concurrent-c.patch
|
Patch440: Backport-8210706-G1-may-deadlock-when-starting-a-concurrent-c.patch
|
||||||
Patch441: Backport-8318889-Backport-Important-Fixed-Issues-in-Later-Ver.patch
|
Patch441: Backport-8318889-Backport-Important-Fixed-Issues-in-Later-Ver.patch
|
||||||
|
|
||||||
|
#422
|
||||||
Patch442: Huawei-Keep-objects-when-remove-unshareable-info.patch
|
Patch442: Huawei-Keep-objects-when-remove-unshareable-info.patch
|
||||||
|
Patch443: The-fast-serialization-function-of-sun.rmi.transport.patch
|
||||||
|
Patch445: Extending-the-IV-Length-Supported-by-KAEProvider-AES.patch
|
||||||
|
Patch446: 8137165-Tests-fail-in-SR_Handler-because-thread-is-n.patch
|
||||||
#############################################
|
#############################################
|
||||||
#
|
#
|
||||||
# Upstreamable patches
|
# Upstreamable patches
|
||||||
@ -1989,10 +1994,19 @@ pushd %{top_level_dir_name}
|
|||||||
%patch440 -p1
|
%patch440 -p1
|
||||||
%patch441 -p1
|
%patch441 -p1
|
||||||
%patch442 -p1
|
%patch442 -p1
|
||||||
|
%patch443 -p1
|
||||||
|
%patch445 -p1
|
||||||
|
%patch446 -p1
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%ifarch loongarch64
|
%ifarch loongarch64
|
||||||
%patch4000 -p1
|
%patch4000 -p1
|
||||||
|
|
||||||
|
%patch308 -p1
|
||||||
|
%patch310 -p1
|
||||||
|
%patch311 -p1
|
||||||
|
%patch312 -p1
|
||||||
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%ifarch riscv64
|
%ifarch riscv64
|
||||||
@ -2649,7 +2663,23 @@ cjc.mainProgram(arg)
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Thu Tue 16 2024 Autistic_boyya <wangzhongyi7@huawei.com> -1:1.8.0.422-b05.rolling
|
* Tue Aug 6 2024 benshuai5D <zhangyunbo7@huawei.com> -1:1.8.0.422-b05.5
|
||||||
|
- modified add-Fix-aarch64-runtime-thread-signal-transfer-bug.patch
|
||||||
|
|
||||||
|
* Sat Aug 3 2024 kuenking111 <wangkun49@huawei.com> -1:1.8.0.422-b05.4
|
||||||
|
- Add 8137165-Tests-fail-in-SR_Handler-because-thread-is-n.patch
|
||||||
|
- Extending-the-IV-Length-Supported-by-KAEProvider-AES.patch
|
||||||
|
|
||||||
|
* Tue Jul 30 2024 benshuai5D <zhangyunbo7@huawei.com> -1:1.8.0.422-b05.3
|
||||||
|
- Fix-the-ActiveProcessorCount-function-of-the-spark-s.patch
|
||||||
|
|
||||||
|
* Tue Jul 30 2024 Xiang Gao <gaoxiang@kylinos.cn> - 1:1.8.0.422-b05.2
|
||||||
|
- Backport 8178498,8193710,8196743,8284330, serviceability tools support containers on loongarch
|
||||||
|
|
||||||
|
* Fri Jul 26 2024 benshuai5D <zhangyunbo7@huawei.com> -1:1.8.0.422-b05.1
|
||||||
|
- Add The-fast-serialization-function-of-sun.rmi.transport.patch
|
||||||
|
|
||||||
|
* Tue Jul 16 2024 Autistic_boyya <wangzhongyi7@huawei.com> -1:1.8.0.422-b05.rolling
|
||||||
- modified 8014628-Support-AES-Encryption-with-HMAC-SHA2-for-Ke.patch
|
- modified 8014628-Support-AES-Encryption-with-HMAC-SHA2-for-Ke.patch
|
||||||
- modified 8136577_Make_AbortVMOnException_available_in_product_builds.patch
|
- modified 8136577_Make_AbortVMOnException_available_in_product_builds.patch
|
||||||
- modified Dynamic-CDS-Archive.patch
|
- modified Dynamic-CDS-Archive.patch
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user