代码拉取完成,页面将自动刷新
From 0310b533d409704f349b9e9bf861ee6afb9d67ee Mon Sep 17 00:00:00 2001
From: Dingli Zhang <dingli@iscas.ac.cn>
Date: Mon, 17 Mar 2025 16:31:52 +0800
Subject: [PATCH] Backport JDK-8348384: RISC-V: Disable auto-enable Vector on
buggy kernels
diff --git a/src/hotspot/os_cpu/linux_riscv/riscv_hwprobe.cpp b/src/hotspot/os_cpu/linux_riscv/riscv_hwprobe.cpp
index 243c4b850ee..991ce07bb7c 100644
--- a/src/hotspot/os_cpu/linux_riscv/riscv_hwprobe.cpp
+++ b/src/hotspot/os_cpu/linux_riscv/riscv_hwprobe.cpp
@@ -25,6 +25,8 @@
#include "precompiled.hpp"
#include "logging/log.hpp"
+#include "logging/logMessage.hpp"
+#include "os_linux.hpp"
#include "riscv_hwprobe.hpp"
#include "runtime/os.hpp"
#include "runtime/vm_version.hpp"
@@ -134,7 +136,18 @@ void RiscvHwprobe::add_features_from_query_result() {
VM_Version::ext_C.enable_feature();
}
if (is_set(RISCV_HWPROBE_KEY_IMA_EXT_0, RISCV_HWPROBE_IMA_V)) {
- VM_Version::ext_V.enable_feature();
+ // Linux signal return bug when using vector with vlen > 128b in pre 6.8.5.
+ long major, minor, patch;
+ os::Linux::kernel_version(&major, &minor, &patch);
+ if (os::Linux::kernel_version_compare(major, minor, patch, 6, 8, 5) == -1) {
+ LogMessage(os) log;
+ if (log.is_info()) {
+ log.info("Linux kernels before 6.8.5 (current %ld.%ld.%ld) have a known bug when using Vector and signals.", major, minor, patch);
+ log.info("Vector not enabled automatically via hwprobe, but can be turned on with -XX:+UseRVV.");
+ }
+ } else {
+ VM_Version::ext_V.enable_feature();
+ }
}
if (is_set(RISCV_HWPROBE_KEY_IMA_EXT_0, RISCV_HWPROBE_EXT_ZBA)) {
VM_Version::ext_Zba.enable_feature();
--
2.34.1
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。