Skip to content

Conversation

@mistcoversmyeyes
Copy link
Contributor

No description provided.

本次改动重构了测试相关文件的组织结构,提升了项目的可维护性和可访问性。

1. **移动 lmbench 到规范位置**
   - 将 `test/src/benchmark/lmbench` 移动到 `user/apps/tests/benchmark/lmbench`
   - 更新 DADK 配置文件 `user/dadk/config/lmbench_bin_ubuntu2404.toml` 中的路径引用
   - 保持所有 lmbench 二进制文件、库文件和文档的完整性

2. **创建便捷访问符号链接**
   - 在项目根目录创建 `test` 符号链接,指向 `user/apps/tests`
   - 简化测试套件的访问路径,提升开发体验
   - 使用符号链接避免了重复存储和路径混乱

- 文件移动采用 Git rename 机制,保留完整的文件历史
- DADK 配置路径从 `test/src/benchmark/lmbench/sysroot` 更新为 `user/apps/tests/benchmark/lmbench/sysroot`
- 符号链接使测试目录可通过 `test/` 直接访问,同时实际文件仍位于 `user/apps/tests/`

Signed-off-by: yuming <[email protected]>
添加统一的环境变量配置脚本,用于定义 lmbench 测试所需的路径和参数。

主要配置项:
- LMBENCH_BIN: lmbench 二进制文件路径
- LMBENCH_EXT2_DIR: ext2 文件系统测试目录
- LMBENCH_TMP_DIR: 临时文件目录
- LMBENCH_LOG_DIR: 日志目录
- LMBENCH_TEST_FILE: 测试文件名
- LMBENCH_ZERO_FILE: zero 文件名

使用方法:source env.sh

Signed-off-by: yuming <[email protected]>
添加 ext2 和 ramfs 文件系统的性能测试脚本:

ext2 测试:
- ext2_copy_files_bw.sh: 文件拷贝带宽测试
- ext2_create_delete_files_0k_ops.sh: 0k 文件创建删除测试
- ext2_create_delete_files_10k_ops.sh: 10k 文件创建删除测试

ramfs 测试:
- ramfs_copy_files_bw.sh: 文件拷贝带宽测试
- ramfs_create_delete_files_0k_ops.sh: 0k 文件创建删除测试
- ramfs_create_delete_files_10k_ops.sh: 10k 文件创建删除测试

所有脚本使用环境变量配置路径,支持在宿主机和 DragonOS 中运行。

Signed-off-by: yuming <[email protected]>
添加内存子系统性能测试脚本:

带宽测试:
- mem_copy_bw.sh: 内存拷贝带宽
- mem_read_bw.sh: 内存读带宽
- mem_write_bw.sh: 内存写带宽
- mem_mmap_bw.sh: 内存映射读带宽

延迟测试:
- mem_mmap_lat.sh: 内存映射延迟
- mem_pagefault_lat.sh: 页错误处理延迟

这些测试用于评估内存子系统的吞吐量和访问延迟。

Signed-off-by: yuming <[email protected]>
添加 IPC 机制的性能测试脚本:

管道测试:
- pipe_bw.sh: 管道带宽测试
- pipe_lat.sh: 管道延迟测试

FIFO 测试:
- fifo_lat.sh: FIFO 延迟测试

信号量测试:
- semaphore_lat.sh: 信号量操作延迟测试

这些测试用于评估不同 IPC 机制的性能特征。

Signed-off-by: yuming <[email protected]>
添加进程管理和信号处理的性能测试脚本:

进程测试:
- process_fork_lat.sh: fork 系统调用延迟
- process_exec_lat.sh: exec 系统调用延迟
- process_shell_lat.sh: shell 进程启动延迟
- process_ctx_lat.sh: 进程上下文切换延迟
- process_getppid_lat.sh: getppid 系统调用延迟

信号测试:
- signal_install_lat.sh: 信号处理器安装延迟
- signal_catch_lat.sh: 信号捕获处理延迟
- signal_prot_lat.sh: 信号保护处理延迟

这些测试评估进程生命周期和信号处理的性能开销。

Signed-off-by: yuming <[email protected]>
添加 TCP 协议栈的性能测试脚本:

TCP loopback 测试(本地回环):
- tcp_loopback_bw_128.sh: 128 字节消息带宽测试
- tcp_loopback_bw_4k.sh: 4KB 消息带宽测试
- tcp_loopback_bw_64k.sh: 64KB 消息带宽测试
- tcp_loopback_lat.sh: 延迟测试
- tcp_loopback_connect_lat.sh: 连接建立延迟测试
- tcp_loopback_http_bw.sh: HTTP 带宽测试
- tcp_loopback_select_lat.sh: select 系统调用延迟测试

TCP virtio 测试(虚拟网络):
- tcp_virtio_bw_128.sh: 128 字节消息带宽测试
- tcp_virtio_bw_64k.sh: 64KB 消息带宽测试
- tcp_virtio_lat.sh: 延迟测试
- tcp_virtio_connect_lat.sh: 连接建立延迟测试

所有 loopback 测试包含服务端自动启动和清理逻辑。
Virtio 测试需要在 10.0.2.15 运行对应服务端。

Signed-off-by: yuming <[email protected]>
添加 UDP 协议和 Unix domain socket 的性能测试脚本:

UDP 测试:
- udp_loopback_lat.sh: UDP loopback 延迟测试
- udp_virtio_lat.sh: UDP virtio 延迟测试

Unix domain socket 测试:
- unix_bw.sh: Unix socket 带宽测试
- unix_lat.sh: Unix socket 延迟测试
- unix_connect_lat.sh: Unix socket 连接延迟测试

UDP loopback 和 Unix socket 连接测试包含服务端自动管理。
UDP virtio 测试需要在 10.0.2.15 运行服务端。

Signed-off-by: yuming <[email protected]>
添加虚拟文件系统 (VFS) 层的性能测试脚本:

系统调用延迟测试:
- vfs_open_lat.sh: open 系统调用延迟
- vfs_read_lat.sh: read 系统调用延迟
- vfs_write_lat.sh: write 系统调用延迟
- vfs_stat_lat.sh: stat 系统调用延迟
- vfs_fstat_lat.sh: fstat 系统调用延迟
- vfs_fcntl_lat.sh: fcntl 系统调用延迟
- vfs_select_lat.sh: select 系统调用延迟

带宽测试:
- vfs_read_pagecache_bw.sh: 页缓存读带宽测试

这些测试评估文件系统抽象层的性能开销。

Signed-off-by: yuming <[email protected]>
添加 lmbench 测试脚本的完整使用文档,包含:

1. 目录结构说明
2. 环境配置方法
3. 测试执行步骤
4. 测试分类详解(8 大类 48 个测试)
5. 注意事项和依赖说明
6. 宿主机和 DragonOS 使用差异
7. 后续改进计划

该文档为用户提供了测试脚本的使用指南和参考。

Signed-off-by: yuming <[email protected]>
@github-actions github-actions bot added the test Unitest/User space test label Dec 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test Unitest/User space test

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant