SM501-User Level Device Driver

From eLinux.org
Jump to: navigation, search

概要

割り込みフックドライバ

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

Ulddexp-fio-nort-nodt-26.JPG

Ulddexp-fio-nort-dt-26.JPG

Ulddexp-fio-rt-nodt-26.JPG

Ulddexp-fio-rt-dt-26.JPG

Ulddexp-sig-nort-nodt-26.JPG

Ulddexp-sig-nort-dt-26.JPG

Ulddexp-sig-rt-nodt-26.JPG

Ulddexp-sig-rt-dt-26.JPG

Ulddexp-rtsig-nort-nodt-26.JPG

Ulddexp-rtsig-nort-dt-26.JPG

Ulddexp-rtsig-rt-nodt-26.JPG

Ulddexp-rtsig-rt-dt-26.JPG

Ulddexp-fio-nort-nodt-24.JPG

Ulddexp-fio-nort-dt-24.JPG

Ulddexp-fio-rt-nodt-24.JPG

Ulddexp-fio-rt-dt-24.JPG