svn commit: r209384 -
user/jmallett/octeon/sys/mips/cavium/cryptocteon
Juli Mallett
jmallett at FreeBSD.org
Mon Jun 21 05:42:21 UTC 2010
Author: jmallett
Date: Mon Jun 21 05:42:21 2010
New Revision: 209384
URL: http://svn.freebsd.org/changeset/base/209384
Log:
o) Use M_ZERO when allocating session data that we want zeroed rather than
calling memset by hand.
o) Don't memset the iovec array before using it -- it should be adequately
bounds-checked and not need the safety net of NULL pointers and 0 lengths.
This significantly reduces overhead.
OpenSSL speed test, before:
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
aes-128-cbc 447.60k 1754.91k 6431.14k 19025.51k 35813.38k
OpenSSL speed test, after:
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
aes-128-cbc 782.49k 3006.76k 10510.03k 26280.64k 38939.45k
Modified:
user/jmallett/octeon/sys/mips/cavium/cryptocteon/cryptocteon.c
Modified: user/jmallett/octeon/sys/mips/cavium/cryptocteon/cryptocteon.c
==============================================================================
--- user/jmallett/octeon/sys/mips/cavium/cryptocteon/cryptocteon.c Mon Jun 21 04:37:39 2010 (r209383)
+++ user/jmallett/octeon/sys/mips/cavium/cryptocteon/cryptocteon.c Mon Jun 21 05:42:21 2010 (r209384)
@@ -174,7 +174,7 @@ cryptocteon_newsession(device_t dev, u_i
sc->sc_sesnum *= 2;
ocd = malloc(sc->sc_sesnum * sizeof(struct octo_sess *),
- M_DEVBUF, M_NOWAIT);
+ M_DEVBUF, M_NOWAIT | M_ZERO);
if (ocd == NULL) {
/* Reset session number */
if (sc->sc_sesnum == CRYPTO_SW_SESSIONS)
@@ -184,7 +184,6 @@ cryptocteon_newsession(device_t dev, u_i
dprintf("%s,%d: ENOBUFS\n", __FILE__, __LINE__);
return ENOBUFS;
}
- memset(ocd, 0, sc->sc_sesnum * sizeof(struct octo_sess *));
/* Copy existing sessions */
if (sc->sc_sessions) {
@@ -199,13 +198,12 @@ cryptocteon_newsession(device_t dev, u_i
ocd = &sc->sc_sessions[i];
*sid = i;
- *ocd = malloc(sizeof(struct octo_sess), M_DEVBUF, M_NOWAIT);
+ *ocd = malloc(sizeof(struct octo_sess), M_DEVBUF, M_NOWAIT | M_ZERO);
if (*ocd == NULL) {
cryptocteon_freesession(NULL, i);
dprintf("%s,%d: ENOBUFS\n", __FILE__, __LINE__);
return ENOBUFS;
}
- memset(*ocd, 0, sizeof(struct octo_sess));
if (encini && encini->cri_key) {
(*ocd)->octo_encklen = (encini->cri_klen + 7) / 8;
@@ -443,7 +441,6 @@ cryptocteon_process(device_t dev, struct
/*
* setup the I/O vector to cover the buffer
*/
- memset(od->octo_iov, 0, sizeof od->octo_iov);
if (crp->crp_flags & CRYPTO_F_IMBUF) {
iovcnt = 0;
iovlen = 0;
More information about the svn-src-user
mailing list