1
我正在OS X(10.8.4)上實現我的第一個驅動程序。我的驅動程序應該每秒鐘在每個處理器上讀取MSR(0x198)並將值打印到system.log。os x所有處理器上的內核調用函數
我使用IOWorkLoop和IOTimerEventSource來喚醒每一秒,並調用一個打印MSR值的函數,但是我找不到關於如何在所有處理器上調用該函數的任何指南/文檔。
你會推薦在這種情況下使用什麼機制?
我正在OS X(10.8.4)上實現我的第一個驅動程序。我的驅動程序應該每秒鐘在每個處理器上讀取MSR(0x198)並將值打印到system.log。os x所有處理器上的內核調用函數
我使用IOWorkLoop和IOTimerEventSource來喚醒每一秒,並調用一個打印MSR值的函數,但是我找不到關於如何在所有處理器上調用該函數的任何指南/文檔。
你會推薦在這種情況下使用什麼機制?
找到了解決辦法:
void mp_rendezvous_no_intrs(void (*action_func)(void *), void *arg)
這將運行功能action_func與參數ARG上的所有核心。
你可以在這裏找到這個函數的源代碼: http://www.opensource.apple.com/source/xnu/xnu-1456.1.26/osfmk/i386/mp.c