Jump to content

SM501-User Level Device Driver

From eLinux.org

概要

割り込みフックドライバ

Media:irqhook-0.0.4.tar.gz

サンプルアプリケーション

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 ⑫