Commit Graph

410 Commits

Author SHA1 Message Date
Ruize Tang d083aef690 Add a simple test for checking FPU state in signal 2025-07-18 11:40:16 +08:00
Qingsong Chen f1299d4b8d Save FPU context on signal stack 2025-07-18 11:40:16 +08:00
Chen Chengjun 749fe77591 Add an initial script to mount several file systems 2025-07-17 13:51:45 +08:00
Qingsong Chen 4736004cff Fix lmbench by adding delay to ensure lmhttp starts 2025-07-08 16:29:52 +08:00
Qingsong Chen 20c2e967fe Fix benchmark CI errors 2025-07-07 13:34:32 +08:00
Qingsong Chen aca1339d77 Add README.md for test directory 2025-07-04 18:52:26 +08:00
Qingsong Chen 7118124fc2 Use nix to build initramfs 2025-07-04 18:52:26 +08:00
Qingsong Chen 490eaf6c81 Restructure the test directory 2025-07-04 18:52:26 +08:00
Ruihan Li d73cbb5008 Clarify the `DeviceId` encoding 2025-07-03 14:30:14 +08:00
Wang Siyuan a13297ae4c Add fields in `/proc/*/stat` and `/proc/*/status` 2025-07-02 20:13:47 +08:00
Chen Chengjun f274af17de Add a regression test 2025-07-02 16:08:00 +08:00
Qingsong Chen 7c68b36957 Install nix packages in docker image 2025-07-02 15:39:53 +08:00
Ruihan Li 3f1bf99b2a Make `mremap` behavior consistent with Linux 2025-06-26 11:41:56 +08:00
Ruihan Li 079be2f30f Enable syscall tests for UNIX sockets 2025-06-26 11:11:03 +08:00
jiangjianfeng 283f6eebed Add regression test for UNIX stream socket options 2025-06-24 17:25:44 +08:00
Wang Siyuan f442cc6d81 Automatically merge adjacent and compatible `VmMapping`s 2025-06-24 12:15:24 +08:00
js2xxx c5d57d5216 Fix mapping between `sched_attr` and `SchedPolicy` 2025-06-24 10:31:32 +08:00
Ruihan Li 0875cf6644 Move the test framework out 2025-06-24 10:24:13 +08:00
Ruihan Li 6af39b2d30 Add error code tests for `mremap` syscall 2025-06-24 10:24:13 +08:00
Ruihan Li ee542e043e Improve the test framework for MM syscalls 2025-06-24 10:24:13 +08:00
Ruihan Li 751e0b2ebf Don't jump to the end of the cursor range 2025-06-23 10:54:30 +08:00
Wang Siyuan 11f9675f37 Support the system call `mremap` 2025-06-21 16:18:09 +08:00
jiangjianfeng 95faea0fb0 Support WSTOPPED and WCONTINUED 2025-06-20 11:51:44 +08:00
Ruihan Li 4a9977d9a7 Make zero reads/writes' behavior right 2025-06-17 16:09:33 +08:00
Chen Chengjun 627dd0386b Enable FUTEX_WAKE_OP 2025-06-16 11:02:17 +08:00
Zhang Junyang 525085ab86 Implement system call `msync` 2025-06-15 16:25:37 +08:00
Zhang Junyang a2aedcfb3a Add a SMP LTP block list 2025-06-13 21:14:38 +08:00
Ruihan Li 796635486c Handle broken netlink attributes 2025-06-13 11:27:22 +08:00
Ruihan Li deab9b6f72 Truncate netlink messages 2025-06-13 11:27:22 +08:00
Ruihan Li 0661a0656b Never queue an ignored signal 2025-06-12 16:15:53 +08:00
Cautreoxit 3e32a38316 Add sys_close_range 2025-06-11 19:56:12 +08:00
Cautreoxit 0b471ef370 Add sys_epoll_pwait2 2025-06-09 20:20:40 +08:00
Ruihan Li fe6b78058c Correct the blocking behavior 2025-06-09 13:10:34 +08:00
jiangjianfeng d35888c817 Add uevent_err test 2025-06-06 11:33:09 +08:00
Qingsong Chen 38c9ab0615 Add LTP syscall tests 2025-06-04 11:04:30 +08:00
Qingsong Chen a0af7ae680 Rename SYSCALL_TEST_DIR to SYSCALL_TEST_WORKDIR for clarity 2025-06-04 11:04:30 +08:00
Wang Siyuan 58e4f45bb1 Add per-CPU counters and track RSS for each `Vmar` 2025-06-03 23:24:32 +08:00
Ruihan Li 63daf69e17 Fix incorrect types in `sys_getcpu` 2025-05-29 10:33:02 +08:00
Hsy-Intel dec7ac1346 Add safety check to `stop_guest` function to prevent killing non-existent processes 2025-05-16 11:34:18 +08:00
Ruihan Li d5c7a8bae3 Allow non-leaders to operate jobs 2025-05-12 16:09:43 +08:00
Hsy-Intel 7cd41349d1 Fix yq installation issue 2025-05-11 12:22:41 +08:00
Ruihan Li da82ca619f Add job control regression tests 2025-05-09 17:12:31 +08:00
Ruihan Li ff907d1131 Implement race-free job control 2025-05-09 17:12:31 +08:00
Ruihan Li 50ba735e96 Handle negative P(G)IDs via `cast_(un)signed` 2025-05-09 11:38:01 +08:00
Ruihan Li a993264265 Refactor and test `get{pgid,sid}` 2025-05-06 18:47:10 +08:00
Ruihan Li 7e4509df9c Refactor and test `set{pgid,sid}` 2025-05-06 18:47:10 +08:00
Chen Chengjun 7def2649ba Enable timerfd gvisor test 2025-04-25 16:33:46 +08:00
Shaowei Song 764e3afa7c Add a simple test case for OverlayFS 2025-04-24 20:07:06 +08:00
Fabing Li 79b0866259 Add sysfs implementation 2025-04-24 20:03:54 +08:00
Ruihan Li 17e5108c17 Add regression tests 2025-04-23 20:37:40 +08:00
Fabing Li e9c85ff158 Only pack benchmark utils while running benchmarks 2025-04-21 11:22:46 +08:00
jiangjianfeng 8815ca384f Add syscall ppoll 2025-04-21 11:19:48 +08:00
jiangjianfeng 5e9f537222 Add netlink regression test and gVisor test 2025-04-15 17:20:12 +08:00
Ruihan Li f8429b2735 Add a regression test 2025-04-14 21:13:11 +08:00
Fabian LI e4e27647c2 Update href in documents 2025-04-10 14:46:01 +08:00
Fabian LI 5e4b612b46 Reconstruct benchmark workflow to support multiple architectures 2025-04-10 14:46:01 +08:00
Chen Chengjun 9915978d35 Enable vfork gVisor test 2025-04-03 14:44:39 +08:00
Fabing Li 2cfb470789 Fix lmbench/ramfs_create_delete_files_0k_ops 2025-03-29 11:12:13 +08:00
Fabing Li 112cf087a6 Add memory size configuration to benchmarks 2025-03-29 11:12:13 +08:00
Shaowei Song 865003738a Enable gvisor xattr syscall test 2025-03-28 15:08:59 +08:00
Fabing Li bce23a63bd Add sys_signalfd/sys_signalfd implementation 2025-03-21 16:10:55 +08:00
jiangjianfeng d366043876 Enable sig_action test from gVisor test 2025-03-14 16:09:11 +08:00
Zejun Zhao 7afc3c88f9 Clean up configs of schbench 2025-03-14 15:45:18 +08:00
Ruihan Li d40d452e9d Receive RST packets as `ECONNRESET` errors 2025-03-10 18:08:08 +08:00
Ruihan Li aa29640ed7 Send RST packets when appropriate 2025-03-10 18:08:08 +08:00
jiangjianfeng 388eec449a Add ip level socket option 2025-03-07 13:38:02 +08:00
js2xxx c1dde01fc3 Add `sched_attr` system call series 2025-03-06 21:29:40 +08:00
Ruihan Li d37e60d082 Report socket errors in `send`/`recv` 2025-03-05 19:48:28 +08:00
Ruihan Li 68cf99993e Remove socket errors from `SocketOptionSet` 2025-03-05 19:48:28 +08:00
Fabing Li 76e9694dd0 Enhance the robustness of search pattern 2025-03-05 19:47:19 +08:00
Chen Chengjun 65f9363d7c Add a test for reaper functionality 2025-03-03 19:31:50 +08:00
wheatfox 6d42a07e95 Implement `getcpu` syscall and add corresponding test application 2025-02-27 11:41:26 +08:00
Fabing Li 6684e7fd02 Convert benchmark configuration files into YAML format 2025-02-26 13:16:49 +08:00
jiangjianfeng bf96f673dc Unify network benchmark chart title 2025-02-14 19:45:41 +08:00
Ruihan Li c9e8666267 Clarify titles for TCP connect latency 2025-02-12 20:00:11 +08:00
Ruihan Li 519445078b Remove `tcp_loopback_connect_lat` from summary 2025-02-12 20:00:11 +08:00
jiangjianfeng 3f951e0c0c Enable gVisor tcp_socket_test 2025-02-11 10:50:20 +08:00
Fabing Li 185b27b01c Unify benchmark job name conventions 2025-02-08 15:29:15 +08:00
Ruize Tang c4229e3c2f Add INITRAMFS_SKIP_GZIP option to make initramfs encoding/decoding faster 2025-01-23 10:50:43 +08:00
jiangjianfeng 0c8200dc7b Add nginx benchmark and workaround 2025-01-01 10:43:14 +08:00
jiangjianfeng 6e691d5838 Fix several typos in benchmarks 2024-12-31 13:19:30 +08:00
jiangjianfeng 39cc0dca26 Add socket hash table 2024-12-30 09:46:14 +08:00
Cautreoxit cbf7a85451 Add Memcached into benchmark
Co-authered-by: Zhang Junyang <junyang@stu.pku.edu.cn>
2024-12-27 16:41:18 +08:00
anbo225 e75b6320ad Add support for group-based permission checking in ext2 2024-12-26 17:07:55 +08:00
Fabing Li 87da1a0787 Enhance the search pattern 2024-12-26 14:52:56 +08:00
jiangjianfeng 3dbdef4d6c Add several lmbench network benchmark 2024-12-26 09:08:21 +08:00
Fabing Li 8a27f7a3b5 Clarify the naming conventions under benchmark/schbench/ 2024-12-24 15:25:55 +08:00
Zejun Zhao 781cb179ff Add scheduler benchmarks to benchmark CI 2024-12-20 09:46:23 +08:00
Zejun Zhao 7cf8df4c3c Make nth_occurrence configurable in benchmark CI 2024-12-20 09:46:23 +08:00
Zejun Zhao e4beb6e0a7 Make SMP configurable in benchmark CI 2024-12-20 09:46:23 +08:00
Yuke Peng acc10376e6 Update benchmark README 2024-12-18 14:53:25 +08:00
Yuke Peng efac408524 Update FIO benchmark CI 2024-12-18 14:53:25 +08:00
Yuke Peng 0397e7281e Enable IOMMU scheme by default in CI 2024-12-18 14:53:25 +08:00
jiangjianfeng 72cb160539 Add keepidle tcp option 2024-12-18 13:19:34 +08:00
Shaowei Song 547c92d2ff Add a simple test for POSIX shared memory 2024-12-18 12:26:33 +08:00
Fabing Li a739848464 Block ProcCpuinfo cases temporarily 2024-12-17 20:14:13 +08:00
Fabing Li 24f1e02b26 Support prctl(PR_SET_KEEPCAPS/PR_GET_KEEPCAPS) 2024-12-17 20:14:13 +08:00
Fabing Li e67ed9434b Enhance search pattern with regex 2024-12-17 20:07:26 +08:00
Ruihan Li 1ab63c7bcb Add regression tests for `exit()` 2024-12-17 19:36:38 +08:00
Zejun Zhao 868b742b31 Add syscall test involving syscall restart 2024-12-16 21:12:08 +08:00
Fabing Li a0f9f34baf Remove redundant "sqlite/" prefix 2024-12-16 14:57:21 +08:00
Yuke Peng 2a02e84462 Add SQLite ramfs benchmarks 2024-12-16 13:23:30 +08:00
Yuke Peng 859b3f9618 Remove "sqlite/" prefix in summary.json 2024-12-16 13:23:30 +08:00
Fabing Li cd22854f59 Add proc_test for procfs 2024-12-15 16:52:24 +08:00
jiangjianfeng 8b07a68e9e Add regression test for keepalive and tcp nodelay 2024-12-15 16:50:43 +08:00
jiangjianfeng 74a59206d7 Refactor sockoption.c with test framework 2024-12-15 16:50:43 +08:00
Roman Korostinskiy 13229cc037 Implement totalram and freeram computation for sysinfo 2024-12-15 16:37:40 +08:00
Roman Korostinskiy 4f653acfa3 Implementation of uptime for sysinfo 2024-12-15 16:37:40 +08:00
Zejun Zhao 68ea0cebf9 Fix result extraction of lmbench/tcp_virtio_lat 2024-12-15 09:45:23 +08:00
Zejun Zhao 1c5666cfa3 Make sysbench configuration compatible with new benchmark framework 2024-12-15 09:45:23 +08:00
Fabing Li 20ee05e8e0 Fix result extraction 2024-12-12 20:43:47 +08:00
Fabing Li 4316247d82 Add ext2 benchmarks of sqlite 2024-12-11 23:04:49 +08:00
Fabing Li 946e4d5529 Add interface to generate one more results with one benchmark job 2024-12-11 23:04:49 +08:00
Fabing Li 5d1c16896a Reorganize benchmark structure 2024-12-11 23:04:49 +08:00
Ruize Tang 065a3bd1c3 Avoid inline comments in variable assignments in Makefile 2024-12-11 19:37:45 +08:00
Yuke Peng c0e572becd Add `ramfs_copy_files_bw` benchmark 2024-12-11 17:12:33 +08:00
Yuke Peng 2b767c774d Make `ext2_copy_files_bw` script consistent with description 2024-12-11 17:12:33 +08:00
Ruihan Li fbe7734a5c Fix CI failures in network tests 2024-12-11 16:47:13 +08:00
Ruize Tang 6c4f56723c Fix futex lost wakeup 2024-11-27 10:27:22 +08:00
Ruize Tang 05ff441577 Clear `DF` flag during signal handling to conform to x86-64 calling convention 2024-11-26 10:50:58 +08:00
Jianfeng Jiang c8c9b9753e Make all network benchmark run with tap backend and vhost on 2024-11-20 20:24:03 +08:00
jiangjianfeng 03aee4a7d7 Include tcp_loopback_bw_4k in summary 2024-11-20 18:27:36 +08:00
Shaowei Song b88675c4e9 Stabilize the benchmark results of FIO 2024-11-20 16:22:20 +08:00
jiangjianfeng 56727aa5ee Add bw_tcp_virtio benchmark 2024-11-12 17:47:40 +08:00
Shaowei Song c7404f8139 Add several FIO tests to the benchmark CI 2024-11-09 10:38:50 +08:00
Shaowei Song 31ebcbf264 Support specifying `SCHEME` in the benchmark 2024-11-09 10:38:50 +08:00
Shaowei Song 012dacab93 Ensure only numeric values are extracted from the benchmark results 2024-11-09 10:38:50 +08:00
Fabing Li 3ad1ea4d66 Fix the title of ext2 and ramfs benchmark 2024-11-08 11:24:15 +08:00
Ruihan Li 827c15aa03 Add self-connecting regression tests 2024-11-08 10:49:02 +08:00
Ruihan Li 19b13d88e2 Fix `clone_exit_signal` test 2024-11-06 21:53:55 +08:00
Fabing Li 1fe74c9c92 Add sys_getrlimit and sys_setrlimit 2024-11-06 21:53:31 +08:00
Fabing Li 7a08d9a660 Support other SigStackFlags 2024-11-06 15:00:01 +08:00
Shaowei Song 16a319a8ea Adjust and align the qemu arguments of `virtio-blk-pci` 2024-11-06 11:00:43 +08:00
Fabing Li 3461bd5de6 Add more boundary checks for epoll_wait 2024-10-30 10:42:16 +08:00
Jianfeng Jiang 00ffc5266d Add tcp poll test program 2024-10-28 22:47:50 +08:00
Yuke Peng f8bd71a1e7 Add Nginx benchmark CI 2024-10-28 18:57:41 +08:00
Yuke Peng 88939f2a4c Add Redis benchmark CI 2024-10-28 18:57:41 +08:00
Ruihan Li b5610f3034 Report `POLLNVAL` in `poll` for invalid FDs 2024-10-28 14:33:32 +08:00
Jianfeng Jiang 7c3e3738a1 Enable tap mode network and vhost 2024-10-26 22:07:38 +08:00
Zhang Junyang c38455f9f6 Add tests for system call `sched_get/set_affinity` 2024-10-26 22:06:41 +08:00
Wang Taojie 418fb10d6e Supplement ioctl() gVisor test 2024-10-21 09:43:43 +08:00
Fabing Li 09204600c0 Change visibility of benchmarks 2024-10-17 15:02:52 +08:00
jiangjianfeng a566e25803 Set tcp benchmarks' backlog as 1 2024-10-17 14:52:58 +08:00
jiangjianfeng 090149eed7 Add tcp latency test over virtio-net 2024-10-14 20:59:25 +08:00
Fabing Li 6e7b12c3c4 Extract the status of guest VM from its log 2024-10-09 19:35:03 +08:00
Fabing Li ab7c4f3740 Update the benchmark linux kernel 2024-10-08 17:53:47 +08:00
Fabing Li 5402f1fbf7 Wait for the QEMU process to exit 2024-10-08 17:52:20 +08:00
Fabing Li 4f060b338c Remove unused guest_guest choice 2024-10-08 17:52:20 +08:00
Fabing Li 46b34aa648 Rename tcp_loopback_bw to tcp_loopback_bw_4k 2024-10-08 16:42:37 +08:00
Yuke Peng 61f6c637d2 Add Nginx benchmark CI 2024-10-01 14:18:02 +08:00
Yuke Peng 0620ec58e4 Extract host-guest benchmark CI script 2024-10-01 14:18:02 +08:00
Yuke Peng 5564adee74 Forward 8080 when benchmarking Linux 2024-10-01 14:18:02 +08:00
Ruihan Li 17ea6e91b0 Benchmark TCP localhost with 64K messages 2024-09-30 20:37:57 +08:00
Shaowei Song c4cb0f1aef Quiet Linux boot logs to avoid mixing with result logs 2024-09-27 18:53:26 +08:00
Carlos López 0a36760f7a Respect user-defined exit signal in clone() and clone3()
When calling clone() and clone3(), the user is allowed to specify a
signal to be sent to the parent process on exit. Respect this value by
storing it in the Process struct and sending the signal on exit.

