Re: [PATCH 1/2] x86/math-emu: Add support for FCMOVcc and F[U]COMI[P] insns

From: Denys Vlasenko
Date: Fri Sep 18 2015 - 10:53:29 EST


On 09/18/2015 09:33 AM, Ingo Molnar wrote:
>
> * Denys Vlasenko <dvlasenk@xxxxxxxxxx> wrote:
>
>> Run-tested by booting with "no387 nofxsr" and running test programs:
>>
>> # ./test_FCMOV
>> [RUN] Testing fcmovCC instructions
>> [OK] fcmovCC
>> # ./test_FCOMI
>> [RUN] Testing f[u]comi[p] instructions
>> [OK] f[u]comi[p]
>>
>> Signed-off-by: Denys Vlasenko <dvlasenk@xxxxxxxxxx>
>> CC: Ingo Molnar <mingo@xxxxxxxxxx>
>> CC: Borislav Petkov <bp@xxxxxxxxx>
>> CC: "H. Peter Anvin" <hpa@xxxxxxxxx>
>> CC: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
>> CC: Kees Cook <keescook@xxxxxxxxxxxx>
>> CC: x86@xxxxxxxxxx
>> CC: linux-kernel@xxxxxxxxxxxxxxx
>> ---
>>
>> The patches did not change since last submission.
>> The difference, now they are run-tested.
>>
>> arch/x86/math-emu/fpu_aux.c | 70 ++++++++++++++++++++++
>> arch/x86/math-emu/fpu_entry.c | 49 +++++++++------
>> arch/x86/math-emu/fpu_proto.h | 12 ++++
>> arch/x86/math-emu/reg_compare.c | 128 ++++++++++++++++++++++++++++++++++++++++
>> 4 files changed, 241 insertions(+), 18 deletions(-)
>
> I wanted to apply this patch, but noticed the following problem: why are two
> instruction families added in a single patch?

They were introduced at the same time in the CPU evolution
(when CMOV feature was added).

The idea is that there may be programs which assume that "cmov"
in /proc/cpuinfo means both these insns are safe to use,
which is true for all real CPUs.

> Note that regressing math-emu for real is a real concern here: we start
> interpreting real instructions. If anything breaks, and the failure isn't right at
> the instruction that is buggy (but some time later), it would be nice which new
> instruction causes the problem and make it all bisectable ...
>
> So we should be finegrained and only add a single (family) of instructions in a
> single patch. Please split this patch into two

I'm sending a new patchset.


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