From owner-svn-src-user@FreeBSD.ORG Mon Jun 21 05:42:21 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9F7C8106566C; Mon, 21 Jun 2010 05:42:21 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 756078FC13; Mon, 21 Jun 2010 05:42:21 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5L5gL4o031375; Mon, 21 Jun 2010 05:42:21 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5L5gLZY031373; Mon, 21 Jun 2010 05:42:21 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201006210542.o5L5gLZY031373@svn.freebsd.org> From: Juli Mallett Date: Mon, 21 Jun 2010 05:42:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r209384 - user/jmallett/octeon/sys/mips/cavium/cryptocteon X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jun 2010 05:42:21 -0000 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;