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。 |
数值越小,占用内存越少,但可能会少许影响性能。 |