Messages in this thread | | | Date | Wed, 17 Dec 2008 10:31:28 +1100 | From | Herbert Xu <> | Subject | Re: [RFC PATCH crypto] AES: Add support to Intel AES-NI instructions |
| |
On Mon, Dec 15, 2008 at 11:38:01PM +1100, Herbert Xu wrote: > On Mon, Dec 15, 2008 at 04:21:06PM +1100, Herbert Xu wrote: > > > > > a. Do not touch SSE state in soft_irq > > > b. Disable/restore soft_irq in kernel_fpu_begin/kernel_fpu_end > > > c. Use a per-CPU data structure to save kernel FPU state during > > > soft_irq.
> Here's another option > > d. When we're in interrupt context, schedule a task to perform > the encryption asynchronously.
We can also hybridise b. and d.:
e. When we're in interrupt context, if TS is clear, then we defer the operation to a thread. Otherwise if user-space has touched the FPU we save the state, if not then we simply clear TS. In either case we perform the operation immediately and then reset TS if user-space didn't touch the FPU.
This is based on the fact that it should be fairly rare for us to interrupt a kernel FPU/SSE operation. The common case would be interrupting a user process or a kernel context which is not engaging in any kernel FPU operations.
Cheers, -- Visit Openswan at http://www.openswan.org/ Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
| |