1

OS X (10.8.4) で最初のドライバーを実装しています。私のドライバーは、毎秒各プロセッサで MSR (0x198) を読み取り、その値を system.log に出力する必要があります。

IOWorkLoop と IOTimerEventSource を使用して毎秒目を覚まし、MSR 値を出力する関数を呼び出していますが、すべてのプロセッサで関数を呼び出す方法に関するガイド/ドキュメントが見つかりません。

この場合、どのメカニズムを使用することをお勧めしますか?

4

1 に答える 1

1

解決策を見つけました:

void mp_rendezvous_no_intrs(void (*action_func)(void *), void *arg)

これにより、すべてのコアで引数argを指定して関数action_funcが実行されます。

この関数のソース コードは、 http ://www.opensource.apple.com/source/xnu/xnu-1456.1.26/osfmk/i386/mp.c にあります。

于 2013-04-08T12:42:53.750 に答える