diff --git a/.github/workflows/benchmark_asterinas.yml b/.github/workflows/benchmark_asterinas.yml index 8d36eef4f..a58423b78 100644 --- a/.github/workflows/benchmark_asterinas.yml +++ b/.github/workflows/benchmark_asterinas.yml @@ -11,7 +11,19 @@ jobs: runs-on: self-hosted strategy: matrix: - benchmark: [sysbench-cpu, sysbench-thread, getpid] + benchmark: + - sysbench-cpu + - sysbench-thread + - getpid + - lmbench-getpid + - lmbench-fork + - lmbench-signal + # TODO: The following benchmarks are disabled now for some reasons. + # + # In Linux, lack of /dev/null device + # - lmbench-write + # In Linux, lack of /dev/zero device + # - lmbench-read fail-fast: false timeout-minutes: 60 container: diff --git a/test/benchmark/lmbench-fork/config.json b/test/benchmark/lmbench-fork/config.json new file mode 100644 index 000000000..a883e9875 --- /dev/null +++ b/test/benchmark/lmbench-fork/config.json @@ -0,0 +1,5 @@ +{ + "alert_threshold": "125%", + "pattern": "Process fork", + "field": "3" +} diff --git a/test/benchmark/lmbench-fork/result_template.json b/test/benchmark/lmbench-fork/result_template.json new file mode 100644 index 000000000..9727f6604 --- /dev/null +++ b/test/benchmark/lmbench-fork/result_template.json @@ -0,0 +1,14 @@ +[ + { + "name": "Average Fork latency on Linux", + "unit": "ms", + "value": 0, + "extra": "linux_avg" + }, + { + "name": "Average Fork latency on Asterinas", + "unit": "ms", + "value": 0, + "extra": "aster_avg" + } +] \ No newline at end of file diff --git a/test/benchmark/lmbench-fork/run.sh b/test/benchmark/lmbench-fork/run.sh new file mode 100644 index 000000000..9a8e72029 --- /dev/null +++ b/test/benchmark/lmbench-fork/run.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +# SPDX-License-Identifier: MPL-2.0 + +set -e + +echo "*** Running lmbench-fork ***" + +/benchmark/bin/lmbench/lat_proc -P 1 fork \ No newline at end of file diff --git a/test/benchmark/lmbench-getpid/config.json b/test/benchmark/lmbench-getpid/config.json new file mode 100644 index 000000000..73ada0a15 --- /dev/null +++ b/test/benchmark/lmbench-getpid/config.json @@ -0,0 +1,5 @@ +{ + "alert_threshold": "125%", + "pattern": "Simple syscall:", + "field": "3" +} diff --git a/test/benchmark/lmbench-getpid/result_template.json b/test/benchmark/lmbench-getpid/result_template.json new file mode 100644 index 000000000..93a6384b2 --- /dev/null +++ b/test/benchmark/lmbench-getpid/result_template.json @@ -0,0 +1,14 @@ +[ + { + "name": "Average syscall latency on Linux", + "unit": "ms", + "value": 0, + "extra": "linux_avg" + }, + { + "name": "Average syscall latency on Asterinas", + "unit": "ms", + "value": 0, + "extra": "aster_avg" + } +] \ No newline at end of file diff --git a/test/benchmark/lmbench-getpid/run.sh b/test/benchmark/lmbench-getpid/run.sh new file mode 100644 index 000000000..d23fa6f02 --- /dev/null +++ b/test/benchmark/lmbench-getpid/run.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +# SPDX-License-Identifier: MPL-2.0 + +set -e + +echo "*** Running lmbench-getpid ***" + +/benchmark/bin/lmbench/lat_syscall -P 1 null \ No newline at end of file diff --git a/test/benchmark/lmbench-read/config.json b/test/benchmark/lmbench-read/config.json new file mode 100644 index 000000000..4526c78b6 --- /dev/null +++ b/test/benchmark/lmbench-read/config.json @@ -0,0 +1,5 @@ +{ + "alert_threshold": "150%", + "pattern": "Simple read:", + "field": "3" +} diff --git a/test/benchmark/lmbench-read/result_template.json b/test/benchmark/lmbench-read/result_template.json new file mode 100644 index 000000000..6c15e5911 --- /dev/null +++ b/test/benchmark/lmbench-read/result_template.json @@ -0,0 +1,14 @@ +[ + { + "name": "Average read latency on Linux", + "unit": "ms", + "value": 0, + "extra": "linux_avg" + }, + { + "name": "Average read latency on Asterinas", + "unit": "ms", + "value": 0, + "extra": "aster_avg" + } +] \ No newline at end of file diff --git a/test/benchmark/lmbench-read/run.sh b/test/benchmark/lmbench-read/run.sh new file mode 100644 index 000000000..c1824da15 --- /dev/null +++ b/test/benchmark/lmbench-read/run.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +# SPDX-License-Identifier: MPL-2.0 + +set -e + +echo "*** Running lmbench-syscall-read ***" + +/benchmark/bin/lmbench/lat_syscall -P 1 read \ No newline at end of file diff --git a/test/benchmark/lmbench-signal/config.json b/test/benchmark/lmbench-signal/config.json new file mode 100644 index 000000000..c60d4d265 --- /dev/null +++ b/test/benchmark/lmbench-signal/config.json @@ -0,0 +1,5 @@ +{ + "alert_threshold": "125%", + "pattern": "Signal handler overhead:", + "field": "4" +} diff --git a/test/benchmark/lmbench-signal/result_template.json b/test/benchmark/lmbench-signal/result_template.json new file mode 100644 index 000000000..00db1ab75 --- /dev/null +++ b/test/benchmark/lmbench-signal/result_template.json @@ -0,0 +1,14 @@ +[ + { + "name": "Average Signal handler overhead on Linux", + "unit": "ms", + "value": 0, + "extra": "linux_avg" + }, + { + "name": "Average Signal handler overhead on Asterinas", + "unit": "ms", + "value": 0, + "extra": "aster_avg" + } +] \ No newline at end of file diff --git a/test/benchmark/lmbench-signal/run.sh b/test/benchmark/lmbench-signal/run.sh new file mode 100644 index 000000000..24cf0e0f4 --- /dev/null +++ b/test/benchmark/lmbench-signal/run.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +# SPDX-License-Identifier: MPL-2.0 + +set -e + +echo "*** Running lmbench-signal catch ***" + +/benchmark/bin/lmbench/lat_sig -P 1 catch \ No newline at end of file diff --git a/test/benchmark/lmbench-write/config.json b/test/benchmark/lmbench-write/config.json new file mode 100644 index 000000000..d8e330dde --- /dev/null +++ b/test/benchmark/lmbench-write/config.json @@ -0,0 +1,5 @@ +{ + "alert_threshold": "150%", + "pattern": "Simple write:", + "field": "3" +} diff --git a/test/benchmark/lmbench-write/result_template.json b/test/benchmark/lmbench-write/result_template.json new file mode 100644 index 000000000..2b28159b8 --- /dev/null +++ b/test/benchmark/lmbench-write/result_template.json @@ -0,0 +1,14 @@ +[ + { + "name": "Average write latency on Linux", + "unit": "ms", + "value": 0, + "extra": "linux_avg" + }, + { + "name": "Average write latency on Asterinas", + "unit": "ms", + "value": 0, + "extra": "aster_avg" + } +] \ No newline at end of file diff --git a/test/benchmark/lmbench-write/run.sh b/test/benchmark/lmbench-write/run.sh new file mode 100644 index 000000000..5b1df07b5 --- /dev/null +++ b/test/benchmark/lmbench-write/run.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +# SPDX-License-Identifier: MPL-2.0 + +set -e + +echo "*** Running lmbench-syscall-write ***" + +/benchmark/bin/lmbench/lat_syscall -P 1 write \ No newline at end of file