From: eLinux.org
SM501-User Level Device Driver
Contents
概要
割り込みフックドライバ
サンプルアプリケーション
SM501 UARTシリアルターミナル for RTS7715R2D
Media:sm501uart_tty-0.0.1.tar.gz
実験
目的
割り込み処理をユーザタスクで行う場合に問題となる、割り込み応答時間のレイテンシ増分を測定する。
環境
- Target platform
Renesas RTS7751R2D
SH4(SH7751) 240MHz
64MB SDRAM
10Base-T Ethernet
Linux 2.6.16.4 / 2.4.20
256MB Compact Flash for rootfs
方法
シリアルからデータを送信し、割り込み発生後、カーネルドライバの割り込みハンドラが起動してから、ハンドラによってwakeup()されたULDDが起床するまでの時間を測定する。
- 10KBのデータを38400bpsで送信
- データ受信時の起床時間(カーネル割り込みハンドラ起動直後からULDD復帰までの時間を計測)を計測
- 負荷状況を変化
- (none): 負荷なし
- lat_proc:
lmbench3付属のプロセス生成ベンチマークをバッググラウンドで実行(./lat_proc
-P 3 -N 20 exec &)
- Non-RT(SCHED_OTHER), RT(SCHED_RR, sched_prio=1)スレッドを使用
結果
2” | IRQ Delivering Method | 2” | Scheduling Policy | 2” | Disturbance Task | Linux 2.6.16.4 (CONFIG_PREEMPT=y) | Linux 2.4.20 | ||||||
MAX (us) | AVG (us) | MIN (us) | Plot | MAX (us) | AVG (us) | MIN (us) | Plot | |||
File I/O (sync) | SCHED_OTHER | (none) | 39.80 | 17.52 | 13.73 | ① | 14.93 | 6.98 | 6.87 | ⑬ |
SCHED_OTHER | lat_proc | 253.27 | 42.57 | 10.93 | ② | 2808.13 | 478.43 | 6.53 | ⑭ | |
SCHED_RR | (none) | 38.13 | 15.73 | 14.07 | ③ | 17.13 | 6.34 | 6.20 | ⑮ | |
SCHED_RR | lat_proc | 33.73 | 14.32 | 8.80 | ④ | 2697.13 | 485.29 | 6.60 | ⑯ | |
SIGIO (async) | SCHED_OTHER | (none) | 524.00 | 62.84 | 45.47 | ⑤ | ||||
SCHED_OTHER | lat_proc | 72317.40 | 2185.96 | 83.33 | ⑥ | |||||
SCHED_RR | (none) | 81.40 | 47.12 | 43.67 | ⑦ | |||||
SCHED_RR | lat_proc | 280.93 | 102.89 | 79.40 | ⑧ | |||||
SIGRT (async) | SCHED_OTHER | (none) | 83.47 | 50.00 | 44.80 | ⑨ | ||||
SCHED_OTHER | lat_proc | 85973.93 | 2528.19 | 85.40 | ⑩ | |||||
SCHED_RR | (none) | 75.93 | 46.71 | 43.07 | ⑪ | |||||
SCHED_RR | lat_proc | 290.80 | 102.18 | 78.87 | ⑫ |