Add a test as well to verify that the signal is properly delivered to
the parent.
2024-09-26 20:07:43 +08:00
Yuke Peng 3929ea8c86 Stabilize some benchmark results 2024-09-26 15:33:16 +08:00
Shaowei Song f2af6136da Minor optimizations on both `lat-syscall-stat` and `lat-syscall-open` 2024-09-26 15:25:49 +08:00
Fabing Li 9abdebbae3 Add iperf3 benchmark 2024-09-26 10:03:32 +08:00
负雪 a7cb71161d Use summary.json to controll the overview charts of benchmarks 2024-09-25 14:05:49 +08:00
Ruihan Li 179705a3fc Fix RamFS readahead 2024-09-24 20:34:19 +08:00
Yuke Peng a997d9f0b0 Enable some gVisor futex tests 2024-09-22 16:00:56 +08:00
负雪 b9808136a4 Block failed futex and fcntl tests 2024-09-21 15:18:56 +08:00
负雪 9acc02a288 Hide Semaphores on the overview temporarily 2024-09-20 12:57:05 +08:00
Jianfeng Jiang c5009e38f1 Add pipe/short_rw test
Co-authored-by: Ruihan Li <lrh2000@pku.edu.cn>
2024-09-20 10:37:20 +08:00
Jianfeng Jiang ea8327af0f Add regression test for sendmsg/recvmsg 2024-09-20 10:37:20 +08:00
Jianfeng Jiang 70505ff4f8 Support futex wait timeout 2024-09-19 22:42:13 +08:00
Shaowei Song ceb6e2b242 Add lmbench-fs on ext2 in benchmark ci 2024-09-14 17:30:46 +08:00
Shaowei Song cfd23336e5 Make the benchmark comparison with Linux on ext2 fairer 2024-09-14 17:27:55 +08:00
Yuke Peng 66f2dacaf8 Add configuration file for Redis and Nginx 2024-09-14 13:22:50 +08:00
Yuke Peng 43b6926c11 Add applications to initramfs 2024-09-14 13:22:50 +08:00
Ruihan Li 320092eda2 Implement blocking `connect` properly 2024-09-13 22:09:46 +08:00
Ruihan Li 6f915133b5 Fix error codes in `bind` 2024-09-13 22:09:46 +08:00
Ruihan Li a345e11b96 Fix error codes in `send`, `recv`, `accept` 2024-09-13 22:09:46 +08:00
Ruihan Li a8592a16ea Fix I/O events related to shutdown 2024-09-13 22:09:46 +08:00
Ruihan Li 421f6b8e5b Fix I/O events cross different states 2024-09-13 22:09:46 +08:00
Ruihan Li f831f5685f Fix I/O events for UNIX connected sockets 2024-09-13 22:09:46 +08:00
Fabing Li 32bfa76703 Reorganize the structure of benchmarks 2024-09-13 21:03:25 +08:00
Ruihan Li 7a13c0dff6 Fix behavior related to EPOLLONESHOT 2024-09-13 21:02:06 +08:00
Ruihan Li 6151d65cf5 Fix poll behavior 2024-09-13 21:02:06 +08:00
Ruihan Li 479d98c8b9 Use `(fd, file)` as the key 2024-09-13 21:02:06 +08:00
Shaowei Song 8b1c69987f Make the benchmarks on ext2 more fair 2024-09-13 16:25:25 +08:00
Chen Chengjun 6645220810 Adjust the test parameters in lmbench mmap/pagefault tests 2024-09-12 21:09:16 +08:00
Yuke Peng f94d2e55f7 Disable SemOpMultiNoBlock 2024-09-02 17:12:04 +08:00
Jianfeng Jiang 9a2faff07b Enable lto in running benchmark 2024-09-02 17:09:48 +08:00
Yuke Peng eff41b6e97 Enable loopback network device in Linux 2024-08-29 20:21:10 +08:00
Yuke Peng 83d42d0783 Add lmbench localhost UDP latency test 2024-08-29 20:21:10 +08:00
Yuke Peng a84ed69f5f Add lmbench localhost TCP latency test 2024-08-29 20:21:10 +08:00
Yuke Peng 34352dc0d9 Add lmbench TCP connect latency test 2024-08-29 20:21:10 +08:00
Yuke Peng 316e4bf2c6 Add lmbench localhost TCP bandwidth test 2024-08-29 20:21:10 +08:00
Yuke Peng 9fec6ce95a Add lmbench HTTP latency test 2024-08-29 20:21:10 +08:00
Yuke Peng 936da1d6df Add lmbench select TCP test 2024-08-29 20:21:10 +08:00
Fabing Li 6ce25dc38b Fix lock releasing of fcntl 2024-08-29 17:06:01 +08:00
Ruihan Li 21a1041d27 Clean up files generated by UNIX regression tests 2024-08-28 19:54:36 +08:00
Ruihan Li 65aa156e92 Implement UNIX abstract address namespace 2024-08-28 19:54:36 +08:00
Jianfeng Jiang a72c7dadf3 Optimize the latency of lmbench-signal-prot 2024-08-28 14:27:41 +08:00
Yuke Peng 7b58d97aa2 Add regression test for `SO_REUSEADDR` 2024-08-28 14:01:18 +08:00
Yuke Peng d179fa8788 Enables F_SETOWN gVisor test 2024-08-27 22:14:40 +08:00
Zhang Junyang d313674a2b Add SMP tests with a general test blocklist 2024-08-27 17:22:47 +08:00
Chen Chengjun d499c1592d Add ldconfig to initramfs 2024-08-27 17:21:28 +08:00
Cautreoxit 86f09eef75 Fix all spelling mistakes in history by typos tool 2024-08-27 12:19:48 +08:00