15 Star 22 Fork 54

openEuler / etmem

2022-12-07 09:35
5592035 liuzhiqiang26 1594357385 liuzhiqiang

etmem-v1.1新增特性如下:
1.etmem内存扩展中添加cslide引擎进行内存淘汰;
-使用etmem组件包,使能内存分级扩展至AEP的通路。
-在节点内对虚拟机的大页进行扫描,并通过cslide引擎进行策略淘汰,将冷内存搬迁至AEP中。
2.etmem支持用户注册第三方内存扩展策略,同时提供扫描模块动态库,运行时通过第三方策略淘汰算法淘汰内存;其中etmem对外提供扫描模块动态库libetmemd_scan.so,提供如下对外接口:
-int etmemd_scan_init(void);
-void etmemd_scan_exit(void);
-struct vmas *etmemd_get_vmas(const char *pid, char **vmflags_array, int vmflags_num, bool is_anon_only);
-void etmemd_free_vmas(struct vmas *vmas);
-int etmemd_get_page_refs(const struct vmas *vmas, const char *pid, struct page_refs **page_refs, int flags);
-void etmemd_free_page_refs(struct page_refs *page_refs);
3.etmemd支持由用户配置systemd配置文件后,以fork模式作为systemd服务被拉起运行;
4.etmem内存扩展slide策略中添加对于dram_percent、sysmem_threshold、swap_threshold、swap_flag、swapcache_low_wmark、swapcache_high_wmark参数功能支持;
5.etmem中添加对于memRouter和userswap的功能支持:
-memRouter:内存分级扩展,根据用户选择内存迁移策略对内存进行分级,分发到不同级别的介质上,降低dram的使用量,来达到内存容量扩展的目的。属于etmem功能子集,依赖于etmem目录以及userswap目录源码
-userswap:是在用户态实现的内存交换模块,换入过程依赖userfaultfd将pagefault信息通知到用户态,用于通过用户态访问backend store的场景。
6.etmem中添加region scan特性支持;
7.针对etmem内存扩展相关特性添加LLT测试用例;

2021-10-29 14:55
louhongxiang

etmem内存分级扩展技术,通过DRAM+内存压缩/高性能存储新介质形成多级内存存储,对内存数据进行分级,将分级后的内存冷数据从内存介质迁移到高性能存储介质中,达到内存容量扩展的目的,从而实现内存成本下降。

最后提交信息为: add source code for etmem in openEuler
1
https://gitee.com/openeuler/etmem.git
git@gitee.com:openeuler/etmem.git
openeuler
etmem
etmem

搜索帮助