---
tags: linux-rt, preempt-rt, real-time
---
# `oslat` 實驗數據
## configuration
- `/proc/cmdline`
```
isolcpus=domain,nohz,2 nohz_full=2 irqaffinity=0,1,3
```
- `/proc/version`
```bash
5.15.18-rt28 # x86_64 KVM
5.15.18-rpi-rt28 # Raspberry Pi 4B
```
### test command
```shell
$ oslat -w memmove -m 16k -D 1m -c 2 -b 400
```
### workload
- timer
```
taskset 0,1,3
timer 20
```
- fault
```
taskset 0,1,3
fault 20
```
- vm + mmap
```
taskset 0,1,3
vm 2
vm-bytes 2G
mmap 2
mmap-bytes 2G
page-in
```
- fault + vm + mmap
```
taskset 0,1,3
fault 10
vm 2
vm-bytes 2G
mmap 2
mmap-bytes 2G
page-in
```
## aarch64 (Raspberry Pi 4B)
### workload: timer
![](https://i.imgur.com/EiJIXBp.png)
| | PREEMPT_RT + NOHZ_FULL | TASKISOL + PREEMPT_RT + NOHZ_FULL |
| - | - | - |
| min (us) | 4 | 4 |
| avg (us) | 4.026119 | 4.348928 |
| max (us) | 99 | 12 |
| duration (sec) | 899.928 | 900.028 |
### workload: page fault
![](https://i.imgur.com/jx1SxPI.png)
| | PREEMPT_RT + NOHZ_FULL | TASKISOL + PREEMPT_RT + NOHZ_FULL |
| - | - | - |
| min (us) | 4 | 4 |
| avg (us) | 4.162131 | 4.000002 |
| max (us) | 11 | 11 |
| duration (sec) | 900.08 | 899.999 |
### workload: vm + mmap
![](https://i.imgur.com/fCkJKaD.png)
| | PREEMPT_RT + NOHZ_FULL | TASKISOL + PREEMPT_RT + NOHZ_FULL |
| - | - | - |
| min (us) | 4 | 4 |
| avg (us) | 4.000252 | 4.000085 |
| max (us) | 125 | 167 |
| duration (sec) | 900.032 | 900.036 |
### workload: vm + mmap + fault
![](https://i.imgur.com/DZP9pzc.png)
| | PREEMPT_RT + NOHZ_FULL | TASKISOL + PREEMPT_RT + NOHZ_FULL |
| - | - | - |
| min (us) | 5 | 4 |
| avg (us) | 5.14079 | 4.000184 |
| max (us) | 152 | 125 |
| duration (sec) | 900.049 | 899.977 |
## x86_64 (KVM)
### workload: timer
![](https://i.imgur.com/mUhZipc.png)
| | PREEMPT_RT + NOHZ_FULL | TASKISOL + PREEMPT_RT + NOHZ_FULL |
| - | - | - |
| min (us) | 2 | 2 |
| avg (us) | 2.007391 | 2.012791 |
| max (us) | 8391 | 30774 |
| duration (sec) | 899.182 | 899.183 |
### workload: fault
![](https://i.imgur.com/11ILoZv.png)
| | PREEMPT_RT + NOHZ_FULL | TASKISOL + PREEMPT_RT + NOHZ_FULL |
| - | - | - |
| min (us) | 2 | 2 |
| avg (us) | 2.011208 | 2.015257 |
| max (us) | 5019 | 27741 |
| duration (sec) | 899.181 | 901.229 |
### workload: vm + mmap
![](https://i.imgur.com/xynIZ3u.png)
| | PREEMPT_RT + NOHZ_FULL | TASKISOL + PREEMPT_RT + NOHZ_FULL |
| - | - | - |
| min (us) | 2 | 2 |
| avg (us) | 2.016188 | 2.02046 |
| max (us) | 10153 | 12648 |
| duration (sec) | 899.182 | 901.229 |
### workload: vm + mmap + fault
![](https://i.imgur.com/loRdpCI.png)
| | PREEMPT_RT + NOHZ_FULL | TASKISOL + PREEMPT_RT + NOHZ_FULL |
| - | - | - |
| min (us) | 2 | 2 |
| avg (us) | 2.014711 | 2.013344 |
| max (us) | 12908 | 12707 |
| duration (sec) | 899.183 | 899.184 |
## x86_64 (Intel i7-7700HQ)
### workload: timer
![](https://i.imgur.com/T1skaBA.png)
| | PREEMPT_RT + NOHZ_FULL | TASKISOL + PREEMPT_RT + NOHZ_FULL |
| - | - | - |
| min (us) | 1 | 1 |
| avg (us) | 1.002206 | 1.002401 |
| max (us) | 64 | 101 |
| duration (sec) | 900.014 | 899.668 |
### workload: fault
![](https://i.imgur.com/YEd2t6Z.png)
| | PREEMPT_RT + NOHZ_FULL | TASKISOL + PREEMPT_RT + NOHZ_FULL |
| - | - | - |
| min (us) | 1 | 1 |
| avg (us) | 1.001702 | 1.001676 |
| max (us) | 64 | 59 |
| duration (sec) | 899.586 | 899.635 |
### workload: vm + mmap
![](https://i.imgur.com/IbcT4HS.png)
| | PREEMPT_RT + NOHZ_FULL | TASKISOL + PREEMPT_RT + NOHZ_FULL |
| - | - | - |
| min (us) | 1 | 1 |
| avg (us) | 1.000262 | 1.000223 |
| max (us) | 60 | 45 |
| duration (sec) | 899.657 | 899.679 |
### workload: fault + vm + mmap
![](https://i.imgur.com/oDXJSs2.png)
| | PREEMPT_RT + NOHZ_FULL | TASKISOL + PREEMPT_RT + NOHZ_FULL |
| - | - | - |
| min (us) | 1 | 1 |
| avg (us) | 1.002077 | 1.002238 |
| max (us) | 63 | 317 |
| duration (sec) | 899.694 | 899.677 |