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

Ily*_*kov 11 sse kernel-module linux-kernel avx

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

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

Pet*_*ter 12

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

http://agner.org/optimize/calling_conventions.pdf的 6.3节很好地描述了在Windows和Linux中在内核模式下使用向量寄存器的过程.这是一个重要的引用:

需要使用向量寄存器的设备驱动程序必须首先通过调用函数kernel_fpu_begin()来保存这些寄存器,并在返回或休眠之前通过调用kernel_fpu_end()来恢复寄存器.

还有更多,比如在中断环境中根本不能使用它们,所以我建议阅读整个部分.