Re: [PATCH 2/5] x86, fpu: don't drop_fpu() in __restore_xstate_sig() if use_eager_fpu()

From: Linus Torvalds
Date: Mon Aug 25 2014 - 13:26:20 EST


On Mon, Aug 25, 2014 at 10:09 AM, Oleg Nesterov <oleg@xxxxxxxxxx> wrote:
>
> I'd like to change it only because this code is the main source of the
> nasty special case, used_math() and/or __thread_has_fpu(current) can be
> false even if use_eager_fpu().

Well, if you think it is correct (apart from missing preemption), then
I disagree *violently* with your "clean it up by restoring things
twice" model.

The signal handling overhead of floating point restore is not small,
and it's not theoretical. It's actually one of the main things that
make signal handling slow. I haven't tested with the new optimized
fxrstor, but it was one of the main annoyances with the lmbench
numbers back when we used to track those closely (and which were one
of the only tests to check signal handling performance).

Of course, these days people try to avoid signals (because they are
slow), but still..

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