タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

timeとlinuxに関するtorazukaのブックマーク (1)

  • カーネルタイマは何故リストで管理されているのか - big-eyed-hamster’s diary

    カーネルタイマは何故リストで管理されているのか、という理由がわかった気がするのでメモ. カーネルタイマは expires (点火する時間)で5段階に場合わけされて管理されているが、ロックはこの5段階ごとに保持されている. 何故タイマ毎にロックをしないのだろう? その方がロックの粒度が小さくなり、並列度が増すはずだ. 仮に timer_list 構造体が spinlock_t lock 持っていたとして、カーネル側の実装は以下のようにすればよさげに見える. /* kernel side functions */ void __run_timers(void) { while( timer_list_has_timers(lists) ){ timer = get_next_timer(); fn = timer->function; data = timer->data; ... spin_

    カーネルタイマは何故リストで管理されているのか - big-eyed-hamster’s diary
  • 1