(toppers-users 3325) Re: RX610簡易パッケージでOSタイマ割り込みのトレース出力

片岡 歩 kata @ witz-inc.co.jp
2010年 12月 16日 (木) 11:50:49 JST


ソフトバンク 大河原様
杉本様

RX610を担当させていただいております、
ヴィッツの片岡と申します。

ご指摘いただいた問題について、ログの内容から推測しました。
ログ時刻がusec単位と思われますので、時刻取得にget_utmを利用
する様に変更されていると思っています。

経験則よりenterとleaveの差1003について、
3がハンドラ実行時間の3usec
1000がシステム時刻である1000usec(1msec)
と考えています。

get_utmはシステム時刻をベースとしておりますので、
システム時刻を更新する過渡期に当たるOSタイマ割込みハンドラの
ENTERタイミングでは、
ハード的には1msecの時間が経過しているが、ソフトウェアでシステム
時刻を更新していない状態、かつ、過渡期であることを判断する
方法がない状態です。
このため、ENTERログの時刻が1システム時刻前と表示されてしまっています。
最初のメールで記載いただいているとおり、システム時刻をベースとしている
get_utmでログ時刻を取得する以上、致し方ない現象と考えます。

OSタイマ割込み発生からシステム時刻更新までをアトミックに処理する
必要があることから、この現象はOSタイマ割込みより優先度の高い割込みで
get_utmを実行した場合も、起こる可能性があります。

対策としては、ログ時刻のソースを別タイマにすることが単純です。
なお、OSタイマ割込みや、それより高レベルの割込みハンドラ以外は
正しく計測できますので、無理にget_utmから変更しなくても良いかと思います。

以上、よろしくお願いします。

>杉本様
>
>はじめまして、大河原と申します。
>
>返信が遅れて申し訳ありません。早々のご連絡ありがとうございました。
>
>>これはLOG_INH_ENTER/LEAVEのログ出力において,
>>ある時点のタイマ割込みのLEAVE時刻が,その次の
>>タイマ割込みのENTER時刻より未来を指している(過去<未来の
>>はずか未来<過去)という解釈でよろしいでしょうか?
>
>その通りです。
>LEAVEの後に出力される次のENTERのログが過去の時刻となってしまいます。
>実際の出力されたログの一部を以下に貼り付けます。(一番左の数字は行数を現しています。)
>
>69:[10000] enter to int handler 28.
>70:[11003] leave from int handler 28.
>71:[11000] enter to int handler 28.
>72:[12003] leave from int handler 28.
>73:[12000] enter to int handler 28.
>74:[13003] leave from int handler 28.
>75:[13000] enter to int handler 28.
>76:[14003] leave from int handler 28.
>77:[14000] enter to int handler 28.
>78:[15003] leave from int handler 28.
>
>69,70行目、71,72行目、・・・77,78行目と対のログとなるのですが、
>70,71行目、72,73行目のように、ENTERとLEAVEの関係が未来<過去
>となってしまいます。
>
>以上、よろしくお願いします。
>
>
>----- Original Message ----- 
>From: "Meika Sugimoto" <asuka.choronos @ gmail.com>
>To: <users @ toppers.jp>
>Sent: Wednesday, December 15, 2010 6:09 PM
>Subject: (toppers-users 3323) Re: RX610簡易パッケージでOSタイマ割り込みのトレース出力
>
>
>> 大河原様
>>
>> 杉本と申します.
>>
>> ご報告いただいた現象の問題点が分かりづらく
>> 思えたので確認させてください.
>>
>>> この時、OSタイマ割り込みのLEAVEトレースの時刻と、次回のOSタイマ割り込みの
>>> ENTERトレース時刻の大小関係が逆転してしまいした。
>>
>> とのことですが,これはLOG_INH_ENTER/LEAVEのログ出力において,
>> ある時点のタイマ割込みのLEAVE時刻が,その次の
>> タイマ割込みのENTER時刻より未来を指している(過去<未来の
>> はずか未来<過去)という解釈でよろしいでしょうか?
>>
>> 実際のログ出力も貼りつけて頂けるとありがたいです.
>>
>>
>> 以上,よろしくお願いします.
>>
>> 
>
>
>
>

★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
||                                                                  ||
|| (株)ヴィッツ                                                   ||
||    組込制御開発部 組込制御室                         ||
||                                                                  ||
||     片岡 歩    E-mail:kata @ witz-inc.co.jp                      ||
||                                                                  ||
||    〒460-0008 名古屋市中区栄2-13-1 白川第2ビル2F/7F              ||
||       TEL:(052)223-7570                      ||
||           (052)220-1218(代表)                                    ||
||       FAX:(052)218-5855                                          ||
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