Re: ABI change for device drivers using future AVX instruction set

From: Agner Fog
Date: Sat Jun 28 2008 - 11:09:37 EST


Andi Kleen wrote:
>If a x86 device driver doesn't use the standard kernel interfaces for saving/restoring extended state
> (kernel_fpu_begin/end) it will die.That is because Linux uses lazy FPU saving by default and when the
>lazy FPU exception hits kernel code it will crash because that's not allowed. And the standard interfaces
>are going to handle all extended state supported by the kernel. Full XSAVE support should be there for
> 2.6.27.

Thank you Andi. Finally an exact and exhaustive answer. :-)
This info is not in the "Unreliable Guide To Hacking The Linux Kernel" or anywhere else except deeply hidden in the archives of this mailing list. I had to actually look into the source code of kernel_fpu_begin to verify that it saves not only the FPU but also the XMM registers and that it disables pre-emption.

You see why I want proper documentation? If this had been documented in some reference that was easy to find, I wouldn't have needed to take your time with all these questions...

Note: Please Cc: me of answers.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/