tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: "Hijacking" a PCU.
On Dec 15, 2012, at 12:48 PM, David Laight wrote:
> On Sat, Dec 15, 2012 at 11:24:09AM -0800, Matt Thomas wrote:
>>>
>>> On amd64 the safe area we currently have for SSE2 is 512 bytes.
>>> Add support for the 256 AVX instructions and it increases to 832.
>>> You really don't want to be allocating multiple such saved areas
>>> (per lwp) on the off chance the kernel might want to use the registers.
>>
>> Since this is MD, you only need to save the register your kernel
>> MD code will be using.
>
>>> 3) Saving and restoring a register may zero the high bits of an
>>> extended version of that register.
>>
>> That's an md problem.
>
> Since you are trying to sort out an MI solution you need to be aware
> of the known MD problems - otherwise the framework won't work for it.
I disagree. Just because an MD platform sucks and has extra overhead because
of architectural issues doesn't mean the framework is broken. You'd have that
issue regardless of implementation method.
> If an x86 program is using the 256bit AVX instructions, and some
> kernel code wants to use one of the 128bit SSE registers, then the
> kernel code has to save the 256 bit register, not the 128bit one.
> (And next year, the register might be extended even further, requiring
> different save/restore instructions.)
The hijack is entirely MD, if the kernel MD code doesn't use hijack then it
doesn't really matter.
> Effectively this means that a completely separate fpu save area is needed.
> You can't just save a couple of registers on stack.
Sucks to be x86. But then is that really anything new?
Home |
Main Index |
Thread Index |
Old Index