我可以在Linux驱动程序(内核-空间)中使用#include 和atomic_thread_fence()与来自C11的memory_order,还是必须使用Linux的内存屏障函数:
使用:
发布于 2014-02-01 12:41:51
如果您正在编写内核代码,则应该使用C语言编写,并在当前内核所需的C版本中进行编写(发布gcc版)。如果您想让它被接受到主线中(或者把它写成要被接受的样子),那么您应该使用Linux函数。您还会发现,它们的工作没有意外的惊喜,您将得到更好的调试帮助。
摘要:使用linux函数。
发布于 2015-06-27 17:47:33
编辑:它似乎不起作用。不管有没有,都没有什么区别。驱动程序可以编译,但是lib将返回到普通整数或NOP。
好像很管用。
atomic_store()和atomic_load()提供了内核模块驱动程序和userland程序之间所需的线程同步。不确定的是,如果使用回退方法,我的意思是编译器使用标准整数和常规程序集指令。
可以随意查看函数中的源代码:intelfreq.c / Core_Cycle()和corefreqd.c / Core_Cycle()
https://stackoverflow.com/questions/21497761
复制相似问题