相互参照(x-ref)ソースブラウザにアクセスできる場合、これは簡単に答えることができます。
Linuxカーネルのオンラインx-refプロジェクトを1つ入手するには、 http: //lxr.linux.no/#linux+v3.6.3/kernel/sched/core.c#L3214をクリックしてください。(これはアセンブラコードを外部参照しません。)
このリンクは scheduler_tick
関数定義に移動します。関数名をクリックし、右側の新しいパネルで、「関数プロトタイプまたは宣言」リンク「usage...」の後に選択します。しばらくすると、この関数に言及しているすべてのコードが一覧表示されます。
include/linux/sched.h, line 309 << declaration
kernel/sched/core.c, line 3214 << definition
kernel/timer.c, line 1373 << calling
したがって、timer.c:1373 http://lxr.linux.no/#linux+v3.6.3/kernel/timer.c#L1373はupdate_process_times
関数の一部です:
1355 /*
1356 * Called from the timer interrupt handler to charge one tick to the current
1357 * process. user_tick is 1 if the tick is user time, 0 for system.
1358 */
1359 void update_process_times(int user_tick)
この関数は、タイマー割り込みハンドラーからのみ呼び出すことができます。ティックごとに呼び出す必要があります。
update_process_times
リストを取得するには、相互参照検索プロセスを繰り返します。
References:
arch/alpha/kernel/smp.c, line 520
arch/arm/kernel/time.c, line 108
arch/cris/arch-v10/kernel/time.c, line 171
arch/cris/arch-v32/kernel/time.c, line 206
arch/h8300/kernel/time.c, line 40
arch/ia64/kernel/time.c, line 184
arch/m68k/kernel/time.c, line 38
arch/parisc/kernel/time.c, line 163
include/linux/sched.h, line 308
kernel/time/tick-sched.c, line 683
kernel/time/tick-sched.c, line 841
関連する割り込み番号
割り込み番号はプラットフォームに依存します(起動時に割り当てられることもあります)。興味のあるプラットフォームについては言わなかった。
2)Linuxでscheduler_tickを呼び出す他の割り込みもありますか?もしあれば、どれですか?
hrtimers(高解像度タイマー。これは通常のシステムタイマーとは異なる場合があります)を含む、いくつかのタイマーの実装があります。実装ごとに異なる割り込みを使用できます。