Skip to content

LATX, opt: classify AOT file types#292

Open
ganjue66da wants to merge 1 commit into
lat-opensource:masterfrom
ganjue66da:master
Open

LATX, opt: classify AOT file types#292
ganjue66da wants to merge 1 commit into
lat-opensource:masterfrom
ganjue66da:master

Conversation

@ganjue66da
Copy link
Copy Markdown
Contributor

ELF_AOT_FILE: AOT files corresponding to ELF binaries
PE_AOT_FILE: AOT files corresponding to PE binaries
CACHE_AOT_FILE: AOT files from cache directories
HASH_AOT_FILE: AOT files generated from hash

Only track SMC pages for ELF files in page_set_flags. PE_AOT_FILE and CACHE_AOT_FILE need check ir1.
CACHE_AOT_FILE do not check origin file change time.

Copy link
Copy Markdown
Contributor

@luzeng87 luzeng87 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR #292 审查 — AOT 文件类型分类

作者: ganjue66da | 1 提交, 12 文件

概述

bool is_pe 替换为 uint8_t aot_file_type 位掩码(ELF/PE/CACHE/HASH 四类)。按类型差异化 SMC 处理、IR1 校验、stat 检查。


审查项

# 问题 严重度 说明
1 is_elf_fileperror 噪音 segment_tree_insert 对每个段都调 is_elf_file。非 ELF/PE 文件(如 deepinwine cache 路径)文件不存在,perror("Error opening file") 会打 stderr 噪音。建议删掉 perror 或加 if (option_debug_aot) 守卫
2 is_deepinwine_cachemalloc + assert static buffer 用 malloc(PATH_MAX) + assert 守卫。失败直接 assert(0) 进程崩溃。改为栈变量 char path[PATH_MAX] 更安全
3 HASH_PAGE_LOADED / HASH_PAGE_NOINFO enum 定义但 diff 中未使用。dead code 还是预留?建议标注或移出此 PR
4 ONE_TB_IN_TU seg_flag 定义但未使用。同上
5 PE stat 检查行为变更 需确认 do_generate_aot 中 PE 文件现在也做 stat 校验(ELF_AOT_FILE | PE_AOT_FILE)。之前 PE 是否跳过 stat?请确认预期行为
6 HASH 文件类型注释掉 get_file_type 中 HASH 判断被注释,回退到 CACHE_AOT_FILE。安全,建议标注 TODO

正面变更

  • page_is_pepage_info 清理
  • is_runningseg_flag & SEG_RUNNING 位标记化
  • PE/CACHE 文件 SMC 后允许重新 load AOT(load_aotPAGE_SMC 非 ELF 不拦截)
  • page_set_flagsp_info 全局变量消除

总结

分类思路正确。修复 perror 噪音 + dead code + PE stat 确认后合。

ELF_AOT_FILE: AOT files corresponding to ELF binaries
PE_AOT_FILE: AOT files corresponding to PE binaries
CACHE_AOT_FILE: AOT files from cache directories
HASH_AOT_FILE: AOT files generated from hash

Only track SMC pages for ELF files in page_set_flags.
PE_AOT_FILE and CACHE_AOT_FILE need check ir1.
CACHE_AOT_FILE do not check origin file change time.
HASH_AOT_FILE in the draft.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants