Linux kernel Linux内核是否有自己的SSE/AVX上下文?

Linux kernel Linux内核是否有自己的SSE/AVX上下文?,linux-kernel,sse,kernel-module,avx,Linux Kernel,Sse,Kernel Module,Avx,Linux内核是否有自己的SSE/AVX上下文 我的意思是,从内核模块的角度来看,我可以使用SSE/AVX指令而不用担心可能也会使用它的用户空间应用程序吗?或者我需要使用一些锁还是手动保存一些上下文?Linux内核默认情况下不保存FPU或向量寄存器,以提高上下文切换的速度。但是,您可以在某些情况下使用它们 的第6.3节很好地描述了在Windows和Linux内核模式下向量寄存器的使用。这里有一句重要的话: 需要使用向量寄存器的设备驱动程序必须首先保存 这些寄存器通过调用函数kernel_fpu_

Linux内核是否有自己的SSE/AVX上下文


我的意思是,从内核模块的角度来看,我可以使用SSE/AVX指令而不用担心可能也会使用它的用户空间应用程序吗?或者我需要使用一些锁还是手动保存一些上下文?

Linux内核默认情况下不保存FPU或向量寄存器,以提高上下文切换的速度。但是,您可以在某些情况下使用它们

的第6.3节很好地描述了在Windows和Linux内核模式下向量寄存器的使用。这里有一句重要的话:

需要使用向量寄存器的设备驱动程序必须首先保存 这些寄存器通过调用函数kernel_fpu_begin()和restore 在返回或之前,通过调用kernel_fpu_end()调用寄存器 睡觉


还有更多的问题,比如你根本不能在中断上下文中使用它们,所以我建议阅读整个部分。

我想知道为什么投票结果如此接近?这似乎是一个有效且有用的问题。可能重复:。特别是在回答这个问题时,请参阅参考资料:第6.3节,我需要知道是否可以使用LKM中的AVX指令。没有人会告诉我。我也不想找通话约定。你没看文档吗?它说:“需要使用向量寄存器的设备驱动程序必须首先通过调用函数
kernel\u fpu\u begin()
保存这些寄存器,然后通过调用
kernel\u fpu\u end()
在返回或休眠之前恢复这些寄存器。”还有更多的问题,比如在中断上下文中根本不能使用它们。简短回答:是的,你可以。答案很长:但是有限制。阅读文档@彼得:那将是一个非常好的回答。非常感谢你的回答:)