Date: Mon, 21 Jun 2010 05:42:21 +0000 (UTC) From: Juli Mallett <jmallett@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r209384 - user/jmallett/octeon/sys/mips/cavium/cryptocteon Message-ID: <201006210542.o5L5gLZY031373@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201006210542.o5L5gLZY031373>