Re: [PATCH 2/3] x86_64: Define 128-bit memory-mapped I/O operations
From: "H. Peter Anvin" <hpa@zytor.com>
Date: 2012-08-22 03:24:40
On 08/21/2012 07:34 PM, David Miller wrote:
I really hope we eventually get rid of this rediculous restriction the x86 code has. It really needs a proper stack of FPU state saves like sparc64 has. Half of the code and complexity in arch/x86/crypto/ would just disappear, because most of it has to do with handling this obtuse FPU usage restriction which shouldn't even be an issue in the first place. I continually see more and more code that has to check this irq_fpu_usable() thing, and have ugly fallback code, and therefore is a sign that this really needs to be fixed properly.
[Cc: Linus, since he has had very strong opinions on this in the past.] I'm all ears... tell me how sparc64 deals with this, maybe we can implement something similar. At the same time, do keep in mind that on x86 this is not just a matter of the FPU state, but the entire "extended state" which can be very large. Given the cost of state save/enable, however, nothing is going to change the need for kernel_fpu_begin/end, nor the fact that those things will want to bracket large regions. -hpa