sfxge_tx.c (280592) | sfxge_tx.c (280596) |
---|---|
1/*- 2 * Copyright (c) 2010-2011 Solarflare Communications, Inc. 3 * All rights reserved. 4 * 5 * This software was developed in part by Philip Paeps under contract for 6 * Solarflare Communications, Inc. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 29 unchanged lines hidden (view full) --- 38 * 39 * So, event queue plus label mapping to Tx queue index is: 40 * if event queue index is 0, TxQ-index = TxQ-label * [0..SFXGE_TXQ_NTYPES) 41 * else TxQ-index = SFXGE_TXQ_NTYPES + EvQ-index - 1 42 * See sfxge_get_txq_by_label() sfxge_ev.c 43 */ 44 45#include <sys/cdefs.h> | 1/*- 2 * Copyright (c) 2010-2011 Solarflare Communications, Inc. 3 * All rights reserved. 4 * 5 * This software was developed in part by Philip Paeps under contract for 6 * Solarflare Communications, Inc. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 29 unchanged lines hidden (view full) --- 38 * 39 * So, event queue plus label mapping to Tx queue index is: 40 * if event queue index is 0, TxQ-index = TxQ-label * [0..SFXGE_TXQ_NTYPES) 41 * else TxQ-index = SFXGE_TXQ_NTYPES + EvQ-index - 1 42 * See sfxge_get_txq_by_label() sfxge_ev.c 43 */ 44 45#include <sys/cdefs.h> |
46__FBSDID("$FreeBSD: stable/10/sys/dev/sfxge/sfxge_tx.c 280592 2015-03-25 13:14:50Z arybchik $"); | 46__FBSDID("$FreeBSD: stable/10/sys/dev/sfxge/sfxge_tx.c 280596 2015-03-25 13:18:51Z arybchik $"); |
47 48#include <sys/types.h> 49#include <sys/mbuf.h> 50#include <sys/smp.h> 51#include <sys/socket.h> 52#include <sys/sysctl.h> 53#include <sys/syslog.h> 54 --- 251 unchanged lines hidden (view full) --- 306 int rc; 307 int i; 308 309 KASSERT(!txq->blocked, ("txq->blocked")); 310 311 if (mbuf->m_pkthdr.csum_flags & CSUM_TSO) 312 prefetch_read_many(mbuf->m_data); 313 | 47 48#include <sys/types.h> 49#include <sys/mbuf.h> 50#include <sys/smp.h> 51#include <sys/socket.h> 52#include <sys/sysctl.h> 53#include <sys/syslog.h> 54 --- 251 unchanged lines hidden (view full) --- 306 int rc; 307 int i; 308 309 KASSERT(!txq->blocked, ("txq->blocked")); 310 311 if (mbuf->m_pkthdr.csum_flags & CSUM_TSO) 312 prefetch_read_many(mbuf->m_data); 313 |
314 if (txq->init_state != SFXGE_TXQ_STARTED) { | 314 if (__predict_false(txq->init_state != SFXGE_TXQ_STARTED)) { |
315 rc = EINTR; 316 goto reject; 317 } 318 319 /* Load the packet for DMA. */ 320 id = txq->added & txq->ptr_mask; 321 stmp = &txq->stmp[id]; 322 rc = bus_dmamap_load_mbuf_sg(txq->packet_dma_tag, stmp->map, --- 814 unchanged lines hidden (view full) --- 1137 struct sfxge_softc *sc; 1138 struct sfxge_evq *evq; 1139 1140 sc = txq->sc; 1141 evq = sc->evq[txq->evq_index]; 1142 1143 SFXGE_EVQ_LOCK_ASSERT_OWNED(evq); 1144 | 315 rc = EINTR; 316 goto reject; 317 } 318 319 /* Load the packet for DMA. */ 320 id = txq->added & txq->ptr_mask; 321 stmp = &txq->stmp[id]; 322 rc = bus_dmamap_load_mbuf_sg(txq->packet_dma_tag, stmp->map, --- 814 unchanged lines hidden (view full) --- 1137 struct sfxge_softc *sc; 1138 struct sfxge_evq *evq; 1139 1140 sc = txq->sc; 1141 evq = sc->evq[txq->evq_index]; 1142 1143 SFXGE_EVQ_LOCK_ASSERT_OWNED(evq); 1144 |
1145 if (txq->init_state != SFXGE_TXQ_STARTED) | 1145 if (__predict_false(txq->init_state != SFXGE_TXQ_STARTED)) |
1146 return; 1147 1148 SFXGE_TXQ_LOCK(txq); 1149 1150 if (txq->blocked) { 1151 unsigned int level; 1152 1153 level = txq->added - txq->completed; --- 496 unchanged lines hidden --- | 1146 return; 1147 1148 SFXGE_TXQ_LOCK(txq); 1149 1150 if (txq->blocked) { 1151 unsigned int level; 1152 1153 level = txq->added - txq->completed; --- 496 unchanged lines hidden --- |