Re: [PATCH 1/2] x86: eliminate TS_XSAVE

From: Avi Kivity
Date: Sun May 02 2010 - 13:45:17 EST


On 05/02/2010 08:38 PM, Brian Gerst wrote:
On Sun, May 2, 2010 at 10:53 AM, Avi Kivity<avi@xxxxxxxxxx> wrote:
The fpu code currently uses current->thread_info->status& TS_XSAVE as
a way to distinguish between XSAVE capable processors and older processors.
The decision is not really task specific; instead we use the task status to
avoid a global memory reference - the value should be the same across all
threads.

Eliminate this tie-in into the task structure by using an alternative
instruction keyed off the XSAVE cpu feature; this results in shorter and
faster code, without introducing a global memory reference.
I think you should either just use cpu_has_xsave, or extend this use
of alternatives to all cpu features. It doesn't make sense to only do
it for xsave.

I was trying to avoid a performance regression relative to the current code, as it appears that some care was taken to avoid the memory reference.

I agree that it's probably negligible compared to the save/restore code. If the x86 maintainers agree as well, I'll replace it with cpu_has_xsave.

--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.

--
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/