From owner-svn-src-all@FreeBSD.ORG Sat Mar 5 04:04:23 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7D1921065673; Sat, 5 Mar 2011 04:04:23 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6B2B48FC19; Sat, 5 Mar 2011 04:04:23 +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 p2544Nhs003785; Sat, 5 Mar 2011 04:04:23 GMT (envelope-from np@svn.freebsd.org) Received: (from np@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id p2544NCI003783; Sat, 5 Mar 2011 04:04:23 GMT (envelope-from np@svn.freebsd.org) Message-Id: <201103050404.p2544NCI003783@svn.freebsd.org> From: Navdeep Parhar Date: Sat, 5 Mar 2011 04:04:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r219293 - head/sys/dev/cxgbe X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 Mar 2011 04:04:23 -0000 Author: np Date: Sat Mar 5 04:04:23 2011 New Revision: 219293 URL: http://svn.freebsd.org/changeset/base/219293 Log: There is no need to hold an ingress queue's lock while processing its descriptors. MFC after: 1 week Modified: head/sys/dev/cxgbe/t4_sge.c Modified: head/sys/dev/cxgbe/t4_sge.c ============================================================================== --- head/sys/dev/cxgbe/t4_sge.c Sat Mar 5 03:54:37 2011 (r219292) +++ head/sys/dev/cxgbe/t4_sge.c Sat Mar 5 04:04:23 2011 (r219293) @@ -414,7 +414,6 @@ t4_intr_fwd(void *arg) int ndesc_pending = 0, ndesc_total = 0; int qid; - IQ_LOCK(iq); while (is_new_response(iq, &ctrl)) { rmb(); @@ -441,7 +440,6 @@ t4_intr_fwd(void *arg) iq_next(iq); } - IQ_UNLOCK(iq); if (ndesc_total > 0) { t4_write_reg(sc, MYPF_REG(A_SGE_PF_GTS), @@ -474,7 +472,6 @@ t4_intr_evt(void *arg) KASSERT(iq == &sc->sge.fwq, ("%s: unexpected ingress queue", __func__)); - IQ_LOCK(iq); while (is_new_response(iq, &ctrl)) { rmb(); @@ -517,7 +514,6 @@ t4_intr_evt(void *arg) } iq_next(iq); } - IQ_UNLOCK(iq); if (ndesc_total > 0) { t4_write_reg(sc, MYPF_REG(A_SGE_PF_GTS), @@ -549,7 +545,6 @@ t4_intr_data(void *arg) prefetch(sd->m); prefetch(sd->cl); - IQ_LOCK(iq); iq->intr_next = iq->intr_params; while (is_new_response(iq, &ctrl)) { @@ -670,7 +665,6 @@ t4_intr_data(void *arg) len -= m->m_len; } - IQ_UNLOCK(iq); #ifdef INET if (cpl->l2info & htobe32(F_RXF_LRO) && rxq->flags & RXQ_LRO_ENABLED && @@ -679,7 +673,6 @@ t4_intr_data(void *arg) } else #endif ifp->if_input(ifp, m0); - IQ_LOCK(iq); FL_LOCK(fl); fl->needed += i; @@ -700,7 +693,6 @@ nextdesc: ndescs++; ndescs = 0; } } - IQ_UNLOCK(iq); #ifdef INET while (!SLIST_EMPTY(&lro->lro_active)) {