[intel-platform-discuss] Intel Platform optimised software crypto algorithms
Michael Corcoran
Michael.Corcoran at Sun.COM
Thu Mar 15 10:53:13 PDT 2007
Bill Holler's having problems sending to the alias and he has a much
more detailed reply:
> Kernel threads do not save XMM state, so disabling preemption as
> this code does is necessary. This may not be ideal if algorithms
> that wants to store a lot of data in the 16 available 128-bit
> XMM registers for longer periods of time.
>
> There has been some discussion in the Intel project of adding
> XMM context save to kernel threads. Perhaps there could be
> a flag per kernel thread that specifies it is using XMM state,
> so only those threads would have their XMM context saved.
> There could also be policies regarding which priority levels
> could use the registers. I would like to do this as part of
> the Intel platform Performance project.
>
> What would *really* help get the above project (In Kernel
> XMM context) going is if we knew the need for this and had
> examples of algorithms that will use this feature. IIRC
> ZFS compression/encryption, crypto, and a sound driver would
> like to use XMM register context in kernel. We do not want
> to write these algorithms using SSE, but would like to enable
> others to. We are hoping to receive SSE2/SSE3 code examples
> from Intel or the open source community. Our initial
> request from Intel did not get far.
>
> If we don't form a community for this, everyone will end
> up doing it there own way....
>
> Regards,
> Bill
=== end of Bill's reply
On Thu, 2007-03-15 at 10:29 -0700, Michael Corcoran wrote:
> On Thu, 2007-03-15 at 17:00 +0000, Darren J Moffat wrote:
> > Sherry Moore wrote:
> > >> On Thu, Mar 15, 2007 at 01:48:53PM +0000, Darren J Moffat wrote:
> > >>> All the algorithms listed above are build for userland and kernel
> > >>> from the same algorithm source code but with slightly different
> > >>> "plumbing".
> > >> What are the restrictions on using (say) SSE instructions in the
> > >> kernel?
> > >
> > > There aren't any kernel specific restrictions. Just the general: the
> > > FPU has to be enabled, the processor has to support SSE.
> >
> > So is this code we have in our bignum implementation not required ?
> >
> I don't know this for a fact, but I thought (fuzzy memory) we didn't
> save fp registers by default on a context switch/interrupt and thus if
> you didn't disable preemption, you'd run the risk of those registers
> getting corrupted. If we can guarantee that there will be no fp ops in
> an interrupt handler, then it probably doesn't make a difference if an
> interrupt occurs. For userland, I think we are smarter about saving off
> the fp registers if a program is using them.
>
> --Mike
>
> >
> > http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/common/bignum/i386/bignum_i386_asm.s#110
> >
> >
--
More information about the intel-platform-discuss
mailing list