Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
8c646993
D
dragonwell8_hotspot
项目概览
openanolis
/
dragonwell8_hotspot
通知
2
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_hotspot
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
8c646993
编写于
5月 12, 2009
作者:
I
iveresov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
6840196: NUMA allocator: crash in fastdebug during startup on Linux
Summary: With libnuma >1.2 explicity use 1.1 symbols Reviewed-by: ysr
上级
423d6e84
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
20 addition
and
7 deletion
+20
-7
src/os/linux/vm/os_linux.cpp
src/os/linux/vm/os_linux.cpp
+19
-6
src/os/linux/vm/os_linux.hpp
src/os/linux/vm/os_linux.hpp
+1
-1
未找到文件。
src/os/linux/vm/os_linux.cpp
浏览文件 @
8c646993
...
...
@@ -2362,6 +2362,19 @@ char *os::scan_pages(char *start, char* end, page_info* page_expected, page_info
extern
"C"
void
numa_warn
(
int
number
,
char
*
where
,
...)
{
}
extern
"C"
void
numa_error
(
char
*
where
)
{
}
// If we are running with libnuma version > 2, then we should
// be trying to use symbols with versions 1.1
// If we are running with earlier version, which did not have symbol versions,
// we should use the base version.
void
*
os
::
Linux
::
libnuma_dlsym
(
void
*
handle
,
const
char
*
name
)
{
void
*
f
=
dlvsym
(
handle
,
name
,
"libnuma_1.1"
);
if
(
f
==
NULL
)
{
f
=
dlsym
(
handle
,
name
);
}
return
f
;
}
bool
os
::
Linux
::
libnuma_init
()
{
// sched_getcpu() should be in libc.
set_sched_getcpu
(
CAST_TO_FN_PTR
(
sched_getcpu_func_t
,
...
...
@@ -2371,19 +2384,19 @@ bool os::Linux::libnuma_init() {
void
*
handle
=
dlopen
(
"libnuma.so.1"
,
RTLD_LAZY
);
if
(
handle
!=
NULL
)
{
set_numa_node_to_cpus
(
CAST_TO_FN_PTR
(
numa_node_to_cpus_func_t
,
dlsym
(
handle
,
"numa_node_to_cpus"
)));
libnuma_
dlsym
(
handle
,
"numa_node_to_cpus"
)));
set_numa_max_node
(
CAST_TO_FN_PTR
(
numa_max_node_func_t
,
dlsym
(
handle
,
"numa_max_node"
)));
libnuma_
dlsym
(
handle
,
"numa_max_node"
)));
set_numa_available
(
CAST_TO_FN_PTR
(
numa_available_func_t
,
dlsym
(
handle
,
"numa_available"
)));
libnuma_
dlsym
(
handle
,
"numa_available"
)));
set_numa_tonode_memory
(
CAST_TO_FN_PTR
(
numa_tonode_memory_func_t
,
dlsym
(
handle
,
"numa_tonode_memory"
)));
libnuma_
dlsym
(
handle
,
"numa_tonode_memory"
)));
set_numa_interleave_memory
(
CAST_TO_FN_PTR
(
numa_interleave_memory_func_t
,
dlsym
(
handle
,
"numa_interleave_memory"
)));
libnuma_
dlsym
(
handle
,
"numa_interleave_memory"
)));
if
(
numa_available
()
!=
-
1
)
{
set_numa_all_nodes
((
unsigned
long
*
)
dlsym
(
handle
,
"numa_all_nodes"
));
set_numa_all_nodes
((
unsigned
long
*
)
libnuma_
dlsym
(
handle
,
"numa_all_nodes"
));
// Create a cpu -> node mapping
_cpu_to_node
=
new
(
ResourceObj
::
C_HEAP
)
GrowableArray
<
int
>
(
0
,
true
);
rebuild_cpu_to_node_map
();
...
...
src/os/linux/vm/os_linux.hpp
浏览文件 @
8c646993
...
...
@@ -147,7 +147,7 @@ class Linux {
static
void
libpthread_init
();
static
bool
libnuma_init
();
static
void
*
libnuma_dlsym
(
void
*
handle
,
const
char
*
name
);
// Minimum stack size a thread can be created with (allowing
// the VM to completely create the thread and enter user code)
static
size_t
min_stack_allowed
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录