Re: Kernel oops with 2.6.26, padlock and ipsec: probably problemwith fpu state changes
From: H. Peter Anvin
Date: Mon Aug 11 2008 - 20:47:52 EST
Herbert Xu wrote:
On Mon, Aug 11, 2008 at 01:19:01PM -0700, Suresh Siddha wrote:
.
we can't unconditionally do clts() in the process context. We have
to disable pre-emption to avoid interactions with context switch and
lazy restore. So there will be RT latency issues aswell.
Yes disabling preemption is the real killer.
This is just a quick band-aid. Longer term we should add a task
flag that indicates the task is currently doing kernel FPU which
will tell the scheduler to clear TS the next time it's run. That
way we won't need to disable preemtion or pollute the user task's
FPU used state.
That's not sufficient, though, because you have to track all the state
and how it relates to everything. You now have to track both the
userspace FPU state and the potential kernel FPU state. The VIA
instructions are special (in the short bus to school sense) in that they
use a mechanism intended to protect specific state to protect -- exactly
nothing.
-hpa
--
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/