このページを編集する際は、編集に関する方針に従ってください。

概要

  • include/linux/kernel.hにて定義
  • デバッグを行う場合以外は特に処理を行わない
  • CONFIG_DEBUG_SPINLOCK_SLEEPが有効の状態で、例えばspin_lock_irq()で割込み禁止にしているのにkmap()の様なスリープを引起す(デッドロックを引起す)可能性のある処理を呼び出した場合、__might_sleep()がその旨の警告をカーネルメッセージに出力する。デバイスドライバのデバッグ時に有用。

実装

#ifdef CONFIG_DEBUG_SPINLOCK_SLEEP void __might_sleep(char *file, int line);

#define might_sleep() __might_sleep(__FILE__, __LINE__)

#else

#define might_sleep() do {} while(0)

#endif

呼出元


履歴

  • 作者:ひら
  • 日付:2005/7/7
  • 対象:2.6.10
    更新日更新者更新内容

コメント

  • 2.6.17見てたら、CONFIG_PREEMPT_VOLUNTARYというコンフィグがONの時、schedule()するように変わってました。 -- kosaki? 2006-06-24 (土) 22:54:16
  • 情報、ありがとうございます>kosakiさん。新たに追加されたコンフィグですね。カーネルのロッキング粒度で言うと、細流度(CONFIG_PREEMPT)、中粒度(CONFIG_PREEMPT_VOLUNTARY)、粗粒度(CONFIG_PREEMPT_NONE)と言う感じでしょうか。もう少し細かく設定できると良いかも。 -- ひら 2006-06-25 (日) 13:37:31
  • 稚拙ながら、デバドラのデバッグ時に有用である事を追記させて頂きましたm(_ _)m -- としひさ? 2007-03-01 (木) 23:26:07
  • ありがとうございます(^-^) >としひささん -- ひら 2007-03-02 (金) 00:10:17


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-02-09 (木) 18:04:54 (135d)