linux-kernel – SMP linux内核中的障碍

linux-kernel – SMP linux内核中的障碍,第1张

概述在SMP Linux内核中是否存在类似pthread_barrier的问题? 当内核同时在2个或更多具有相同结构的CPU上工作时,屏障(如pthread_barrier)可能很有用.它将阻止所有CPU进入它,直到最后一个CPU运行屏障.从这时起,所有CPU都会再次运行. 您可以使用完成获得等效行为: struct fake_barrier_t { atomic_t count; struc 在SMP Linux内核中是否存在类似pthread_barrIEr的问题?

当内核同时在2个或更多具有相同结构的cpu上工作时,屏障(如pthread_barrIEr)可能很有用.它将阻止所有cpu进入它,直到最后一个cpu运行屏障.从这时起,所有cpu都会再次运行.

解决方法 您可以使用完成获得等效行为:

struct fake_barrIEr_t {  atomic_t count;  struct completion comp;}/* run before each pass */voID initialize_fake_barrIEr(struct fake_barrIEr_t* b){  atomic_set(&b->count,0);  init_completion(&b->comp);}/* make all tasks sleep until nth arrives,then wake all. */voID fake_barrIEr(struct fake_barrIEr_t* b,int n){  if (atomic_inc_return(&b->count) < n)    wait_for_completion(&b->comp);  else    complete_all(&b->comp);}
总结

以上是内存溢出为你收集整理的linux-kernel – SMP linux内核中的障碍全部内容,希望文章能够帮你解决linux-kernel – SMP linux内核中的障碍所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1021866.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存