小编roe*_*elf的帖子

pthread_self()和gettid()有什么区别?我应该使用哪一个?

我正在尝试在Linux上设置线程的CPU亲和性.我想知道推荐以下哪种方法:

  1. 使用pthread_self()获取线程ID

    通过将线程id作为参数传递,使用pthread_setaffinity_np(....)设置CPU关联

  2. 使用gettid()调用获取线程ID

    通过在进程id的位置传递线程id,使用sched_setaffinity(....)设置CPU关联

PS:设置CPU亲和性后,我打算增加线程的调度优先级.

linux pthreads affinity

23
推荐指数
1
解决办法
2万
查看次数

WBINVD指令用法

我正在尝试在linux上使用WBINV指令来清除处理器的L1缓存.

以下程序编译,但在我尝试运行它时会产生分段错误.

int main() {asm ("wbinvd"); return 1;}

我正在使用gcc 4.4.3并在我的x86机器上运行Linux内核2.6.32-33.

处理器信息:Intel(R)Core(TM)2 Duo CPU T5270 @ 1.40GHz

我按如下方式构建了该程序:

$ gcc

$ ./a.out

分段故障

谁能告诉我我做错了什么?我如何让它运行?

PS:我正在运行一些性能测试,并希望确保处理器缓存的先前内容不会影响结果.

c x86 assembly caching cpu-cache

7
推荐指数
2
解决办法
8598
查看次数

标签 统计

affinity ×1

assembly ×1

c ×1

caching ×1

cpu-cache ×1

linux ×1

pthreads ×1

x86 ×1