| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 4 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 |
userswap
介绍
随着CPU算力的发展,尤其是ARM核成本的降低,内存成本和内存容量成为约束业务成本和性能的核心痛点,因此如何节省内存成本,如何扩大内存容量成为存储迫切要解决的问题。
userswap内存分级扩展,根据用户选择内存迁移策略对内存进行分级,分发到不同级别的介质上,降低dram的使用量,来达到内存容量扩展的目的。
编译方法
1.下载userswap源码
git clone https://gitee.com/openeuler/etmem.git
2.编译运行依赖
userswap运行依赖于openEuler-1.0 LTS以及之后的版本。 并且需要配置启动参数cmdline
enable_userswap
可以协同etmem以及memRouter进行用户态swap,也可以由用户定制程序实现用户态swap。
3.编译
cd userswap
./configure
使用说明
userswap提供一个api头文件(uswap_api.h)以及uswap静态库(libuswap.a)。 应用程序编译方法:
gcc example.c -o demo -luswap
uswap api说明
| api | 功能描述 | 输入 | 输出 |
|---|---|---|---|
| set_uswap_log_level | 设置错误日志打印等级 | 0-3 | 0:成功 |
| register_userfaultfd | 注册uswap地址范围用于换入换出 | 地址/长度 | 0:成功 |
| unregister_userfaultfd | 解注册uswap地址范围 | 地址/长度 | 0:成功 |
| register_uswap | 注册uswap换入换出回调函数 | 名称/长度/回调函数 | 0:成功 |
| force_swapout | 强制换出操作,无需etmem/memRouter通知 | 地址/长度 | 0:成功 |
| uswap_init | uswap换入换出线程初始化 | 换出线程数 | 0:成功 |
参与贡献
- Fork本仓库
- 新建个人分支
- 提交代码
- 新建Pull Request