中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

ExaGear常用配置项

表1 ExaGear常用配置项

配置项名称

功能描述

说明

ExaGear功能模块配置项

EXAGEAR_USE_OPT

使能“动态二次优化”。

功能优先时,设置"n"可关闭此功能。

EXAGEAR_USE_INTERPRETER

使能“解释执行模式“。

仅供调试使用。

EXAGEAR_ENABLE_SW_PROF

以软件采样的方式实现“动态二次优化”。

通常应使用Statical Profiling Extension (SPE)硬件采样。

EXAGEAR_USE_CB

使能“预翻译”

功能优先时,设置"n"可关闭此功能

EXAGEAR_CFG_BUILDER_MODE

指定预翻模式

"none":不使用预翻译。

"fg":首先执行预翻译操作,完成后立即启动 X86 应用的执行流程。需要注意的是,初次执行时可能会有较长的等待时间。

"bg":后台运行,预翻译和X86同时启动,无需等待预翻译完成,第二次运行才能拿到预翻译的优化。

偏激进的优化配置项(unsafe optimizations)

EXAGEAR_DISABLE_NATIVE_RETURN_ADDR_OPT

禁止将Native返回地址放入Guest地址空间。

功能优先时,设置"y"可关闭此优化项。

EXAGEAR_DISABLE_THP_PREALLOC

禁用与大页面对齐的块的内存预分配。

功能优先时,设置"y"可关闭此优化项。

EXAGEAR_DISABLE_THP_MADVISE

如果THP配置为[madvise]则所有内存页禁止为madvise(MADV_HUGEPAGE)模式。

功能优先时,设置"y"可关闭此优化项。

EXAGEAR_DISABLE_FLAGS_ON_RET_OPT

禁止return指令的flags优化。

功能优先时,设置"y"可关闭此优化项。

EXAGEAR_DISABLE_JIT_STORE_OPT

禁止通过/prc/self/mem来模拟JIT写操作。

功能优先时,设置"y"可关闭此优化项。

EXAGEAR_FAST_MATH

允许更快地执行数学计算,但在某些情况下可能导致不准确的结果。

性能优先时,设置"y"可打开此优化项。

EXAGEAR_X86_DISABLE_SSE_PRESERVE

当AVX指令使能时,不保存SSE指令翻译时ymm寄存器的高位数据。

性能优先时,设置"y"可打开此优化项。

EXAGEAR_X86_ENABLE_VZEROUPPER

翻译zeroupper指令时将ymm寄存器的高位置零。

性能优先时,设置"y"可打开此优化项。

面向Guest应用的配置项

EXAGEAR_X86_PRECISE_FP

使能“按位精准模拟x86浮点计算”。

功能优先时,设置"y"可打开此项。

EXAGEAR_X86_PRECISE_80BIT_FP

使能“按位精准模拟80位x86浮点计算”。

功能优先时,设置"y"可打开此项。

EXAGEAR_X86_ENABLE_AVX

使能AVX模拟。

功能优先时,设置"y"可打开此项。

面向Host实现的配置项

EXAGEAR_ENABLE_SVE

使能Host SVE指令参与翻译。

性能优先时,设置"y"可打开此项。

强内存序配置项

EXAGEAR_SMO_MODE

指定强内存序的影响范围。

(默认启用"fbase")

功能优先时,设置为"all"。

性能优先时,设置为"fbase"。

EXAGEAR_SMO_SEVERITY

指定强内存序的实现方式。

(默认启用"smart")

"smart":智能识别强内存序无关的访存指令,去除冗余的内存屏障。

"full":全量使用内存屏障,性能会明显下降。仅供调试使用。

EXAGEAR_DISABLE_SMO_IN_JIT

关闭JIT代码段强内存序模式运行。

功能优先时,可关闭此项。

EXAGEAR_SMO_PATTERNS

配合SMO_MODE="fbase",指定需“强内存序模式”翻译执行的文件列表。文件名之间用英文逗号分隔,无空格。(默认为空"")

匹配规则取文件名任意子串。示例,“libmpi.so”和“libmath.so”可写成EXAGEAR_SMO_PATTERNS="mpi,math"

EXAGEAR_SMO_PATTERNS_EXCL

配合SMO_MODE="all",指定不需“强内存序模式”翻译执行的文件列表。文件名之间用英文逗号分隔,无空格。(默认为空"")

示例同上。

EXAGEAR_SMO_CONFIG

指定SMO配置文件路径。

仅供调试使用。

其它配置项

EXAGEAR_IN_CONTAINER

指示ExaGear是否部署在容器环境中。

如果运行在容器环境中,需设置成"y"。

EXAGEAR_FD_HARD_LIMIT

设置X86应用进程最大文件描述符限制。

适配x86应用程序的特定需求。

EXAGEAR_SUPPRESS_ABNORMAL_LOGS

信息打印开关。

当应用收到SIGSEGV、SIGFPE、SIGILL、SIGBUS、SIGTRAP、SIGABRT等信号退出时,设置成"y"可禁止打印相关信息。

EXAGEAR_DP_TABLE_HASH_SIZE

以2为底的“幂值”,指定ExaGear内部查找表大小。默认为20,内存紧张时可改小,可选16、17、18、19、20。

数值越小,占用内存越少,但可能会少许影响性能。