--- 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 |