From owner-p4-projects@FreeBSD.ORG Tue Apr 24 06:41:52 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 32A3D16A403; Tue, 24 Apr 2007 06:41:52 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 073B416A400 for ; Tue, 24 Apr 2007 06:41:52 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id EB52913C45A for ; Tue, 24 Apr 2007 06:41:51 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3O6fpto094617 for ; Tue, 24 Apr 2007 06:41:51 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3O6fpZr094612 for perforce@freebsd.org; Tue, 24 Apr 2007 06:41:51 GMT (envelope-from kmacy@freebsd.org) Date: Tue, 24 Apr 2007 06:41:51 GMT Message-Id: <200704240641.l3O6fpZr094612@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 118709 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2007 06:41:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=118709 Change 118709 by kmacy@kmacy_vt-x:opentoe_init on 2007/04/24 06:41:47 implement calc_tx_descs_ofld along with small cleanups Affected files ... .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_sge.c#15 edit Differences ... ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_sge.c#15 (text+ko) ==== @@ -1863,22 +1863,20 @@ * packet. These packets are already fully constructed. */ static __inline unsigned int -calc_tx_descs_ofld(const struct mbuf *m, unsigned int nsegs) +calc_tx_descs_ofld(struct mbuf *m, unsigned int nsegs) { -#ifdef notyet - unsigned int flits, cnt = skb_shinfo(skb)->nr_frags; + unsigned int flits, cnt = 0; + - if (m->m_len <= WR_LEN && cnt == 0) + if (m->m_len <= WR_LEN) return 1; /* packet fits as immediate data */ - flits = (m->m_pkthdr.header - mtod(m, char *)) / 8; /* headers */ + if (m->m_flags & M_IOVEC) + cnt = mtomv(m)->mv_count; - if (skb->tail != skb->h.raw) - cnt++; + flits = ((uint8_t *)m->m_pkthdr.header - mtod(m, uint8_t *)) / 8; /* headers */ return flits_to_desc(flits + sgl_len(cnt)); -#endif - return (0); } /** @@ -1952,16 +1950,14 @@ static void restart_offloadq(unsigned long data) { -#ifdef notyet + struct mbuf *m; -#endif struct sge_qset *qs = (struct sge_qset *)data; struct sge_txq *q = &qs->txq[TXQ_OFLD]; adapter_t *adap = qs->port->adapter; struct mbuf *m_vec[TX_CLEAN_MAX_DESC]; int i, cleaned; -#ifdef notyet mtx_lock(&q->lock); again: cleaned = reclaim_completed_tx(adap, q, TX_CLEAN_MAX_DESC, m_vec); @@ -1988,14 +1984,14 @@ q->pidx -= q->size; q->gen ^= 1; } -#if 0 + __skb_unlink(skb, &q->sendq); -#endif + mtx_unlock(&q->lock); write_ofld_wr(adap, skb, q, pidx, gen, ndesc, segs, nsegs); mtx_lock(&q->lock); } -#endif + mtx_unlock(&q->lock); #if USE_GTS