Unfortunately they are hypervisor calls, and you have to give
the thing physical addresses for the buffer to work on, so
letting userland get at it directly isn't currently doable.
I still believe that there are cases where userland can take
advantage of in-kernel crypto devices, such as when we are
streaming the data into the kernel anyways (for a write()
or sendmsg()) and the user just wants the transformation to
be done on that stream.
As a specific case, hardware crypto SSL support works quite
well for sendmsg() user packet data. And this the kind of API
Solaris provides to get good SSL performance with Niagara.
Ok.
zlib is really hard to optimize on Sparc, I've tried numerous times.
Actually compress is the real cycle killer, and in that case the inner
loop wants to dereference 2-byte shorts at a time but they are
unaligned half of the time, and any the check for alignment nullifies
the gains of avoiding the two byte loads.
Uncompress I don't think is optimized at all on any platform with
asm stuff like the compress side is. It's a pretty straightforward
transformation and the memory accesses dominate the overhead.
I'll do some profiling to see what might be worth looking into.
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html