| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Fix cross-directory includes and memoryless NUMA node handling This commit combines two logical changes that happened in sequence: 1. Fix export tests on memoryless NUMA nodes - Adapt to a new kernel constraint: ubmem no longer allows repeated mami4ubmem_map() calls on the same memory segment (same dcna, uba, tid). query_addr.c previously used uba=0 for all four import devices, violating this constraint. - query_addr.c: use cumulative offset as unique uba for each import - Lower import upper bound from SZ_4G to SZ_1G (four imports ~4GB total) - priv_len.c: fix hardcoded controller-0 NUMA lookup for memoryless nodes - Framework: handle memoryless NUMA nodes gracefully instead of aborting 2. Refactor: eliminate cross-directory #include paths - Create include/tests/ directory for test helper headers - Move import_test_common.h, ras_common.h, and performance/common/*.h to include/tests/ and include/tests/performance/ - Update all test files to use canonical include paths like "tests/import_test_common.h" instead of "../obmm_import_api/import_test_common.h" - Fix framework code to use "framework/tcp_utils.h" instead of "../framework/tcp_utils.h" - Update CMakeLists.txt: change src/framework include path to src/ root so framework code can use canonical "framework/" prefix All include paths now follow the repository's canonical hierarchy: - Framework headers: "framework/...", "utils/...", "compat/..." - Test helper headers: "tests/...", "tests/performance/..." Build verified: obmm_test_cases target builds successfully. Signed-off-by: Gao Tianxiong <318328978@qq.com> | 3 个月前 | |
Fix cross-directory includes and memoryless NUMA node handling This commit combines two logical changes that happened in sequence: 1. Fix export tests on memoryless NUMA nodes - Adapt to a new kernel constraint: ubmem no longer allows repeated mami4ubmem_map() calls on the same memory segment (same dcna, uba, tid). query_addr.c previously used uba=0 for all four import devices, violating this constraint. - query_addr.c: use cumulative offset as unique uba for each import - Lower import upper bound from SZ_4G to SZ_1G (four imports ~4GB total) - priv_len.c: fix hardcoded controller-0 NUMA lookup for memoryless nodes - Framework: handle memoryless NUMA nodes gracefully instead of aborting 2. Refactor: eliminate cross-directory #include paths - Create include/tests/ directory for test helper headers - Move import_test_common.h, ras_common.h, and performance/common/*.h to include/tests/ and include/tests/performance/ - Update all test files to use canonical include paths like "tests/import_test_common.h" instead of "../obmm_import_api/import_test_common.h" - Fix framework code to use "framework/tcp_utils.h" instead of "../framework/tcp_utils.h" - Update CMakeLists.txt: change src/framework include path to src/ root so framework code can use canonical "framework/" prefix All include paths now follow the repository's canonical hierarchy: - Framework headers: "framework/...", "utils/...", "compat/..." - Test helper headers: "tests/...", "tests/performance/..." Build verified: obmm_test_cases target builds successfully. Signed-off-by: Gao Tianxiong <318328978@qq.com> | 3 个月前 | |
Fix cross-directory includes and memoryless NUMA node handling This commit combines two logical changes that happened in sequence: 1. Fix export tests on memoryless NUMA nodes - Adapt to a new kernel constraint: ubmem no longer allows repeated mami4ubmem_map() calls on the same memory segment (same dcna, uba, tid). query_addr.c previously used uba=0 for all four import devices, violating this constraint. - query_addr.c: use cumulative offset as unique uba for each import - Lower import upper bound from SZ_4G to SZ_1G (four imports ~4GB total) - priv_len.c: fix hardcoded controller-0 NUMA lookup for memoryless nodes - Framework: handle memoryless NUMA nodes gracefully instead of aborting 2. Refactor: eliminate cross-directory #include paths - Create include/tests/ directory for test helper headers - Move import_test_common.h, ras_common.h, and performance/common/*.h to include/tests/ and include/tests/performance/ - Update all test files to use canonical include paths like "tests/import_test_common.h" instead of "../obmm_import_api/import_test_common.h" - Fix framework code to use "framework/tcp_utils.h" instead of "../framework/tcp_utils.h" - Update CMakeLists.txt: change src/framework include path to src/ root so framework code can use canonical "framework/" prefix All include paths now follow the repository's canonical hierarchy: - Framework headers: "framework/...", "utils/...", "compat/..." - Test helper headers: "tests/...", "tests/performance/..." Build verified: obmm_test_cases target builds successfully. Signed-off-by: Gao Tianxiong <318328978@qq.com> | 3 个月前 | |
Fix cross-directory includes and memoryless NUMA node handling This commit combines two logical changes that happened in sequence: 1. Fix export tests on memoryless NUMA nodes - Adapt to a new kernel constraint: ubmem no longer allows repeated mami4ubmem_map() calls on the same memory segment (same dcna, uba, tid). query_addr.c previously used uba=0 for all four import devices, violating this constraint. - query_addr.c: use cumulative offset as unique uba for each import - Lower import upper bound from SZ_4G to SZ_1G (four imports ~4GB total) - priv_len.c: fix hardcoded controller-0 NUMA lookup for memoryless nodes - Framework: handle memoryless NUMA nodes gracefully instead of aborting 2. Refactor: eliminate cross-directory #include paths - Create include/tests/ directory for test helper headers - Move import_test_common.h, ras_common.h, and performance/common/*.h to include/tests/ and include/tests/performance/ - Update all test files to use canonical include paths like "tests/import_test_common.h" instead of "../obmm_import_api/import_test_common.h" - Fix framework code to use "framework/tcp_utils.h" instead of "../framework/tcp_utils.h" - Update CMakeLists.txt: change src/framework include path to src/ root so framework code can use canonical "framework/" prefix All include paths now follow the repository's canonical hierarchy: - Framework headers: "framework/...", "utils/...", "compat/..." - Test helper headers: "tests/...", "tests/performance/..." Build verified: obmm_test_cases target builds successfully. Signed-off-by: Gao Tianxiong <318328978@qq.com> | 3 个月前 | |
tests/performance: back up and restore printk via /proc, not a shell file perf_backup_and_set_printk and perf_restore_printk shelled out with "ls /tmp/printk.old || cat ..." / "ls ... && cat ..." and cast the system() return to (void), so a failed backup (e.g. read-only /tmp) was silent and the subsequent restore had nothing to read -- printk was then left lowered for the rest of the run. The fixed-path file backup was also trusted blindly: once it existed, the "ls" guard skipped re-backup forever, so a stale file from a crashed prior run would "restore" the perf setting instead of the original. Read and write /proc/sys/kernel/printk directly and keep the backup in a per-process in-memory buffer: the backup cannot go stale, a capture failure is fatal (printk is never lowered without a restore path), and a restore failure is logged. The abnormal-exit cleanup handler restores from the same buffer. | 3 个月前 | |
tests/performance: fix round verdict, artifact collision, placement guard port_group_bandwidth: run_group_importer captured the round result then immediately overwrote it with send_to_actor's return, so a crashed or OOM-killed bw_mem child was masked as overall PASS. Keep a separate variable for the round result and return it; still send the completion token so the exporter does not deadlock. time_import: per-round artifact paths were keyed only on the size tag, so two rounds whose lengths share a tag (e.g. allow_mmap_2pmd and allow_mmap_1g both at 1G on 64K-page hosts) wrote the same kernel_log / perf_out / perf_data files and the second overwrote the first. Include param->label, which is unique per round, in the path. placement: perf_pick_middle_numa_cpu returned cpus[count/2] without checking count > 0, reading uninitialized stack for a CPU-less NUMA node. Assert count is non-zero before indexing. | 3 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 3 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 3 个月前 |