【问题标题】:os x kernel call function on all processors所有处理器上的 os x 内核调用函数
【发布时间】:2013-03-02 10:33:32
【问题描述】:

我正在 OS X (10.8.4) 上实现我的第一个驱动程序。我的驱动程序应该每秒读取每个处理器上的 MSR (0x198) 并将值打印到 system.log。

我正在使用 IOWorkLoop 和 IOTimerEventSource 每秒唤醒一次并调用一个打印 MSR 值的函数,但我找不到任何关于如何在所有处理器上调用该函数的指南/文档。

在这种情况下,您建议使用什么机制?

【问题讨论】:

    标签: macos concurrency driver cpu iokit


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-26
      • 1970-01-01
      • 1970-01-01
      • 2012-04-18
      • 1970-01-01
      • 2021-04-22
      • 2020-06-17
      相关资源
      最近更新 更多