如何从用户空间应用程序(Linux,C)中获取CPU内核号?
大概有一个库或简单的asm blob,可以获取我正在执行的当前CPU的编号。
回答:
使用sched_getcpu
以确定在其上调用线程运行的CPU。请参阅man getcpu
(系统调用)和man
sched_getcpu(库包装器)。但是,请注意其内容:
仅在调用时保证放置在cpu中的信息是最新的:除非已使用sched_setaffinity(2)修复了CPU关联性,否则内核可能随时更改CPU。(通常不会发生这种情况,因为调度程序会尝试最大程度地减少CPU之间的移动以保持高速缓存保持高速,但有可能这样做。)当cpu和node不再是当前的CPU和节点时,调用者必须准备好处理这种情况。
以上是 如何从用户空间应用程序(Linux,C)中获取CPU内核号? 的全部内容, 来源链接: utcz.com/qa/410550.html