FreeBSD kernel CXGBE device code
|
#include <sys/cdefs.h>
#include "opt_inet.h"
#include "opt_inet6.h"
#include "opt_kern_tls.h"
#include "opt_ratelimit.h"
#include <sys/types.h>
#include <sys/eventhandler.h>
#include <sys/mbuf.h>
#include <sys/socket.h>
#include <sys/kernel.h>
#include <sys/ktls.h>
#include <sys/malloc.h>
#include <sys/msan.h>
#include <sys/queue.h>
#include <sys/sbuf.h>
#include <sys/taskqueue.h>
#include <sys/time.h>
#include <sys/sglist.h>
#include <sys/sysctl.h>
#include <sys/smp.h>
#include <sys/socketvar.h>
#include <sys/counter.h>
#include <net/bpf.h>
#include <net/ethernet.h>
#include <net/if.h>
#include <net/if_vlan_var.h>
#include <net/if_vxlan.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <netinet/ip6.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>
#include <machine/in_cksum.h>
#include <machine/md_var.h>
#include <vm/vm.h>
#include <vm/pmap.h>
#include "common/common.h"
#include "common/t4_regs.h"
#include "common/t4_regs_values.h"
#include "common/t4_msg.h"
#include "t4_l2t.h"
#include "t4_mp_ring.h"
Go to the source code of this file.
Macros | |
#define | RX_COPY_THRESHOLD MINCLSIZE |
#define | MC_NOMAP 0x01 |
#define | MC_RAW_WR 0x02 |
#define | MC_TLS 0x04 |
#define | MAX_PACK_BOUNDARY 512 |
#define | VM_TX_L2HDR_LEN 16 /* ethmacdst to vlantci */ |
Functions | |
__FBSDID ("$FreeBSD$") | |
SYSCTL_INT (_hw_cxgbe, OID_AUTO, fl_pktshift, CTLFLAG_RDTUN, &fl_pktshift, 0, "payload DMA offset in rx buffer (bytes)") | |
SYSCTL_INT (_hw_cxgbe, OID_AUTO, fl_pad, CTLFLAG_RDTUN, &fl_pad, 0, "payload pad boundary (bytes)") | |
SYSCTL_INT (_hw_cxgbe, OID_AUTO, spg_len, CTLFLAG_RDTUN, &spg_len, 0, "status page size (bytes)") | |
SYSCTL_INT (_hw_cxgbe, OID_AUTO, cong_drop, CTLFLAG_RDTUN, &cong_drop, 0, "Congestion control for RX queues (0 = backpressure, 1 = drop") | |
SYSCTL_INT (_hw_cxgbe, OID_AUTO, buffer_packing, CTLFLAG_RDTUN, &buffer_packing, 0, "Enable buffer packing") | |
SYSCTL_INT (_hw_cxgbe, OID_AUTO, fl_pack, CTLFLAG_RDTUN, &fl_pack, 0, "payload pack boundary (bytes)") | |
SYSCTL_INT (_hw_cxgbe, OID_AUTO, largest_rx_cluster, CTLFLAG_RDTUN, &largest_rx_cluster, 0, "Largest rx cluster (bytes)") | |
SYSCTL_INT (_hw_cxgbe, OID_AUTO, safest_rx_cluster, CTLFLAG_RDTUN, &safest_rx_cluster, 0, "Safe rx cluster (bytes)") | |
SYSCTL_INT (_hw_cxgbe, OID_AUTO, tscale, CTLFLAG_RDTUN, &tscale, 0, "Interrupt holdoff timer scale on T6+") | |
SYSCTL_INT (_hw_cxgbe, OID_AUTO, lro_entries, CTLFLAG_RDTUN, &lro_entries, 0, "Number of LRO entries per RX queue") | |
SYSCTL_INT (_hw_cxgbe, OID_AUTO, lro_mbufs, CTLFLAG_RDTUN, &lro_mbufs, 0, "Enable presorting of LRO frames") | |
SYSCTL_COUNTER_U64 (_hw_cxgbe, OID_AUTO, pullups, CTLFLAG_RD, &pullups, "Number of mbuf pullups performed") | |
SYSCTL_COUNTER_U64 (_hw_cxgbe, OID_AUTO, defrags, CTLFLAG_RD, &defrags, "Number of mbuf defrags performed") | |
SYSCTL_INT (_hw_cxgbe, OID_AUTO, tx_coalesce, CTLFLAG_RWTUN, &t4_tx_coalesce, 0, "tx coalescing allowed") | |
SYSCTL_INT (_hw_cxgbe, OID_AUTO, tx_coalesce_pkts, CTLFLAG_RWTUN, &t4_tx_coalesce_pkts, 0, "# of consecutive packets (1 - 255) that will trigger tx coalescing") | |
SYSCTL_INT (_hw_cxgbe, OID_AUTO, tx_coalesce_gap, CTLFLAG_RWTUN, &t4_tx_coalesce_gap, 0, "tx gap (in microseconds)") | |
static int | service_iq (struct sge_iq *, int) |
static int | service_iq_fl (struct sge_iq *, int) |
static struct mbuf * | get_fl_payload (struct adapter *, struct sge_fl *, uint32_t) |
static int | eth_rx (struct adapter *, struct sge_rxq *, const struct iq_desc *, u_int) |
static void | init_iq (struct sge_iq *, struct adapter *, int, int, int, int, int) |
static void | init_fl (struct adapter *, struct sge_fl *, int, int, char *) |
static void | init_eq (struct adapter *, struct sge_eq *, int, int, uint8_t, struct sge_iq *, char *) |
static int | alloc_iq_fl (struct vi_info *, struct sge_iq *, struct sge_fl *, struct sysctl_ctx_list *, struct sysctl_oid *) |
static void | free_iq_fl (struct adapter *, struct sge_iq *, struct sge_fl *) |
static void | add_iq_sysctls (struct sysctl_ctx_list *, struct sysctl_oid *, struct sge_iq *) |
static void | add_fl_sysctls (struct adapter *, struct sysctl_ctx_list *, struct sysctl_oid *, struct sge_fl *) |
static int | alloc_iq_fl_hwq (struct vi_info *, struct sge_iq *, struct sge_fl *) |
static int | free_iq_fl_hwq (struct adapter *, struct sge_iq *, struct sge_fl *) |
static int | alloc_fwq (struct adapter *) |
static void | free_fwq (struct adapter *) |
static int | alloc_ctrlq (struct adapter *, int) |
static void | free_ctrlq (struct adapter *, int) |
static int | alloc_rxq (struct vi_info *, struct sge_rxq *, int, int, int) |
static void | free_rxq (struct vi_info *, struct sge_rxq *) |
static void | add_rxq_sysctls (struct sysctl_ctx_list *, struct sysctl_oid *, struct sge_rxq *) |
static int | ctrl_eq_alloc (struct adapter *, struct sge_eq *) |
static int | eth_eq_alloc (struct adapter *, struct vi_info *, struct sge_eq *) |
static int | alloc_eq (struct adapter *, struct sge_eq *, struct sysctl_ctx_list *, struct sysctl_oid *) |
static void | free_eq (struct adapter *, struct sge_eq *) |
static void | add_eq_sysctls (struct adapter *, struct sysctl_ctx_list *, struct sysctl_oid *, struct sge_eq *) |
static int | alloc_eq_hwq (struct adapter *, struct vi_info *, struct sge_eq *) |
static int | free_eq_hwq (struct adapter *, struct vi_info *, struct sge_eq *) |
static int | alloc_wrq (struct adapter *, struct vi_info *, struct sge_wrq *, struct sysctl_ctx_list *, struct sysctl_oid *) |
static void | free_wrq (struct adapter *, struct sge_wrq *) |
static void | add_wrq_sysctls (struct sysctl_ctx_list *, struct sysctl_oid *, struct sge_wrq *) |
static int | alloc_txq (struct vi_info *, struct sge_txq *, int) |
static void | free_txq (struct vi_info *, struct sge_txq *) |
static void | add_txq_sysctls (struct vi_info *, struct sysctl_ctx_list *, struct sysctl_oid *, struct sge_txq *) |
static void | oneseg_dma_callback (void *, bus_dma_segment_t *, int, int) |
static void | ring_fl_db (struct adapter *, struct sge_fl *) |
static int | refill_fl (struct adapter *, struct sge_fl *, int) |
static void | refill_sfl (void *) |
static int | find_refill_source (struct adapter *, int, bool) |
static void | add_fl_to_sfl (struct adapter *, struct sge_fl *) |
static void | get_pkt_gl (struct mbuf *, struct sglist *) |
static u_int | txpkt_len16 (u_int, const u_int) |
static u_int | txpkt_vm_len16 (u_int, const u_int) |
static void | calculate_mbuf_len16 (struct mbuf *, bool) |
static u_int | txpkts0_len16 (u_int) |
static u_int | txpkts1_len16 (void) |
static u_int | write_raw_wr (struct sge_txq *, void *, struct mbuf *, u_int) |
static u_int | write_txpkt_wr (struct adapter *, struct sge_txq *, struct mbuf *, u_int) |
static u_int | write_txpkt_vm_wr (struct adapter *, struct sge_txq *, struct mbuf *) |
static int | add_to_txpkts_vf (struct adapter *, struct sge_txq *, struct mbuf *, int, bool *) |
static int | add_to_txpkts_pf (struct adapter *, struct sge_txq *, struct mbuf *, int, bool *) |
static u_int | write_txpkts_wr (struct adapter *, struct sge_txq *) |
static u_int | write_txpkts_vm_wr (struct adapter *, struct sge_txq *) |
static void | write_gl_to_txd (struct sge_txq *, struct mbuf *, caddr_t *, int) |
static void | copy_to_txd (struct sge_eq *, caddr_t, caddr_t *, int) |
static void | ring_eq_db (struct adapter *, struct sge_eq *, u_int) |
static uint16_t | read_hw_cidx (struct sge_eq *) |
static u_int | reclaimable_tx_desc (struct sge_eq *) |
static u_int | total_available_tx_desc (struct sge_eq *) |
static u_int | reclaim_tx_descs (struct sge_txq *, u_int) |
static void | tx_reclaim (void *, int) |
static __be64 | get_flit (struct sglist_seg *, int, int) |
static int | handle_sge_egr_update (struct sge_iq *, const struct rss_header *, struct mbuf *) |
static int | handle_fw_msg (struct sge_iq *, const struct rss_header *, struct mbuf *) |
static int | t4_handle_wrerr_rpl (struct adapter *, const __be64 *) |
static void | wrq_tx_drain (void *, int) |
static void | drain_wrq_wr_list (struct adapter *, struct sge_wrq *) |
static int | sysctl_bufsizes (SYSCTL_HANDLER_ARGS) |
void | t4_register_an_handler (an_handler_t h) |
void | t4_register_fw_msg_handler (int type, fw_msg_handler_t h) |
void | t4_register_cpl_handler (int opcode, cpl_handler_t h) |
static int | set_tcb_rpl_handler (struct sge_iq *iq, const struct rss_header *rss, struct mbuf *m) |
static int | l2t_write_rpl_handler (struct sge_iq *iq, const struct rss_header *rss, struct mbuf *m) |
static int | act_open_rpl_handler (struct sge_iq *iq, const struct rss_header *rss, struct mbuf *m) |
static int | abort_rpl_rss_handler (struct sge_iq *iq, const struct rss_header *rss, struct mbuf *m) |
static int | fw4_ack_handler (struct sge_iq *iq, const struct rss_header *rss, struct mbuf *m) |
static void | t4_init_shared_cpl_handlers (void) |
void | t4_register_shared_cpl_handler (int opcode, cpl_handler_t h, int cookie) |
void | t4_sge_modload (void) |
void | t4_sge_modunload (void) |
uint64_t | t4_sge_extfree_refs (void) |
static void | setup_pad_and_pack_boundaries (struct adapter *sc) |
void | t4_tweak_chip_settings (struct adapter *sc) |
static int | hwsz_ok (struct adapter *sc, int hwsz) |
void | t4_init_rx_buf_info (struct adapter *sc) |
int | t4_verify_chip_settings (struct adapter *sc) |
int | t4_create_dma_tag (struct adapter *sc) |
void | t4_sge_sysctls (struct adapter *sc, struct sysctl_ctx_list *ctx, struct sysctl_oid_list *children) |
int | t4_destroy_dma_tag (struct adapter *sc) |
int | t4_setup_adapter_queues (struct adapter *sc) |
int | t4_teardown_adapter_queues (struct adapter *sc) |
static int | max_rx_payload (struct adapter *sc, struct ifnet *ifp, const bool ofld) |
int | t4_setup_vi_queues (struct vi_info *vi) |
int | t4_teardown_vi_queues (struct vi_info *vi) |
void | t4_intr_all (void *arg) |
void | t4_intr_err (void *arg) |
void | t4_intr_evt (void *arg) |
void | t4_intr (void *arg) |
static uint64_t | last_flit_to_ns (struct adapter *sc, uint64_t lf) |
static void | move_to_next_rxbuf (struct sge_fl *fl) |
static struct cluster_metadata * | cl_metadata (struct fl_sdesc *sd) |
static void | rxb_free (struct mbuf *m) |
static struct mbuf * | get_scatter_segment (struct adapter *sc, struct sge_fl *fl, int fr_offset, int remaining) |
static struct mbuf * | get_fl_payload (struct adapter *sc, struct sge_fl *fl, const u_int plen) |
static int | skip_scatter_segment (struct adapter *sc, struct sge_fl *fl, int fr_offset, int remaining) |
static void | skip_fl_payload (struct adapter *sc, struct sge_fl *fl, int plen) |
static int | get_segment_len (struct adapter *sc, struct sge_fl *fl, int plen) |
void | t4_wrq_tx_locked (struct adapter *sc, struct sge_wrq *wrq, struct wrqe *wr) |
void | t4_update_fl_bufsize (struct ifnet *ifp) |
static int | mbuf_nsegs (struct mbuf *m) |
static void | set_mbuf_nsegs (struct mbuf *m, uint8_t nsegs) |
static int | mbuf_cflags (struct mbuf *m) |
static void | set_mbuf_cflags (struct mbuf *m, uint8_t flags) |
static int | mbuf_len16 (struct mbuf *m) |
static void | set_mbuf_len16 (struct mbuf *m, uint8_t len16) |
struct mbuf * | alloc_wr_mbuf (int len, int how) |
static bool | needs_hwcsum (struct mbuf *m) |
static bool | needs_tso (struct mbuf *m) |
static bool | needs_vxlan_csum (struct mbuf *m) |
static bool | needs_vxlan_tso (struct mbuf *m) |
static bool | needs_l3_csum (struct mbuf *m) |
static bool | needs_outer_tcp_csum (struct mbuf *m) |
static bool | needs_vlan_insertion (struct mbuf *m) |
static int | count_mbuf_ext_pgs (struct mbuf *m, int skip, vm_paddr_t *nextaddr) |
static int | count_mbuf_nsegs (struct mbuf *m, int skip, uint8_t *cflags) |
static int | max_nsegs_allowed (struct mbuf *m, bool vm_wr) |
int | parse_pkt (struct mbuf **mp, bool vm_wr) |
void * | start_wrq_wr (struct sge_wrq *wrq, int len16, struct wrq_cookie *cookie) |
void | commit_wrq_wr (struct sge_wrq *wrq, void *w, struct wrq_cookie *cookie) |
static u_int | can_resume_eth_tx (struct mp_ring *r) |
static bool | cannot_use_txpkts (struct mbuf *m) |
static int | discard_tx (struct sge_eq *eq) |
static int | wr_can_update_eq (void *p) |
static void | set_txupdate_flags (struct sge_txq *txq, u_int avail, struct fw_eth_tx_pkt_wr *wr) |
static bool | record_eth_tx_time (struct sge_txq *txq) |
static u_int | eth_tx (struct mp_ring *r, u_int cidx, u_int pidx, bool *coalescing) |
int | alloc_ring (struct adapter *sc, size_t len, bus_dma_tag_t *tag, bus_dmamap_t *map, bus_addr_t *pa, void **va) |
int | free_ring (struct adapter *sc, bus_dma_tag_t tag, bus_dmamap_t map, bus_addr_t pa, void *va) |
int | tnl_cong (struct port_info *pi, int drop) |
static u_int | qsize_to_fthresh (int qsize) |
static int | free_eq_hwq (struct adapter *sc, struct vi_info *vi __unused, struct sge_eq *eq) |
void | free_fl_buffers (struct adapter *sc, struct sge_fl *fl) |
static u_int | imm_payload (u_int ndesc) |
static uint64_t | csum_to_ctrl (struct adapter *sc, struct mbuf *m) |
static void * | write_lso_cpl (void *cpl, struct mbuf *m0) |
static void * | write_tnl_lso_cpl (void *cpl, struct mbuf *m0) |
static bool | cmp_l2hdr (struct txpkts *txp, struct mbuf *m) |
static void | save_l2hdr (struct txpkts *txp, struct mbuf *m) |
static void | handle_wrq_egr_update (struct adapter *sc, struct sge_eq *eq) |
static void | handle_eth_egr_update (struct adapter *sc, struct sge_eq *eq) |
CTASSERT (offsetof(struct cpl_fw4_msg, data)==offsetof(struct cpl_fw6_msg, data)) | |
static bool | bufidx_used (struct adapter *sc, int idx) |
__FBSDID | ( | "$FreeBSD$" | ) |
|
static |
Definition at line 452 of file t4_sge.c.
References abort_rpl_rss_handlers, sge_iq::adapter, CPL_COOKIE_HASHFILTER, CPL_COOKIE_TOM, iq, and is_hashfilter().
Referenced by t4_init_shared_cpl_handlers().
|
static |
Definition at line 439 of file t4_sge.c.
References act_open_rpl_handlers, cpl_act_open_rpl::atid_status, CPL_COOKIE_RESERVED, G_AOPEN_ATID, G_TID_COOKIE, and iq.
Referenced by t4_init_shared_cpl_handlers().
|
static |
Definition at line 4386 of file t4_sge.c.
References sge_eq::abs_id, sge_eq::ba, sge_eq::cidx, sge_eq::cntxt_id, eq, EQ_ESIZE, adapter::params, sge_eq::pidx, adapter_params::sge, sge_eq::sidx, and sge_params::spg_len.
Referenced by alloc_eq().
|
static |
Definition at line 3756 of file t4_sge.c.
References sge_fl::ba, sge_fl::cidx, sge_fl::cl_allocated, sge_fl::cl_fast_recycled, sge_fl::cl_recycled, sge_fl::cntxt_id, EQ_ESIZE, fl, FL_BUF_PACKING, fl_pad, sge_fl::flags, adapter::params, sge_fl::pidx, sge_fl::rx_offset, adapter_params::sge, sge_fl::sidx, sge_params::spg_len, and SYSCTL_ADD_UQUAD.
Referenced by alloc_iq_fl().
Definition at line 6284 of file t4_sge.c.
References fl, FL_DOOMED, FL_LOCK, FL_STARVING, FL_UNLOCK, sge_fl::flags, refill_sfl(), adapter::sfl_callout, and adapter::sfl_lock.
Referenced by service_iq_fl().
|
static |
Definition at line 3734 of file t4_sge.c.
References sge_iq::abs_id, sge_iq::ba, sge_iq::cidx, sge_iq::cntxt_id, iq, IQ_ESIZE, and sge_iq::qsize.
Referenced by alloc_iq_fl().
|
static |
Definition at line 4044 of file t4_sge.c.
References sge_rxq::lro, sge_rxq::rxcsum, rxq, SYSCTL_ADD_UQUAD, sge_rxq::vlan_extraction, and sge_rxq::vxlan_rxcsum.
Referenced by alloc_rxq().
|
static |
Definition at line 5713 of file t4_sge.c.
References cannot_use_txpkts(), adapter::flags, IS_VF, txpkts::len16, txpkts::max_npkt, txpkts::mb, mbuf_nsegs(), txpkts::npkt, txpkts::plen, SGE_MAX_WR_NDESC, tx_len16_to_desc(), txp, sge_txq::txp, txpkts0_len16(), txpkts1_len16(), and txpkts::wr_type.
Referenced by eth_tx().
|
static |
Definition at line 5661 of file t4_sge.c.
References cannot_use_txpkts(), cmp_l2hdr(), txpkts::len16, txpkts::max_npkt, txpkts::mb, mbuf_nsegs(), txpkts::npkt, txpkts::plen, save_l2hdr(), tx_len16_to_desc(), txp, sge_txq::txp, txpkts1_len16(), and txpkts::wr_type.
Referenced by eth_tx().
|
static |
Definition at line 4676 of file t4_sge.c.
References vi_info::adapter, sge_txq::imm_wrs, is_ktls(), sge_txq::kern_tls_cbc, sge_txq::kern_tls_fin, sge_txq::kern_tls_fin_short, sge_txq::kern_tls_full, sge_txq::kern_tls_gcm, sge_txq::kern_tls_header, sge_txq::kern_tls_octets, sge_txq::kern_tls_options, sge_txq::kern_tls_partial, sge_txq::kern_tls_records, sge_txq::kern_tls_short, sge_txq::kern_tls_waste, mp_ring_sysctls(), sge_txq::r, sge_txq::raw_wrs, adapter::sge, sge_txq::sgl_wrs, SYSCTL_ADD_UQUAD, sysctl_tc(), sge_txq::tso_wrs, sge_txq::txcsum, sge_txq::txpkt_wrs, sge_txq::txpkts0_pkts, sge_txq::txpkts0_wrs, sge_txq::txpkts1_pkts, sge_txq::txpkts1_wrs, sge_txq::txpkts_flush, sge::txq, sge_txq::vlan_insertion, sge_txq::vxlan_tso_wrs, and sge_txq::vxlan_txcsum.
Referenced by alloc_txq().
|
static |
Definition at line 4537 of file t4_sge.c.
References SYSCTL_ADD_UQUAD, sge_wrq::tx_wrs_copied, sge_wrq::tx_wrs_direct, sge_wrq::tx_wrs_ss, and wrq.
Referenced by alloc_wrq().
|
static |
Definition at line 3861 of file t4_sge.c.
References alloc_eq_hwq(), alloc_wrq(), CH_ERR, CTRL_EQ_QSIZE, sge::ctrlq, adapter::ctrlq_oid, adapter::ctx, adapter::dev, sge_wrq::eq, EQ_CTRL, EQ_HW_ALLOCATED, EQ_SW_ALLOCATED, sge_eq::flags, sge::fwq, init_eq(), adapter::port, adapter::sge, and port_info::tx_chan.
Referenced by t4_setup_adapter_queues().
|
static |
Definition at line 4351 of file t4_sge.c.
References add_eq_sysctls(), alloc_ring(), sge_eq::ba, sge_eq::desc, sge_eq::desc_map, sge_eq::desc_tag, eq, EQ_ESIZE, EQ_SW_ALLOCATED, sge_eq::flags, adapter::params, adapter_params::sge, sge_eq::sidx, and sge_params::spg_len.
Referenced by alloc_txq(), and alloc_wrq().
Definition at line 4409 of file t4_sge.c.
References CH_ERR, sge_eq::cidx, sge_iq::cntxt_id, sge_eq::cntxt_id, ctrl_eq_alloc(), sge_eq::dbidx, sge_eq::desc, DOORBELL_UDB, DOORBELL_UDBWC, DOORBELL_WCWR, sge_eq::doorbells, adapter::doorbells, eq, EQ_CTRL, EQ_ESIZE, EQ_ETH, EQ_HW_ALLOCATED, EQ_OFLD, sge_params::eq_s_qpp, sge_eq::equeqidx, eth_eq_alloc(), sge_eq::flags, sge_eq::iq, sge_eq::iqid, adapter::params, sge_eq::pidx, adapter_params::sge, sge_eq::sidx, sge_params::spg_len, sge_eq::type, udb, sge_eq::udb, sge_eq::udb_qid, adapter::udbs_base, UDBS_DB_OFFSET, UDBS_SEG_SHIFT, and UDBS_SEG_SIZE.
Referenced by alloc_ctrlq(), and alloc_txq().
|
static |
Definition at line 3800 of file t4_sge.c.
References alloc_iq_fl(), alloc_iq_fl_hwq(), CH_ERR, adapter::ctx, sge_iq::flags, adapter::flags, FW_IQ_QSIZE, sge::fwq, adapter::fwq_oid, init_iq(), adapter::intr_count, IQ_HW_ALLOCATED, IQ_SW_ALLOCATED, IS_VF, adapter::port, adapter::sge, and port_info::vi.
Referenced by t4_setup_adapter_queues().
|
static |
Definition at line 3487 of file t4_sge.c.
References vi_info::adapter, add_fl_sysctls(), add_iq_sysctls(), alloc_ring(), sge_iq::ba, sge_fl::ba, adapter::ctx, sge_iq::desc, sge_fl::desc, sge_iq::desc_map, sge_fl::desc_map, sge_iq::desc_tag, sge_fl::desc_tag, EQ_ESIZE, fl, sge_iq::flags, free_ring(), iq, IQ_ESIZE, IQ_HAS_FL, IQ_SW_ALLOCATED, sge_iq::qsize, sge_fl::qsize, sge_fl::sdesc, and sge_fl::sidx.
Referenced by alloc_fwq(), and alloc_rxq().
Definition at line 3554 of file t4_sge.c.
References sge_iq::abs_id, vi_info::adapter, fw_iq_cmd::alloc_to_len16, sge_iq::ba, sge_fl::ba, CH_ERR, CHELSIO_T5, chip_id(), adapter::chip_params, sge_iq::cidx, sge_fl::cidx, fl_sdesc::cl, cntxt_id, sge_iq::cntxt_id, sge_fl::cntxt_id, sge_iq::cong, sge_fl::dbidx, sge_fl::dbval, sge_iq::desc, sge_fl::desc, DOORBELL_UDB, adapter::doorbells, EQ_ESIZE, sge_params::eq_s_qpp, sge::eq_start, sge::eqmap, sge::eqmap_sz, F_FW_CMD_EXEC, F_FW_CMD_REQUEST, F_FW_CMD_WRITE, F_FW_IQ_CMD_ALLOC, F_FW_IQ_CMD_FL0CONGCIF, F_FW_IQ_CMD_FL0CONGEN, F_FW_IQ_CMD_FL0DATARO, F_FW_IQ_CMD_FL0FETCHRO, F_FW_IQ_CMD_FL0PACKEN, F_FW_IQ_CMD_FL0PADEN, F_FW_IQ_CMD_IQANDST, F_FW_IQ_CMD_IQASYNCH, F_FW_IQ_CMD_IQFLINTCONGEN, F_FW_IQ_CMD_IQGTSMODE, F_FW_IQ_CMD_IQSTART, F_RSPD_GEN, fl, fw_iq_cmd::fl0addr, fw_iq_cmd::fl0dcaen_to_fl0cidxfthresh, fw_iq_cmd::fl0id, fw_iq_cmd::fl0size, FL_BUF_PACKING, FL_BUF_RESUME, FL_DOOMED, FL_LOCK, fl_pad, FL_STARVING, FL_UNLOCK, sge_iq::flags, sge_fl::flags, adapter::flags, FW_IQ_CMD, FW_IQ_TYPE_FL_INT_CAP, FW_LEN16, FW_PARAMS_MNEM_DMAQ, FW_PARAMS_PARAM_DMAQ_CONM_CTXT, sge::fwq, sge_iq::gen, sge_fl::hw_cidx, ilog2(), adapter::intr_count, sge_iq::intr_idx, sge_iq::intr_params, sge_iq::intr_pktc_idx, iq, IQ_ESIZE, IQ_HW_ALLOCATED, sge::iq_start, fw_iq_cmd::iqaddr, fw_iq_cmd::iqdroprss_to_iqesize, fw_iq_cmd::iqid, sge::iqmap, sge::iqmap_sz, fw_iq_cmd::iqns_to_fl0congen, IQS_IDLE, fw_iq_cmd::iqsize, IS_VF, sge_fl::lowat, adapter::mbox, fw_iq_cmd::op_to_vfn, adapter::params, adapter::pf, fw_iq_cmd::physiqid, vi_info::pi, sge_fl::pidx, sge_iq::qsize, sge_fl::qsize, refill_fl(), sge_fl::rx_offset, sge_fl::sdesc, adapter::sge, adapter_params::sge, chip_params::sge_fl_db, adapter::sge_gts_reg, sge_fl::sidx, sge_params::spg_len, sge_iq::state, t4_set_params(), t4_wr_mbox(), t4_write_reg(), port_info::tx_chan, fw_iq_cmd::type_to_iqandstindex, udb, sge_fl::udb, adapter::udbs_base, UDBS_DB_OFFSET, UDBS_SEG_SHIFT, UDBS_SEG_SIZE, V_FW_CMD_OP, V_FW_IQ_CMD_FL0CNGCHMAP, V_FW_IQ_CMD_FL0FBMAX, V_FW_IQ_CMD_FL0FBMIN, V_FW_IQ_CMD_FL0HOSTFCMODE, V_FW_IQ_CMD_IQANDSTINDEX, V_FW_IQ_CMD_IQANUD, V_FW_IQ_CMD_IQESIZE, V_FW_IQ_CMD_IQINTCNTTHRESH, V_FW_IQ_CMD_IQPCIECH, V_FW_IQ_CMD_PFN, V_FW_IQ_CMD_TYPE, V_FW_IQ_CMD_VFN, V_FW_IQ_CMD_VIID, V_FW_PARAMS_MNEM, V_FW_PARAMS_PARAM_X, V_FW_PARAMS_PARAM_YZ, V_INGRESSQID, V_QID, V_SEINTARM, vi_info::viid, X_FETCHBURSTMAX_256B, X_FETCHBURSTMAX_512B, X_FETCHBURSTMIN_128B, X_FETCHBURSTMIN_64B_T6, X_HOSTFCMODE_NONE, and X_UPDATEDELIVERY_INTERRUPT.
Referenced by alloc_fwq(), and alloc_rxq().
int alloc_ring | ( | struct adapter * | sc, |
size_t | len, | ||
bus_dma_tag_t * | tag, | ||
bus_dmamap_t * | map, | ||
bus_addr_t * | pa, | ||
void ** | va | ||
) |
Definition at line 3435 of file t4_sge.c.
References CH_ERR, adapter::dmat, free_ring(), oneseg_dma_callback(), and tag.
Referenced by alloc_eq(), and alloc_iq_fl().
|
static |
Definition at line 3942 of file t4_sge.c.
References sge_iq::abs_id, vi_info::adapter, add_rxq_sysctls(), alloc_iq_fl(), alloc_iq_fl_hwq(), CH_ERR, sge_iq::cntxt_id, cong_drop, vi_info::ctx, vi_info::dev, sge_rxq::fl, FL_LOCK, FL_UNLOCK, sge_iq::flags, adapter::flags, ifp, vi_info::ifp, sge_rxq::ifp, init_fl(), init_iq(), sge_rxq::iq, sge::iq_base, IQ_HW_ALLOCATED, IQ_LRO_ENABLED, IQ_RX_TIMESTAMP, IQ_SW_ALLOCATED, IS_VF, sge_rxq::lro, lro_entries, lro_mbufs, vi_info::pi, vi_info::pktc_idx, vi_info::qsize_rxq, refill_fl(), rxq, vi_info::rxq_oid, adapter::sge, vi_info::tmr_idx, and tnl_cong().
Referenced by t4_setup_vi_queues().
Definition at line 4558 of file t4_sge.c.
References sge_eq::abs_id, vi_info::adapter, add_txq_sysctls(), alloc_eq(), alloc_eq_hwq(), can_resume_eth_tx(), CH_ERR, sge_eq::cntxt_id, sge_txq::cpl_ctrl0, CPL_TX_PKT_XT, vi_info::ctx, vi_info::dev, eq, sge_txq::eq, sge::eq_base, EQ_ETH, EQ_HW_ALLOCATED, sge_eq::eq_lock, EQ_SW_ALLOCATED, eth_tx(), vi_info::first_rxq, vi_info::flags, sge_eq::flags, adapter::flags, sge_txq::gl, vi_info::ifp, sge_txq::ifp, init_eq(), sge_rxq::iq, iqidx, IS_VF, txpkts::max_npkt, adapter_params::max_pkts_per_eth_tx_pkts_wr, txpkts::mb, mp_ring_alloc(), mp_ring_free(), vi_info::nrxq, adapter::params, adapter::pf, vi_info::pi, vi_info::qsize_txq, sge_txq::r, sge::rxq, sge_txq::sdesc, adapter::sge, sge_eq::sidx, sge_txq::tc_idx, port_info::tx_chan, tx_reclaim(), sge_txq::tx_reclaim_task, TX_SGL_SEGS, TX_USES_VM_WR, txp, sge_txq::txp, vi_info::txq_oid, V_TXPKT_INTF, V_TXPKT_OPCODE, V_TXPKT_PF, V_TXPKT_VF, V_TXPKT_VF_VLD, vi_info::vfvld, port_info::vi, and vi_info::vin.
Referenced by t4_setup_vi_queues().
struct mbuf * alloc_wr_mbuf | ( | int | len, |
int | how | ||
) |
Definition at line 2386 of file t4_sge.c.
References MC_RAW_WR, set_mbuf_cflags(), and set_mbuf_len16().
|
static |
Definition at line 4501 of file t4_sge.c.
References sge_wrq::adapter, add_wrq_sysctls(), alloc_eq(), eq, sge_wrq::eq, EQ_SW_ALLOCATED, sge_eq::flags, sge_wrq::ndesc_needed, sge_wrq::nwr_pending, wrq, wrq_tx_drain(), and sge_wrq::wrq_tx_task.
Referenced by alloc_ctrlq().
Definition at line 6431 of file t4_sge.c.
References rx_buf_info::hwidx1, rx_buf_info::hwidx2, largest_rx_cluster, sge::rx_buf_info, adapter::sge, rx_buf_info::size1, and SW_ZONE_SIZES.
Referenced by sysctl_bufsizes().
|
inlinestatic |
Definition at line 5158 of file t4_sge.c.
References mbuf_nsegs(), needs_tso(), needs_vxlan_tso(), set_mbuf_len16(), txpkt_len16(), and txpkt_vm_len16().
Referenced by parse_pkt().
|
static |
Definition at line 3073 of file t4_sge.c.
References mp_ring::cookie, eq, r, sge_eq::sidx, and total_available_tx_desc().
Referenced by alloc_txq().
|
inlinestatic |
Definition at line 3081 of file t4_sge.c.
References mbuf_cflags(), MC_RAW_WR, MC_TLS, and needs_tso().
Referenced by add_to_txpkts_pf(), add_to_txpkts_vf(), and eth_tx().
|
inlinestatic |
Definition at line 1697 of file t4_sge.c.
References fl_sdesc::cl, and fl_sdesc::moff.
Referenced by free_fl_buffers(), get_scatter_segment(), and refill_fl().
Definition at line 5637 of file t4_sge.c.
References txpkts::ethmacdst, txpkts::ethtype, txpkts::npkt, txp, and VM_TX_L2HDR_LEN.
Referenced by add_to_txpkts_vf().
void commit_wrq_wr | ( | struct sge_wrq * | wrq, |
void * | w, | ||
struct wrq_cookie * | cookie | ||
) |
Definition at line 2994 of file t4_sge.c.
References sge_wrq::adapter, sge_eq::cidx, sge_eq::dbidx, sge_eq::desc, drain_wrq_wr_list(), eq, sge_wrq::eq, EQ_ESIZE, EQ_LOCK, EQ_UNLOCK, sge_eq::equiq, fw_eth_tx_pkt_wr::equiq_to_len16, F_FW_WR_EQUEQ, F_FW_WR_EQUIQ, IDXDIFF, wrq_cookie::ndesc, pidx, sge_eq::pidx, wrq_cookie::pidx, ring_eq_db(), sidx, sge_eq::sidx, sge_wrq::ss, sge_wrq::ss_len, sge_wrq::ss_pidx, t4_wrq_tx(), sge_wrq::tx_wrs_direct, sge_wrq::tx_wrs_ss, and wrq.
Referenced by del_hashfilter(), del_tcamfilter(), set_hashfilter(), set_tcamfilter(), set_tcb_field(), t4_write_l2e(), and t4_write_sme().
|
inlinestatic |
Definition at line 6058 of file t4_sge.c.
References sge_eq::desc, eq, and sge_eq::sidx.
Referenced by write_raw_wr(), and write_txpkt_wr().
|
inlinestatic |
Definition at line 2545 of file t4_sge.c.
Referenced by count_mbuf_nsegs().
|
inlinestatic |
Definition at line 2611 of file t4_sge.c.
References count_mbuf_ext_pgs(), and MC_NOMAP.
Referenced by parse_pkt().
|
inlinestatic |
Definition at line 5225 of file t4_sge.c.
References CHELSIO_T5, chip_id(), F_TXPKT_IPCSUM_DIS, F_TXPKT_L4CSUM_DIS, needs_hwcsum(), needs_l3_csum(), needs_vxlan_csum(), TX_CSUM_IP, TX_CSUM_TCPIP, TX_CSUM_TCPIP6, TX_CSUM_UDPIP, TX_CSUM_UDPIP6, V_T6_TXPKT_ETHHDR_LEN, V_TXPKT_CSUM_TYPE, V_TXPKT_ETHHDR_LEN, and V_TXPKT_IPHDR_LEN.
Referenced by write_txpkt_vm_wr(), write_txpkt_wr(), write_txpkts_vm_wr(), and write_txpkts_wr().
CTASSERT | ( | offsetof(struct cpl_fw4_msg, data) | = =offsetof(struct cpl_fw6_msg, data) | ) |
Definition at line 4213 of file t4_sge.c.
References sge_eq::abs_id, fw_eq_ctrl_cmd::alloc_to_len16, sge_eq::ba, CH_ERR, CHELSIO_T5, chip_id(), fw_eq_ctrl_cmd::cmpliqid_eqid, cntxt_id, sge_eq::cntxt_id, fw_eq_ctrl_cmd::dcaen_to_eqsize, eq, EQ_ESIZE, sge::eq_start, fw_eq_ctrl_cmd::eqaddr, sge::eqmap, sge::eqmap_sz, F_FW_CMD_EXEC, F_FW_CMD_REQUEST, F_FW_CMD_WRITE, F_FW_EQ_CTRL_CMD_ALLOC, F_FW_EQ_CTRL_CMD_EQSTART, F_FW_EQ_CTRL_CMD_FETCHRO, fw_eq_ctrl_cmd::fetchszm_to_iqid, FW_EQ_CTRL_CMD, FW_LEN16, G_FW_EQ_CTRL_CMD_EQID, G_FW_EQ_CTRL_CMD_PHYSEQID, sge_eq::iqid, adapter::mbox, fw_eq_ctrl_cmd::op_to_vfn, adapter::params, adapter::pf, fw_eq_ctrl_cmd::physeqid_pkd, qsize_to_fthresh(), adapter::sge, adapter_params::sge, sge_eq::sidx, sge_params::spg_len, t4_wr_mbox(), sge_eq::tx_chan, V_FW_CMD_OP, V_FW_EQ_CTRL_CMD_CIDXFTHRESH, V_FW_EQ_CTRL_CMD_CMPLIQID, V_FW_EQ_CTRL_CMD_EQSIZE, V_FW_EQ_CTRL_CMD_FBMAX, V_FW_EQ_CTRL_CMD_FBMIN, V_FW_EQ_CTRL_CMD_HOSTFCMODE, V_FW_EQ_CTRL_CMD_IQID, V_FW_EQ_CTRL_CMD_PCIECHN, V_FW_EQ_CTRL_CMD_PFN, V_FW_EQ_CTRL_CMD_VFN, X_FETCHBURSTMAX_512B, X_FETCHBURSTMIN_64B, X_FETCHBURSTMIN_64B_T6, and X_HOSTFCMODE_STATUS_PAGE.
Referenced by alloc_eq_hwq().
|
inlinestatic |
Definition at line 3089 of file t4_sge.c.
References eq, EQ_ENABLED, EQ_QFLUSH, and sge_eq::flags.
Referenced by eth_tx().
Definition at line 2120 of file t4_sge.c.
References sge_eq::cidx, sge_eq::dbidx, sge_eq::desc, eq, sge_wrq::eq, EQ_ESIZE, EQ_LOCK_ASSERT_OWNED, sge_eq::equiq, fw_eth_tx_pkt_wr::equiq_to_len16, F_FW_WR_EQUEQ, F_FW_WR_EQUIQ, free_wrqe(), IDXDIFF, sge_wrq::ndesc_needed, sge_wrq::nwr_pending, sge_eq::pidx, read_hw_cidx(), ring_eq_db(), sidx, sge_eq::sidx, sge_wrq::tx_wrs_copied, wrqe::wr_len, wrq, and wrqe::wrq.
Referenced by commit_wrq_wr(), start_wrq_wr(), t4_wrq_tx_locked(), and wrq_tx_drain().
Definition at line 4259 of file t4_sge.c.
References sge_eq::abs_id, fw_eq_eth_cmd::alloc_to_len16, fw_eq_eth_cmd::autoequiqe_to_viid, sge_eq::ba, CHELSIO_T5, chip_id(), cntxt_id, sge_eq::cntxt_id, fw_eq_eth_cmd::dcaen_to_eqsize, vi_info::dev, eq, EQ_ESIZE, sge::eq_start, fw_eq_eth_cmd::eqaddr, fw_eq_eth_cmd::eqid_pkd, sge::eqmap, sge::eqmap_sz, F_FW_CMD_EXEC, F_FW_CMD_REQUEST, F_FW_CMD_WRITE, F_FW_EQ_ETH_CMD_ALLOC, F_FW_EQ_ETH_CMD_AUTOEQUEQE, F_FW_EQ_ETH_CMD_AUTOEQUIQE, F_FW_EQ_ETH_CMD_EQSTART, F_FW_EQ_ETH_CMD_FETCHRO, fw_eq_eth_cmd::fetchszm_to_iqid, FW_EQ_ETH_CMD, FW_LEN16, G_FW_EQ_ETH_CMD_EQID, G_FW_EQ_ETH_CMD_PHYSEQID, sge_eq::iqid, adapter::mbox, fw_eq_eth_cmd::op_to_vfn, adapter::params, adapter::pf, fw_eq_eth_cmd::physeqid_pkd, adapter::sge, adapter_params::sge, sge_eq::sidx, sge_params::spg_len, t4_wr_mbox(), sge_eq::tx_chan, V_FW_CMD_OP, V_FW_EQ_ETH_CMD_EQSIZE, V_FW_EQ_ETH_CMD_FBMAX, V_FW_EQ_ETH_CMD_FBMIN, V_FW_EQ_ETH_CMD_HOSTFCMODE, V_FW_EQ_ETH_CMD_IQID, V_FW_EQ_ETH_CMD_PCIECHN, V_FW_EQ_ETH_CMD_PFN, V_FW_EQ_ETH_CMD_VFN, V_FW_EQ_ETH_CMD_VIID, vi_info::viid, X_FETCHBURSTMAX_512B, X_FETCHBURSTMIN_64B, X_FETCHBURSTMIN_64B_T6, and X_HOSTFCMODE_NONE.
Referenced by alloc_eq_hwq().
|
static |
Definition at line 1906 of file t4_sge.c.
References sge_fl::cidx, fl_sdesc::cl, cpl_rx_pkt::csum, cpl_rx_pkt::csum_calc, cpl_rx_pkt::err_vec, F_RXF_IP, F_RXF_IP6, fl, sge_rxq::fl, FL_BUF_RESUME, sge_params::fl_pktshift, sge_iq::flags, sge_fl::flags, G_T6_COMPR_RXERR_VEC, G_T6_RX_TNL_TYPE, G_T6_RX_TNLHDR_LEN, get_fl_payload(), get_segment_len(), rss_header::hash_type, rss_header::hash_val, ifp, sge_rxq::ifp, cpl_rx_pkt::ip_frag, rss_header::ipv6, sge_rxq::iq, IQ_LRO_ENABLED, IQ_RX_TIMESTAMP, cpl_rx_pkt::l2info, rsp_ctrl::last_flit, last_flit_to_ns(), lro, sge_rxq::lro, adapter::params, vi_info::pfil, iq_desc::rsp, iq_desc::rss, sge_fl::rx_offset, tp_params::rx_pkt_encap, RX_PKT_TNL_TYPE_VXLAN, sge_rxq::rxcsum, rxq, sge_fl::sdesc, adapter_params::sge, skip_fl_payload(), adapter_params::tp, rsp_ctrl::u, cpl_rx_pkt::vlan, cpl_rx_pkt::vlan_ex, sge_rxq::vlan_extraction, and sge_rxq::vxlan_rxcsum.
Referenced by service_iq_fl().
Definition at line 3155 of file t4_sge.c.
References vi_info::adapter, add_to_txpkts_pf(), add_to_txpkts_vf(), cannot_use_txpkts(), cidx, sge_eq::cidx, mp_ring::cookie, sge_eq::desc, discard_tx(), eq, sge_txq::eq, EQ_ESIZE, sge_eq::equiq, vi_info::flags, IDXDIFF, IDXINCR, ifp, sge_txq::ifp, txpkts::len16, txpkts::mb, mbuf_cflags(), mbuf_len16(), mbuf_nsegs(), MC_RAW_WR, MC_TLS, txpkts::npkt, pidx, sge_eq::pidx, r, reclaim_tx_descs(), record_eth_tx_time(), ring_eq_db(), txpkts::score, set_txupdate_flags(), SGE_MAX_WR_NDESC, sge_eq::sidx, t4_tx_coalesce, t4_tx_coalesce_pkts, t6_ktls_write_wr(), tx_len16_to_desc(), TX_USES_VM_WR, txp, sge_txq::txp, sge_txq::txpkts_flush, TXQ_LOCK_ASSERT_OWNED, wr_can_update_eq(), write_raw_wr(), write_txpkt_vm_wr(), write_txpkt_wr(), write_txpkts_vm_wr(), and write_txpkts_wr().
Referenced by alloc_txq().
Definition at line 6249 of file t4_sge.c.
References CL_METADATA_SIZE, rx_buf_info::hwidx1, rx_buf_info::hwidx2, largest_rx_cluster, sge::rx_buf_info, adapter::sge, rx_buf_info::size1, rx_buf_info::size2, and SW_ZONE_SIZES.
Referenced by init_fl(), and t4_update_fl_bufsize().
|
static |
Definition at line 3909 of file t4_sge.c.
References sge::ctrlq, sge_wrq::eq, EQ_HW_ALLOCATED, EQ_SW_ALLOCATED, sge_eq::flags, free_eq_hwq(), free_wrq(), and adapter::sge.
Referenced by t4_teardown_adapter_queues().
Definition at line 4374 of file t4_sge.c.
References sge_eq::ba, sge_eq::cidx, sge_eq::desc, sge_eq::desc_map, sge_eq::desc_tag, eq, EQ_ETH, sge_eq::eq_lock, EQ_SW_ALLOCATED, sge_eq::flags, free_ring(), sge_eq::pidx, and sge_eq::type.
Referenced by free_txq(), and free_wrq().
|
static |
Definition at line 4470 of file t4_sge.c.
References CH_ERR, sge_eq::cntxt_id, eq, EQ_CTRL, EQ_ETH, EQ_HW_ALLOCATED, EQ_OFLD, sge_eq::flags, adapter::mbox, adapter::pf, t4_ctrl_eq_free(), t4_eth_eq_free(), t4_ofld_eq_free(), and sge_eq::type.
Definition at line 5066 of file t4_sge.c.
References fl_sdesc::cl, cl_metadata(), extfree_rels, fl, FL_BUF_PACKING, FL_BUF_RESUME, sge_fl::flags, sge_fl::m0, fl_sdesc::nmbuf, cluster_metadata::refcount, sge::rx_buf_info, sge_fl::sdesc, adapter::sge, sge_fl::sidx, fl_sdesc::zidx, and rx_buf_info::zone.
Referenced by free_iq_fl(), and quiesce_iq_fl().
|
static |
Definition at line 3840 of file t4_sge.c.
References sge_iq::flags, free_iq_fl(), free_iq_fl_hwq(), sge::fwq, IQ_HW_ALLOCATED, IQ_SW_ALLOCATED, and adapter::sge.
Referenced by t4_teardown_adapter_queues().
Definition at line 3530 of file t4_sge.c.
References sge_iq::ba, sge_fl::ba, sge_iq::desc, sge_fl::desc, sge_iq::desc_map, sge_fl::desc_map, sge_iq::desc_tag, sge_fl::desc_tag, fl, sge_fl::fl_lock, sge_iq::flags, free_fl_buffers(), free_ring(), iq, IQ_HAS_FL, IQ_SW_ALLOCATED, and sge_fl::sdesc.
Referenced by free_fwq(), and free_rxq().
Definition at line 3717 of file t4_sge.c.
References CH_ERR, sge_iq::cntxt_id, sge_fl::cntxt_id, fl, sge_iq::flags, FW_IQ_TYPE_FL_INT_CAP, iq, IQ_HW_ALLOCATED, adapter::mbox, adapter::pf, and t4_iq_free().
Referenced by free_fwq(), and free_rxq().
int free_ring | ( | struct adapter * | sc, |
bus_dma_tag_t | tag, | ||
bus_dmamap_t | map, | ||
bus_addr_t | pa, | ||
void * | va | ||
) |
Definition at line 3467 of file t4_sge.c.
References tag.
Referenced by alloc_iq_fl(), alloc_ring(), free_eq(), and free_iq_fl().
Definition at line 4024 of file t4_sge.c.
References vi_info::adapter, sge_rxq::fl, sge_iq::flags, free_iq_fl(), free_iq_fl_hwq(), sge_rxq::iq, IQ_HW_ALLOCATED, IQ_SW_ALLOCATED, sge_rxq::lro, and rxq.
Referenced by t4_teardown_vi_queues().
Definition at line 4653 of file t4_sge.c.
References vi_info::adapter, eq, sge_txq::eq, EQ_HW_ALLOCATED, EQ_SW_ALLOCATED, sge_eq::flags, free_eq(), free_eq_hwq(), sge_txq::gl, mp_ring_free(), sge_txq::r, and sge_txq::sdesc.
Referenced by t4_teardown_vi_queues().
Definition at line 4527 of file t4_sge.c.
References sge_wrq::eq, free_eq(), sge_wrq::nwr_pending, and wrq.
Referenced by free_ctrlq().
|
static |
Definition at line 468 of file t4_sge.c.
References sge_iq::adapter, CPL_COOKIE_ETHOFLD, CPL_COOKIE_TOM, fw4_ack_handlers, G_CPL_FW4_ACK_FLOWID, iq, is_etid(), and OPCODE_TID.
Referenced by t4_init_shared_cpl_handlers().
|
static |
Definition at line 1797 of file t4_sge.c.
References fl, FL_BUF_RESUME, sge_fl::flags, get_scatter_segment(), sge_fl::m0, sge_fl::pnext, sge_fl::remaining, and sge_fl::rx_offset.
|
static |
Definition at line 6225 of file t4_sge.c.
References ss_len.
Referenced by write_gl_to_txd().
|
inlinestatic |
Definition at line 5097 of file t4_sge.c.
References gl, max_nsegs_allowed(), and mbuf_nsegs().
Referenced by write_gl_to_txd().
|
static |
Definition at line 1720 of file t4_sge.c.
References sge_fl::buf_boundary, sge_fl::cidx, cluster_metadata::cl, fl_sdesc::cl, cl_metadata(), extfree_refs, fl, FL_BUF_PACKING, sge_fl::flags, move_to_next_rxbuf(), fl_sdesc::nmbuf, cluster_metadata::refcount, sge::rx_buf_info, RX_COPY_THRESHOLD, sge_fl::rx_offset, rxb_free(), adapter::sc_do_rxcopy, sge_fl::sdesc, adapter::sge, rx_buf_info::size1, rx_buf_info::size2, rx_buf_info::type, fl_sdesc::zidx, cluster_metadata::zone, and rx_buf_info::zone.
Referenced by get_fl_payload().
Definition at line 1891 of file t4_sge.c.
References sge_fl::cidx, fl, FL_BUF_PACKING, sge_fl::flags, sge::rx_buf_info, sge_fl::rx_offset, sge_fl::sdesc, adapter::sge, rx_buf_info::size1, rx_buf_info::size2, and fl_sdesc::zidx.
Referenced by eth_rx().
Definition at line 6307 of file t4_sge.c.
References eq, EQ_ETH, sge_eq::equiq, mp_ring_check_drainage(), mp_ring_is_idle(), sge_txq::r, adapter::tq, sge_eq::tx_chan, sge_txq::tx_reclaim_task, and sge_eq::type.
Referenced by handle_sge_egr_update().
|
static |
Definition at line 6347 of file t4_sge.c.
References sge_iq::adapter, cpl_fw6_msg::data, FW6_TYPE_RSSCPL, FW_TYPE_RSSCPL, iq, rss_header::opcode, t4_cpl_handler, t4_fw_msg_handler, and cpl_fw6_msg::type.
Referenced by t4_sge_modload().
|
static |
Definition at line 6321 of file t4_sge.c.
References sge_iq::adapter, eq, sge::eq_base, sge::eq_start, sge::eqmap, G_EGR_QID, handle_eth_egr_update(), handle_wrq_egr_update(), iq, rss_header::opcode, cpl_sge_egr_update::opcode_qid, adapter::sge, and sge_eq::type.
Referenced by t4_sge_modload().
Definition at line 6298 of file t4_sge.c.
References eq, sge_eq::equiq, adapter::tq, sge_eq::tx_chan, wrq, and sge_wrq::wrq_tx_task.
Referenced by handle_sge_egr_update().
|
inlinestatic |
Definition at line 842 of file t4_sge.c.
References fl_pad, sge_params::pad_boundary, adapter::params, and adapter_params::sge.
Referenced by t4_init_rx_buf_info().
|
inlinestatic |
Definition at line 5214 of file t4_sge.c.
References EQ_ESIZE.
Referenced by write_txpkt_wr().
|
inlinestatic |
Definition at line 3420 of file t4_sge.c.
References eq, EQ_CTRL, EQ_ESIZE, sge_eq::eq_lock, EQ_OFLD, iq, sge_eq::iq, sge_eq::lockname, adapter::params, adapter_params::sge, sge_eq::sidx, sge_params::spg_len, sge_eq::tx_chan, and sge_eq::type.
Referenced by alloc_ctrlq(), and alloc_txq().
|
inlinestatic |
Definition at line 3394 of file t4_sge.c.
References sge_fl::buf_boundary, BUF_PACKING_OK, buffer_packing, EQ_ESIZE, find_refill_source(), fl, FL_BUF_PACKING, sge_fl::fl_lock, fl_pad, sge_params::fl_starve_threshold, sge_params::fl_starve_threshold2, sge_fl::flags, adapter::flags, is_t4(), sge_fl::lockname, sge_fl::lowat, sge_params::pack_boundary, sge_params::pad_boundary, adapter::params, sge_fl::qsize, sge_fl::safe_zidx, sge::safe_zidx, adapter::sge, adapter_params::sge, sge_fl::sidx, sge_params::spg_len, and sge_fl::zidx.
Referenced by alloc_rxq().
|
inlinestatic |
Definition at line 3367 of file t4_sge.c.
References sge_iq::adapter, sge_iq::cong, F_QINTR_CNT_EN, sge_iq::flags, sge_iq::intr_idx, sge_iq::intr_params, sge_iq::intr_pktc_idx, iq, IQ_ESIZE, IQS_DISABLED, adapter::params, sge_iq::qsize, adapter_params::sge, SGE_NCOUNTERS, SGE_NTIMERS, sge_iq::sidx, sge_params::spg_len, sge_iq::state, and V_QINTR_TIMER_IDX.
Referenced by alloc_fwq(), and alloc_rxq().
|
static |
Definition at line 426 of file t4_sge.c.
References CPL_COOKIE_FILTER, CPL_COOKIE_TOM, F_SYNC_WR, GET_TID, iq, and l2t_write_rpl_handlers.
Referenced by t4_init_shared_cpl_handlers().
|
inlinestatic |
Definition at line 1515 of file t4_sge.c.
References vpd_params::cclk, adapter::params, and adapter_params::vpd.
Referenced by eth_rx().
|
static |
Definition at line 2654 of file t4_sge.c.
References needs_tso(), needs_vxlan_tso(), TX_SGL_SEGS, TX_SGL_SEGS_TSO, TX_SGL_SEGS_VM, TX_SGL_SEGS_VM_TSO, and TX_SGL_SEGS_VXLAN_TSO.
Referenced by get_pkt_gl(), and parse_pkt().
Definition at line 1093 of file t4_sge.c.
References adapter::cryptocaps, sge_params::fl_pktshift, FW_CAPS_CONFIG_TLSKEYS, ifp, tp_params::max_rx_pdu, adapter::params, adapter_params::sge, tom_tunables::tls, adapter_params::tp, and adapter::tt.
Referenced by t4_setup_vi_queues(), and t4_update_fl_bufsize().
|
inlinestatic |
Definition at line 2275 of file t4_sge.c.
Referenced by cannot_use_txpkts(), eth_tx(), mbuf_len16(), parse_pkt(), set_mbuf_len16(), and write_txpkt_wr().
|
inlinestatic |
Definition at line 2291 of file t4_sge.c.
References mbuf_cflags(), MC_TLS, and SGE_MAX_WR_LEN.
Referenced by eth_tx(), write_raw_wr(), write_txpkt_vm_wr(), and write_txpkt_wr().
|
inlinestatic |
Definition at line 2256 of file t4_sge.c.
Referenced by add_to_txpkts_pf(), add_to_txpkts_vf(), calculate_mbuf_len16(), eth_tx(), get_pkt_gl(), write_txpkt_wr(), write_txpkts_vm_wr(), and write_txpkts_wr().
|
inlinestatic |
Definition at line 1526 of file t4_sge.c.
References cidx, sge_fl::cidx, fl, sge_fl::hw_cidx, sge_fl::rx_offset, and sge_fl::sidx.
Referenced by get_scatter_segment(), service_iq_fl(), and skip_scatter_segment().
|
inlinestatic |
Definition at line 2406 of file t4_sge.c.
Referenced by csum_to_ctrl(), and parse_pkt().
|
inlinestatic |
Definition at line 2464 of file t4_sge.c.
Referenced by csum_to_ctrl().
|
inlinestatic |
Definition at line 2475 of file t4_sge.c.
Referenced by parse_pkt().
|
inlinestatic |
Definition at line 2420 of file t4_sge.c.
Referenced by calculate_mbuf_len16(), cannot_use_txpkts(), max_nsegs_allowed(), parse_pkt(), write_txpkt_vm_wr(), and write_txpkt_wr().
|
inlinestatic |
Definition at line 2509 of file t4_sge.c.
Referenced by write_txpkt_vm_wr(), write_txpkt_wr(), write_txpkts_vm_wr(), and write_txpkts_wr().
|
inlinestatic |
Definition at line 2431 of file t4_sge.c.
Referenced by csum_to_ctrl(), parse_pkt(), write_txpkt_wr(), and write_txpkts_wr().
|
inlinestatic |
Definition at line 2440 of file t4_sge.c.
Referenced by calculate_mbuf_len16(), max_nsegs_allowed(), parse_pkt(), and write_txpkt_wr().
|
static |
Definition at line 4892 of file t4_sge.c.
References ba.
Referenced by alloc_ring().
int parse_pkt | ( | struct mbuf ** | mp, |
bool | vm_wr | ||
) |
Definition at line 2682 of file t4_sge.c.
References calculate_mbuf_len16(), count_mbuf_nsegs(), defrags, max_nsegs_allowed(), mbuf_cflags(), MC_NOMAP, MC_TLS, needs_hwcsum(), needs_outer_tcp_csum(), needs_tso(), needs_vxlan_csum(), needs_vxlan_tso(), pullups, set_mbuf_cflags(), set_mbuf_len16(), set_mbuf_nsegs(), t6_ktls_parse_pkt(), txerr_interval, txerr_ratecheck, V_FW_ETH_TX_EO_WR_TSCLK, and V_FW_ETH_TX_EO_WR_TSOFF.
Referenced by cxgbe_transmit().
|
static |
Definition at line 4199 of file t4_sge.c.
References ilog2(), and X_CIDXFLUSHTHRESH_128.
Referenced by ctrl_eq_alloc().
|
inlinestatic |
Definition at line 6157 of file t4_sge.c.
References cidx, sge_qstat::cidx, sge_eq::desc, eq, and sge_eq::sidx.
Referenced by drain_wrq_wr_list(), reclaimable_tx_desc(), start_wrq_wr(), and total_available_tx_desc().
|
static |
Definition at line 6169 of file t4_sge.c.
References sge_eq::cidx, tx_sdesc::desc_used, eq, sge_txq::eq, IDXINCR, tx_sdesc::m, reclaimable_tx_desc(), sge_txq::sdesc, sge_eq::sidx, and TXQ_LOCK_ASSERT_OWNED.
Referenced by eth_tx(), and tx_reclaim().
|
inlinestatic |
Definition at line 6134 of file t4_sge.c.
References sge_eq::cidx, eq, IDXDIFF, read_hw_cidx(), and sge_eq::sidx.
Referenced by reclaim_tx_descs().
Definition at line 3135 of file t4_sge.c.
References last_tx, sge_txq::last_tx, and t4_tx_coalesce_gap.
Referenced by eth_tx().
Definition at line 4927 of file t4_sge.c.
References cluster_metadata::cl, fl_sdesc::cl, sge_fl::cl_allocated, sge_fl::cl_fast_recycled, cl_metadata(), sge_fl::cl_recycled, sge_fl::dbidx, sge_fl::desc, extfree_rels, fl, FL_BUF_PACKING, FL_LOCK_ASSERT_OWNED, FL_RUNNING_LOW, FL_STARVING, sge_fl::flags, sge_fl::hw_cidx, rx_buf_info::hwidx1, rx_buf_info::hwidx2, IDXDIFF, fl_sdesc::moff, fl_sdesc::nmbuf, pidx, sge_fl::pidx, cluster_metadata::refcount, ring_fl_db(), sge::rx_buf_info, sge_fl::safe_zidx, sge_fl::sdesc, adapter::sge, sge_fl::sidx, rx_buf_info::size2, fl_sdesc::zidx, sge_fl::zidx, and rx_buf_info::zone.
Referenced by alloc_iq_fl_hwq(), alloc_rxq(), refill_sfl(), and service_iq_fl().
|
static |
Definition at line 5040 of file t4_sge.c.
References fl, FL_DOOMED, FL_LOCK, FL_NOT_RUNNING_LOW, FL_UNLOCK, sge_fl::flags, refill_fl(), adapter::sfl_callout, and adapter::sfl_lock.
Referenced by add_fl_to_sfl().
Definition at line 6080 of file t4_sge.c.
References sge_eq::cntxt_id, sge_eq::dbidx, sge_eq::desc, DOORBELL_KDB, DOORBELL_UDB, DOORBELL_UDBWC, DOORBELL_WCWR, sge_eq::doorbells, eq, IDXINCR, adapter::sge_kdoorbell_reg, sge_eq::sidx, t4_write_reg(), sge_eq::udb, sge_eq::udb_qid, UDBS_DB_OFFSET, UDBS_WR_OFFSET, V_PIDX, and V_QID.
Referenced by commit_wrq_wr(), drain_wrq_wr_list(), and eth_tx().
Definition at line 4903 of file t4_sge.c.
References sge_fl::dbidx, sge_fl::dbval, fl, IDXDIFF, IDXINCR, sge_fl::pidx, adapter::sge_kdoorbell_reg, sge_fl::sidx, t4_write_reg(), sge_fl::udb, and V_PIDX.
Referenced by refill_fl().
|
static |
Definition at line 1704 of file t4_sge.c.
References cluster_metadata::cl, extfree_rels, and cluster_metadata::zone.
Referenced by get_scatter_segment().
|
inlinestatic |
Definition at line 5653 of file t4_sge.c.
References txpkts::ethmacdst, txp, and VM_TX_L2HDR_LEN.
Referenced by add_to_txpkts_vf().
|
static |
Definition at line 1384 of file t4_sge.c.
References sge_iq::adapter, sge_iq::cidx, sge_iq::cntxt_id, sge_iq::desc, adapter::dev, F_RSPD_GEN, sge_iq::flags, G_RSPD_TYPE, sge_iq::gen, sge_iq::intr_params, iq, IQ_ADJ_CREDIT, sge::iq_base, IQ_HAS_FL, IQ_LRO_ENABLED, sge::iq_start, sge::iqmap, IQS_BUSY, IQS_IDLE, NUM_CPL_CMDS, rss_header::opcode, rsp_ctrl::pldbuflen_qid, sge_iq::qsize, iq_desc::rsp, iq_desc::rss, service_iq_fl(), adapter::sge, adapter::sge_gts_reg, sge_iq::sidx, STAILQ_HEAD(), sge_iq::state, t4_an_handler, t4_cpl_handler, t4_write_reg(), rsp_ctrl::type_gen, rsp_ctrl::u, V_CIDXINC, V_INGRESSQID, V_QINTR_TIMER_IDX, V_SEINTARM, X_RSPD_TYPE_CPL, X_RSPD_TYPE_FLBUF, X_RSPD_TYPE_INTR, and X_TIMERREG_UPDATE_CIDX.
Referenced by t4_intr_evt().
|
static |
Definition at line 1543 of file t4_sge.c.
References sge_iq::adapter, add_fl_to_sfl(), sge_iq::cidx, sge_iq::cntxt_id, CPL_RX_PKT, sge_iq::desc, adapter::dev, eth_rx(), F_RSPD_GEN, F_RSPD_NEWBUF, fl, sge_rxq::fl, FL_LOCK, FL_UNLOCK, sge_iq::flags, G_RSPD_LEN, G_RSPD_TYPE, sge_iq::gen, get_fl_payload(), sge_fl::hw_cidx, IDXDIFF, sge_iq::intr_params, iq, IQ_ADJ_CREDIT, IQ_HAS_FL, IQ_LRO_ENABLED, iq_to_rxq(), IQS_BUSY, lro, sge_rxq::lro, adapter::lro_timeout, move_to_next_rxbuf(), NUM_CPL_CMDS, rss_header::opcode, rsp_ctrl::pldbuflen_qid, sge_iq::qsize, refill_fl(), iq_desc::rsp, iq_desc::rss, sge_fl::rx_offset, rxq, adapter::sge_gts_reg, sge_iq::sidx, sge_fl::sidx, sge_iq::state, t4_an_handler, t4_cpl_handler, t4_write_reg(), rsp_ctrl::type_gen, rsp_ctrl::u, V_CIDXINC, V_INGRESSQID, V_QINTR_TIMER_IDX, V_SEINTARM, X_RSPD_TYPE_CPL, X_RSPD_TYPE_FLBUF, X_RSPD_TYPE_INTR, and X_TIMERREG_UPDATE_CIDX.
Referenced by service_iq(), and t4_intr().
|
inlinestatic |
Definition at line 2283 of file t4_sge.c.
References sge_fl::flags.
Referenced by alloc_wr_mbuf(), and parse_pkt().
|
inlinestatic |
Definition at line 2304 of file t4_sge.c.
References mbuf_cflags(), MC_TLS, and SGE_MAX_WR_LEN.
Referenced by alloc_wr_mbuf(), calculate_mbuf_len16(), and parse_pkt().
|
inlinestatic |
Definition at line 2267 of file t4_sge.c.
Referenced by parse_pkt().
|
static |
Definition at line 399 of file t4_sge.c.
References sge_iq::adapter, cpl_set_tcb_rpl::cookie, CPL_COOKIE_FILTER, CPL_COOKIE_RESERVED, G_COOKIE, GET_TID, iq, is_ftid(), is_hpftid(), and set_tcb_rpl_handlers.
Referenced by t4_init_shared_cpl_handlers().
|
inlinestatic |
Definition at line 3114 of file t4_sge.c.
References eq, sge_txq::eq, sge_eq::equeqidx, sge_eq::equiq, fw_eth_tx_pkt_wr::equiq_to_len16, F_FW_WR_EQUEQ, F_FW_WR_EQUIQ, IDXDIFF, txpkts::npkt, sge_eq::pidx, sidx, sge_eq::sidx, txp, and sge_txq::txp.
Referenced by eth_tx().
|
inlinestatic |
Definition at line 637 of file t4_sge.c.
References A_SGE_CONTROL, A_SGE_CONTROL2, buffer_packing, CHELSIO_T5, chip_id(), adapter::dev, fl_pack, fl_pad, ilog2(), is_t4(), M_INGPACKBOUNDARY, M_INGPADBOUNDARY, MAX_PACK_BOUNDARY, pci_params::mps, adapter::params, adapter_params::pci, t4_set_reg_field(), V_INGPACKBOUNDARY, V_INGPADBOUNDARY, X_INGPADBOUNDARY_SHIFT, and X_T6_INGPADBOUNDARY_SHIFT.
Referenced by t4_tweak_chip_settings().
Definition at line 1877 of file t4_sge.c.
References fl, and skip_scatter_segment().
Referenced by eth_rx().
|
static |
Definition at line 1846 of file t4_sge.c.
References sge_fl::buf_boundary, sge_fl::cidx, fl, FL_BUF_PACKING, sge_fl::flags, move_to_next_rxbuf(), sge::rx_buf_info, sge_fl::rx_offset, sge_fl::sdesc, adapter::sge, rx_buf_info::size1, rx_buf_info::size2, and fl_sdesc::zidx.
Referenced by skip_fl_payload().
void * start_wrq_wr | ( | struct sge_wrq * | wrq, |
int | len16, | ||
struct wrq_cookie * | cookie | ||
) |
Definition at line 2940 of file t4_sge.c.
References sge_wrq::adapter, alloc_wrqe(), sge_eq::cidx, sge_eq::desc, drain_wrq_wr_list(), eq, sge_wrq::eq, EQ_LOCK, EQ_UNLOCK, IDXDIFF, IDXINCR, wrq_cookie::ndesc, sge_eq::pidx, wrq_cookie::pidx, read_hw_cidx(), SGE_MAX_WR_NDESC, sge_eq::sidx, sge_wrq::ss, sge_wrq::ss_len, sge_wrq::ss_pidx, tx_len16_to_desc(), and wrq.
Referenced by del_hashfilter(), del_tcamfilter(), set_hashfilter(), set_tcamfilter(), set_tcb_field(), t4_write_l2e(), and t4_write_sme().
|
static |
Definition at line 6447 of file t4_sge.c.
References bufidx_used(), adapter::params, adapter_params::sge, sge_params::sge_fl_buffer_size, and SGE_FLBUF_SIZES.
Referenced by t4_sge_sysctls().
SYSCTL_COUNTER_U64 | ( | _hw_cxgbe | , |
OID_AUTO | , | ||
defrags | , | ||
CTLFLAG_RD | , | ||
& | defrags, | ||
"Number of mbuf defrags performed" | |||
) |
SYSCTL_COUNTER_U64 | ( | _hw_cxgbe | , |
OID_AUTO | , | ||
pullups | , | ||
CTLFLAG_RD | , | ||
& | pullups, | ||
"Number of mbuf pullups performed" | |||
) |
SYSCTL_INT | ( | _hw_cxgbe | , |
OID_AUTO | , | ||
buffer_packing | , | ||
CTLFLAG_RDTUN | , | ||
& | buffer_packing, | ||
0 | , | ||
"Enable buffer packing" | |||
) |
SYSCTL_INT | ( | _hw_cxgbe | , |
OID_AUTO | , | ||
cong_drop | , | ||
CTLFLAG_RDTUN | , | ||
& | cong_drop, | ||
0 | |||
) |
SYSCTL_INT | ( | _hw_cxgbe | , |
OID_AUTO | , | ||
fl_pack | , | ||
CTLFLAG_RDTUN | , | ||
& | fl_pack, | ||
0 | , | ||
"payload pack boundary (bytes)" | |||
) |
SYSCTL_INT | ( | _hw_cxgbe | , |
OID_AUTO | , | ||
fl_pad | , | ||
CTLFLAG_RDTUN | , | ||
& | fl_pad, | ||
0 | , | ||
"payload pad boundary (bytes)" | |||
) |
SYSCTL_INT | ( | _hw_cxgbe | , |
OID_AUTO | , | ||
fl_pktshift | , | ||
CTLFLAG_RDTUN | , | ||
& | fl_pktshift, | ||
0 | , | ||
"payload DMA offset in rx buffer (bytes)" | |||
) |
SYSCTL_INT | ( | _hw_cxgbe | , |
OID_AUTO | , | ||
largest_rx_cluster | , | ||
CTLFLAG_RDTUN | , | ||
& | largest_rx_cluster, | ||
0 | , | ||
"Largest rx cluster (bytes)" | |||
) |
SYSCTL_INT | ( | _hw_cxgbe | , |
OID_AUTO | , | ||
lro_entries | , | ||
CTLFLAG_RDTUN | , | ||
& | lro_entries, | ||
0 | , | ||
"Number of LRO entries per RX queue" | |||
) |
SYSCTL_INT | ( | _hw_cxgbe | , |
OID_AUTO | , | ||
lro_mbufs | , | ||
CTLFLAG_RDTUN | , | ||
& | lro_mbufs, | ||
0 | , | ||
"Enable presorting of LRO frames" | |||
) |
SYSCTL_INT | ( | _hw_cxgbe | , |
OID_AUTO | , | ||
safest_rx_cluster | , | ||
CTLFLAG_RDTUN | , | ||
& | safest_rx_cluster, | ||
0 | , | ||
"Safe rx cluster (bytes)" | |||
) |
SYSCTL_INT | ( | _hw_cxgbe | , |
OID_AUTO | , | ||
spg_len | , | ||
CTLFLAG_RDTUN | , | ||
& | spg_len, | ||
0 | , | ||
"status page size (bytes)" | |||
) |
SYSCTL_INT | ( | _hw_cxgbe | , |
OID_AUTO | , | ||
tscale | , | ||
CTLFLAG_RDTUN | , | ||
& | tscale, | ||
0 | , | ||
"Interrupt holdoff timer scale on T6+" | |||
) |
SYSCTL_INT | ( | _hw_cxgbe | , |
OID_AUTO | , | ||
tx_coalesce | , | ||
CTLFLAG_RWTUN | , | ||
& | t4_tx_coalesce, | ||
0 | , | ||
"tx coalescing allowed" | |||
) |
SYSCTL_INT | ( | _hw_cxgbe | , |
OID_AUTO | , | ||
tx_coalesce_gap | , | ||
CTLFLAG_RWTUN | , | ||
& | t4_tx_coalesce_gap, | ||
0 | , | ||
"tx gap (in microseconds)" | |||
) |
SYSCTL_INT | ( | _hw_cxgbe | , |
OID_AUTO | , | ||
tx_coalesce_pkts | , | ||
CTLFLAG_RWTUN | , | ||
& | t4_tx_coalesce_pkts, | ||
0 | , | ||
"# of consecutive packets (1 - 255) that will trigger tx coalescing" | |||
) |
int t4_create_dma_tag | ( | struct adapter * | sc | ) |
Definition at line 977 of file t4_sge.c.
References adapter::dev, and adapter::dmat.
Referenced by t4_attach(), and t4vf_attach().
int t4_destroy_dma_tag | ( | struct adapter * | sc | ) |
Definition at line 1020 of file t4_sge.c.
References adapter::dmat.
Referenced by t4_detach_common().
t4_handle_wrerr_rpl - process a FW work request error message @adap: the adapter @rpl: start of the FW message
Definition at line 6371 of file t4_sge.c.
References fw_error_cmd::fw_error::acl, fw_error_cmd::fw_error::fw_error_wr::cidx, fw_error_cmd::fw_error::fw_error_acl::cidx, adapter::dev, fw_error_cmd::fw_error::fw_error_wr::eqid, fw_error_cmd::fw_error::fw_error_acl::eqid, fw_error_cmd::fw_error::exception, FW_ERROR_CMD, FW_ERROR_TYPE_ACL, FW_ERROR_TYPE_EXCEPTION, FW_ERROR_TYPE_HWMODULE, FW_ERROR_TYPE_WR, G_FW_ERROR_CMD_FATAL, G_FW_ERROR_CMD_MV, G_FW_ERROR_CMD_PFN, G_FW_ERROR_CMD_TYPE, G_FW_ERROR_CMD_VFN, fw_error_cmd::fw_error::hwmodule, fw_error_cmd::fw_error::fw_error_exception::info, fw_error_cmd::fw_error::fw_error_acl::mv_pkd, fw_error_cmd::op_to_type, rss_header::opcode, fw_error_cmd::fw_error::fw_error_wr::pfn_vfn, fw_error_cmd::fw_error::fw_error_acl::pfn_vfn, fw_error_cmd::fw_error::fw_error_hwmodule::regaddr, fw_error_cmd::fw_error::fw_error_hwmodule::regval, fw_error_cmd::u, fw_error_cmd::fw_error::fw_error_acl::val, fw_error_cmd::fw_error::wr, and fw_error_cmd::fw_error::fw_error_wr::wrhdr.
Referenced by t4_sge_modload().
void t4_init_rx_buf_info | ( | struct adapter * | sc | ) |
Definition at line 854 of file t4_sge.c.
References BUF_PACKING_OK, CL_METADATA_SIZE, adapter::flags, rx_buf_info::hwidx1, rx_buf_info::hwidx2, hwsz_ok(), adapter::params, sge::rx_buf_info, sge::safe_zidx, safest_rx_cluster, adapter::sge, adapter_params::sge, sge_params::sge_fl_buffer_size, SGE_FLBUF_SIZES, rx_buf_info::size1, rx_buf_info::size2, SW_ZONE_SIZES, rx_buf_info::type, and rx_buf_info::zone.
Referenced by get_params__post_init().
|
static |
Definition at line 485 of file t4_sge.c.
References abort_rpl_rss_handler(), act_open_rpl_handler(), CPL_ABORT_RPL_RSS, CPL_ACT_OPEN_RPL, CPL_FW4_ACK, CPL_L2T_WRITE_RPL, CPL_SET_TCB_RPL, fw4_ack_handler(), l2t_write_rpl_handler(), set_tcb_rpl_handler(), and t4_register_cpl_handler().
Referenced by t4_sge_modload().
void t4_intr | ( | void * | arg | ) |
Definition at line 1339 of file t4_sge.c.
References iq, IQS_BUSY, IQS_IDLE, service_iq_fl(), and sge_iq::state.
Referenced by t4_setup_intr_handlers().
void t4_intr_all | ( | void * | arg | ) |
Definition at line 1282 of file t4_sge.c.
References A_PCIE_PF_CLI, sge::fwq, adapter::intr_count, INTR_INTX, adapter::intr_type, MYPF_REG, adapter::sge, t4_intr_err(), t4_intr_evt(), and t4_write_reg().
Referenced by t4_setup_intr_handlers().
void t4_intr_err | ( | void * | arg | ) |
Definition at line 1301 of file t4_sge.c.
References A_PL_PF_INT_CAUSE, ADAP_FATAL_ERR, adapter::debug_flags, DF_VERBOSE_SLOWINTR, adapter::error_flags, F_PFSW, MYPF_REG, adapter::swintr, t4_fatal_err(), t4_read_reg(), t4_slow_intr_handler(), and t4_write_reg().
Referenced by t4_intr_all(), and t4_setup_intr_handlers().
void t4_intr_evt | ( | void * | arg | ) |
Definition at line 1325 of file t4_sge.c.
References iq, IQS_BUSY, IQS_IDLE, service_iq(), and sge_iq::state.
Referenced by t4_intr_all(), and t4_setup_intr_handlers().
void t4_register_an_handler | ( | an_handler_t | h | ) |
Definition at line 357 of file t4_sge.c.
References t4_an_handler.
void t4_register_cpl_handler | ( | int | opcode, |
cpl_handler_t | h | ||
) |
Definition at line 387 of file t4_sge.c.
References t4_cpl_handler.
Referenced by ccr_modevent(), mod_event(), t4_init_shared_cpl_handlers(), and t4_sge_modload().
void t4_register_fw_msg_handler | ( | int | type, |
fw_msg_handler_t | h | ||
) |
Definition at line 368 of file t4_sge.c.
References FW6_TYPE_RSSCPL, FW_TYPE_RSSCPL, and t4_fw_msg_handler.
Referenced by t4_sge_modload().
void t4_register_shared_cpl_handler | ( | int | opcode, |
cpl_handler_t | h, | ||
int | cookie | ||
) |
Definition at line 496 of file t4_sge.c.
References abort_rpl_rss_handlers, act_open_rpl_handlers, CPL_ABORT_RPL_RSS, CPL_ACT_OPEN_RPL, CPL_COOKIE_RESERVED, CPL_FW4_ACK, CPL_L2T_WRITE_RPL, CPL_SET_TCB_RPL, fw4_ack_handlers, l2t_write_rpl_handlers, NUM_CPL_COOKIES, set_tcb_rpl_handlers, and t4_cpl_handler.
Referenced by mod_event(), and t4_sge_modload().
int t4_setup_adapter_queues | ( | struct adapter * | sc | ) |
Definition at line 1036 of file t4_sge.c.
References ADAPTER_LOCK_ASSERT_NOTOWNED, alloc_ctrlq(), alloc_fwq(), adapter::flags, for_each_port, and IS_VF.
Referenced by adapter_full_init().
int t4_setup_vi_queues | ( | struct vi_info * | vi | ) |
Definition at line 1107 of file t4_sge.c.
References vi_info::adapter, alloc_rxq(), alloc_txq(), vi_info::first_intr, vi_info::first_nm_rxq, for_each_nm_rxq, for_each_nm_txq, for_each_ofld_rxq, for_each_ofld_txq, for_each_rxq, for_each_txq, forwarding_intr_to_fwq(), ifp, vi_info::ifp, iqidx, max_rx_payload(), nm_rxq, vi_info::nnmrxq, vi_info::nrxq, rxq, and t4_teardown_vi_queues().
Referenced by vi_full_init().
uint64_t t4_sge_extfree_refs | ( | void | ) |
Definition at line 623 of file t4_sge.c.
References extfree_refs, and extfree_rels.
Referenced by mod_event().
void t4_sge_modload | ( | void | ) |
Definition at line 533 of file t4_sge.c.
References cong_drop, CPL_COOKIE_ETHOFLD, CPL_FW4_ACK, CPL_FW4_MSG, CPL_FW6_MSG, CPL_SGE_EGR_UPDATE, defrags, extfree_refs, extfree_rels, fl_pktshift, FW6_TYPE_CMD_RPL, FW6_TYPE_WRERR_RPL, handle_fw_msg(), handle_sge_egr_update(), largest_rx_cluster, pullups, safest_rx_cluster, spg_len, t4_handle_fw_rpl(), t4_handle_wrerr_rpl(), t4_init_shared_cpl_handlers(), t4_register_cpl_handler(), t4_register_fw_msg_handler(), t4_register_shared_cpl_handler(), and tscale.
Referenced by mod_event().
void t4_sge_modunload | ( | void | ) |
Definition at line 613 of file t4_sge.c.
References defrags, extfree_refs, extfree_rels, and pullups.
Referenced by mod_event().
void t4_sge_sysctls | ( | struct adapter * | sc, |
struct sysctl_ctx_list * | ctx, | ||
struct sysctl_oid_list * | children | ||
) |
Definition at line 994 of file t4_sge.c.
References cong_drop, sge_params::fl_pktshift, sge_params::pack_boundary, sge_params::pad_boundary, adapter::params, adapter_params::sge, sge_params::spg_len, and sysctl_bufsizes().
Referenced by t4_sysctls().
int t4_teardown_adapter_queues | ( | struct adapter * | sc | ) |
Definition at line 1075 of file t4_sge.c.
References ADAPTER_LOCK_ASSERT_NOTOWNED, sge::ctrlq, adapter::flags, for_each_port, free_ctrlq(), free_fwq(), IS_VF, and adapter::sge.
Referenced by adapter_full_uninit().
int t4_teardown_vi_queues | ( | struct vi_info * | vi | ) |
Definition at line 1215 of file t4_sge.c.
References for_each_nm_rxq, for_each_nm_txq, for_each_ofld_rxq, for_each_ofld_txq, for_each_rxq, for_each_txq, free_rxq(), free_txq(), vi_info::ifp, nm_rxq, and rxq.
Referenced by t4_setup_vi_queues(), and vi_full_uninit().
void t4_tweak_chip_settings | ( | struct adapter * | sc | ) |
Definition at line 712 of file t4_sge.c.
References A_SGE_CONTROL, A_SGE_FL_BUFFER_SIZE0, A_SGE_FL_BUFFER_SIZE1, A_SGE_FL_BUFFER_SIZE15, A_SGE_FL_BUFFER_SIZE2, A_SGE_HOST_PAGE_SIZE, A_SGE_INGRESS_RX_THRESHOLD, A_SGE_ITP_CONTROL, A_SGE_TIMER_VALUE_0_AND_1, A_SGE_TIMER_VALUE_2_AND_3, A_SGE_TIMER_VALUE_4_AND_5, A_TP_CMM_CONFIG, A_TP_PARA_REG5, A_ULP_RX_CTL, A_ULP_RX_ISCSI_PSZ, A_ULP_RX_TDDP_PSZ, vpd_params::cclk, CHELSIO_T6, chip_id(), CL_METADATA_SIZE, adapter::debug_flags, DF_DISABLE_TCB_CACHE, F_EGRSTATUSPAGESIZE, F_ISCSITAGTCB, F_REARMDDPOFFSET, F_RESETDDPOFFSET, F_RXPKTCPLMODE, F_TDDPTAGTCB, F_WRTHRTHRESHEN, fl_pktshift, adapter::flags, M_INDICATESIZE, M_PKTSHIFT, M_RDTHRESHOLD, M_TIMERVALUE0, M_TSCALE, M_WRTHRTHRESH, MASTER_PF, adapter::params, RX_COPY_THRESHOLD, setup_pad_and_pack_boundaries(), SGE_NCOUNTERS, SGE_NTIMERS, spg_len, t4_set_reg_field(), t4_tp_pio_read(), t4_tp_pio_write(), t4_write_reg(), tscale, us_to_core_ticks(), V_EGRSTATUSPAGESIZE, V_HOSTPAGESIZEPF0, V_HOSTPAGESIZEPF1, V_HOSTPAGESIZEPF2, V_HOSTPAGESIZEPF3, V_HOSTPAGESIZEPF4, V_HOSTPAGESIZEPF5, V_HOSTPAGESIZEPF6, V_HOSTPAGESIZEPF7, V_HPZ0, V_HPZ1, V_HPZ2, V_HPZ3, V_INDICATESIZE, V_PKTSHIFT, V_RDTHRESHOLD, V_THRESHOLD_0, V_THRESHOLD_1, V_THRESHOLD_2, V_THRESHOLD_3, V_TIMERVALUE0, V_TIMERVALUE1, V_TIMERVALUE2, V_TIMERVALUE3, V_TIMERVALUE4, V_TIMERVALUE5, V_TSCALE, V_WRTHRTHRESH, and adapter_params::vpd.
Referenced by apply_cfg_and_initialize().
void t4_update_fl_bufsize | ( | struct ifnet * | ifp | ) |
Definition at line 2222 of file t4_sge.c.
References vi_info::adapter, find_refill_source(), fl, sge_rxq::fl, sge_ofld_rxq::fl, FL_BUF_PACKING, FL_LOCK, FL_UNLOCK, sge_fl::flags, for_each_ofld_rxq, for_each_rxq, ifp, max_rx_payload(), rxq, and sge_fl::zidx.
Referenced by cxgbe_ioctl().
int t4_verify_chip_settings | ( | struct adapter * | sc | ) |
Definition at line 920 of file t4_sge.c.
References A_TP_PARA_REG5, A_ULP_RX_CTL, A_ULP_RX_TDDP_PSZ, t4_virt_res::ddp, adapter::dev, F_REARMDDPOFFSET, F_RESETDDPOFFSET, F_RXPKTCPLMODE, F_TDDPTAGTCB, adapter::flags, IS_VF, M_INDICATESIZE, sge_params::page_shift, adapter::params, r, RX_COPY_THRESHOLD, adapter_params::sge, sge_params::sge_control, t4_range::size, t4_read_reg(), V_HPZ0, V_HPZ1, V_HPZ2, V_HPZ3, V_INDICATESIZE, and adapter::vres.
Referenced by get_params__post_init().
Definition at line 2197 of file t4_sge.c.
References sge_eq::dbidx, drain_wrq_wr_list(), eq, sge_wrq::eq, EQ_ESIZE, EQ_LOCK_ASSERT_OWNED, sge_wrq::ndesc_needed, sge_wrq::nwr_pending, sge_eq::pidx, SGE_MAX_WR_LEN, wrqe::wr_len, and wrq.
Referenced by t4_wrq_tx().
int tnl_cong | ( | struct port_info * | pi, |
int | drop | ||
) |
Definition at line 3927 of file t4_sge.c.
References port_info::rx_e_chan_map.
Referenced by alloc_rxq().
|
inlinestatic |
Definition at line 6143 of file t4_sge.c.
References eq, IDXDIFF, pidx, sge_eq::pidx, read_hw_cidx(), and sge_eq::sidx.
Referenced by can_resume_eth_tx().
|
static |
Definition at line 6209 of file t4_sge.c.
References sge_eq::cidx, eq, sge_txq::eq, sge_eq::equeqidx, sge_eq::pidx, reclaim_tx_descs(), TXQ_TRYLOCK, and TXQ_UNLOCK.
Referenced by alloc_txq().
|
inlinestatic |
Definition at line 5124 of file t4_sge.c.
Referenced by calculate_mbuf_len16().
|
inlinestatic |
Definition at line 5143 of file t4_sge.c.
Referenced by calculate_mbuf_len16().
|
inlinestatic |
Definition at line 5185 of file t4_sge.c.
Referenced by add_to_txpkts_pf(), and write_txpkts_wr().
|
inlinestatic |
Definition at line 5204 of file t4_sge.c.
Referenced by add_to_txpkts_pf(), and add_to_txpkts_vf().
|
inlinestatic |
Definition at line 3096 of file t4_sge.c.
References FW_ETH_TX_PKT_VM_WR, FW_ETH_TX_PKT_WR, FW_ETH_TX_PKTS2_WR, FW_ETH_TX_PKTS_VM_WR, FW_ETH_TX_PKTS_WR, FW_ULPTX_WR, G_FW_WR_OP, and fw_eth_tx_pkts_wr::op_pkd.
Referenced by eth_tx().
|
static |
Definition at line 5985 of file t4_sge.c.
References ulptx_sge_pair::addr, ulptx_sgl::addr0, ulptx_sgl::cmd_nsge, sge_eq::desc, eq, sge_txq::eq, get_flit(), get_pkt_gl(), gl, sge_txq::gl, ulptx_sge_pair::len, ulptx_sgl::len0, ulptx_sgl::sge, sge_eq::sidx, ULP_TX_SC_DSGL, V_ULPTX_CMD, and V_ULPTX_NSGE.
Referenced by write_txpkt_vm_wr(), write_txpkt_wr(), write_txpkts_vm_wr(), and write_txpkts_wr().
|
inlinestatic |
Definition at line 5298 of file t4_sge.c.
References CPL_TX_PKT_LSO, F_LSO_FIRST_SLICE, F_LSO_IPV6, F_LSO_LAST_SLICE, cpl_tx_pkt_lso_core::ipid_ofst, cpl_tx_pkt_lso_core::len, cpl_tx_pkt_lso_core::lso_ctrl, cpl_tx_pkt_lso_core::mss, cpl_tx_pkt_lso_core::seqno_offset, V_LSO_ETHHDR_LEN, V_LSO_IPHDR_LEN, V_LSO_OPCODE, and V_LSO_TCPHDR_LEN.
Referenced by write_txpkt_vm_wr(), and write_txpkt_wr().
|
static |
Definition at line 5492 of file t4_sge.c.
References copy_to_txd(), tx_sdesc::desc_used, eq, sge_txq::eq, tx_sdesc::m, mbuf_len16(), sge_eq::pidx, sge_txq::raw_wrs, sge_txq::sdesc, and tx_len16_to_desc().
Referenced by eth_tx().
|
static |
Definition at line 5327 of file t4_sge.c.
References CPL_TX_TNL_LSO, cpl_tx_tnl_lso::EthLenOffset_Size, F_CPL_TX_TNL_LSO_FIRST, F_CPL_TX_TNL_LSO_IPHDRCHKOUT, F_CPL_TX_TNL_LSO_IPIDINCOUT, F_CPL_TX_TNL_LSO_IPLENSETOUT, F_CPL_TX_TNL_LSO_IPV6, F_CPL_TX_TNL_LSO_IPV6OUT, F_CPL_TX_TNL_LSO_LAST, F_CPL_TX_TNL_LSO_UDPCHKCLROUT, F_CPL_TX_TNL_LSO_UDPLENSETOUT, cpl_tx_tnl_lso::Flow_to_TcpHdrLen, cpl_tx_tnl_lso::IpIdOffset, cpl_tx_tnl_lso::IpIdOffsetOut, cpl_tx_tnl_lso::IpIdSplit_to_Mss, cpl_tx_tnl_lso::op_to_IpIdSplitOut, cpl_tx_tnl_lso::r1, cpl_tx_tnl_lso::TCPSeqOffset, TX_TNL_TYPE_VXLAN, cpl_tx_tnl_lso::UdpLenSetOut_to_TnlHdrLen, V_CPL_TX_TNL_LSO_ETHHDRLEN, V_CPL_TX_TNL_LSO_ETHHDRLENOUT, V_CPL_TX_TNL_LSO_IPHDRLEN, V_CPL_TX_TNL_LSO_IPHDRLENOUT, V_CPL_TX_TNL_LSO_MSS, V_CPL_TX_TNL_LSO_OPCODE, V_CPL_TX_TNL_LSO_SIZE, V_CPL_TX_TNL_LSO_TCPHDRLEN, V_CPL_TX_TNL_LSO_TNLHDRLEN, and V_CPL_TX_TNL_LSO_TNLTYPE.
Referenced by write_txpkt_wr().
|
static |
Definition at line 5394 of file t4_sge.c.
References sge_txq::cpl_ctrl0, csum_to_ctrl(), cpl_tx_pkt_core::ctrl0, cpl_tx_pkt_core::ctrl1, sge_eq::desc, tx_sdesc::desc_used, eq, sge_txq::eq, fw_eth_tx_pkt_vm_wr::equiq_to_len16, fw_eth_tx_pkt_vm_wr::ethmacdst, F_TXPKT_IPCSUM_DIS, F_TXPKT_L4CSUM_DIS, F_TXPKT_VLAN_VLD, FW_ETH_TX_PKT_VM_WR, cpl_tx_pkt_core::len, tx_sdesc::m, mbuf_len16(), needs_tso(), needs_vlan_insertion(), fw_eth_tx_pkt_vm_wr::op_immdlen, cpl_tx_pkt_core::pack, pidx, sge_eq::pidx, fw_eth_tx_pkt_vm_wr::r3, sge_txq::sdesc, sge_txq::sgl_wrs, sge_eq::sidx, sge_txq::tso_wrs, tx_len16_to_desc(), sge_txq::txcsum, sge_txq::txpkt_wrs, TXQ_LOCK_ASSERT_OWNED, V_FW_ETH_TX_PKT_WR_IMMDLEN, V_FW_WR_LEN16, V_FW_WR_OP, V_TXPKT_VLAN, sge_txq::vlan_insertion, VM_TX_L2HDR_LEN, write_gl_to_txd(), and write_lso_cpl().
Referenced by eth_tx().
|
static |
Definition at line 5525 of file t4_sge.c.
References copy_to_txd(), sge_txq::cpl_ctrl0, csum_to_ctrl(), cpl_tx_pkt_core::ctrl0, cpl_tx_pkt_core::ctrl1, sge_eq::desc, tx_sdesc::desc_used, eq, sge_txq::eq, fw_eth_tx_pkt_wr::equiq_to_len16, F_TXPKT_IPCSUM_DIS, F_TXPKT_L4CSUM_DIS, F_TXPKT_VLAN_VLD, FW_ETH_TX_PKT_WR, imm_payload(), sge_txq::imm_wrs, cpl_tx_pkt_core::len, tx_sdesc::m, mbuf_cflags(), mbuf_len16(), mbuf_nsegs(), MC_NOMAP, needs_tso(), needs_vlan_insertion(), needs_vxlan_csum(), needs_vxlan_tso(), fw_eth_tx_pkt_wr::op_immdlen, cpl_tx_pkt_core::pack, pidx, sge_eq::pidx, fw_eth_tx_pkt_wr::r3, sge_txq::sdesc, sge_txq::sgl_wrs, sge_eq::sidx, sge_txq::tso_wrs, tx_len16_to_desc(), sge_txq::txcsum, sge_txq::txpkt_wrs, TXQ_LOCK_ASSERT_OWNED, V_FW_ETH_TX_PKT_WR_IMMDLEN, V_FW_WR_LEN16, V_FW_WR_OP, V_TXPKT_VLAN, sge_txq::vlan_insertion, sge_txq::vxlan_tso_wrs, sge_txq::vxlan_txcsum, write_gl_to_txd(), write_lso_cpl(), and write_tnl_lso_cpl().
Referenced by eth_tx().
Definition at line 5901 of file t4_sge.c.
References sge_txq::cpl_ctrl0, csum_to_ctrl(), cpl_tx_pkt_core::ctrl0, cpl_tx_pkt_core::ctrl1, sge_eq::desc, tx_sdesc::desc_used, eq, sge_txq::eq, fw_eth_tx_pkts_vm_wr::equiq_to_len16, txpkts::ethmacdst, fw_eth_tx_pkts_vm_wr::ethmacdst, F_TXPKT_IPCSUM_DIS, F_TXPKT_L4CSUM_DIS, F_TXPKT_VLAN_VLD, FW_ETH_TX_PKTS_VM_WR, cpl_tx_pkt_core::len, txpkts::len16, tx_sdesc::m, txpkts::mb, mbuf_nsegs(), needs_vlan_insertion(), txpkts::npkt, fw_eth_tx_pkts_vm_wr::npkt, fw_eth_tx_pkts_vm_wr::op_pkd, cpl_tx_pkt_core::pack, sge_eq::pidx, txpkts::plen, fw_eth_tx_pkts_vm_wr::plen, fw_eth_tx_pkts_vm_wr::r3, fw_eth_tx_pkts_vm_wr::r4, sge_txq::sdesc, SGE_MAX_WR_LEN, sge_txq::sgl_wrs, sge_eq::sidx, tx_len16_to_desc(), sge_txq::txcsum, txp, sge_txq::txp, sge_txq::txpkts1_pkts, sge_txq::txpkts1_wrs, TXQ_LOCK_ASSERT_OWNED, V_FW_WR_LEN16, V_FW_WR_OP, V_TXPKT_VLAN, sge_txq::vlan_insertion, txpkts::wr_type, and write_gl_to_txd().
Referenced by eth_tx().
Definition at line 5790 of file t4_sge.c.
References ulp_txpkt::cmd_dest, ulptx_idata::cmd_more, sge_txq::cpl_ctrl0, csum_to_ctrl(), cpl_tx_pkt_core::ctrl0, cpl_tx_pkt_core::ctrl1, sge_eq::desc, tx_sdesc::desc_used, eq, sge_txq::eq, fw_eth_tx_pkts_wr::equiq_to_len16, F_TXPKT_IPCSUM_DIS, F_TXPKT_L4CSUM_DIS, F_TXPKT_VLAN_VLD, F_ULP_TX_SC_MORE, FW_ETH_TX_PKTS_WR, sge_eq::iqid, cpl_tx_pkt_core::len, ulptx_idata::len, ulp_txpkt::len, txpkts::len16, tx_sdesc::m, txpkts::mb, mbuf_nsegs(), needs_vlan_insertion(), needs_vxlan_csum(), txpkts::npkt, fw_eth_tx_pkts_wr::npkt, fw_eth_tx_pkts_wr::op_pkd, cpl_tx_pkt_core::pack, sge_eq::pidx, txpkts::plen, fw_eth_tx_pkts_wr::plen, fw_eth_tx_pkts_wr::r3, sge_txq::sdesc, SGE_MAX_WR_LEN, sge_txq::sgl_wrs, sge_eq::sidx, tx_len16_to_desc(), sge_txq::txcsum, txp, sge_txq::txp, txpkts0_len16(), sge_txq::txpkts0_pkts, sge_txq::txpkts0_wrs, sge_txq::txpkts1_pkts, sge_txq::txpkts1_wrs, TXQ_LOCK_ASSERT_OWNED, fw_eth_tx_pkts_wr::type, ULP_TX_PKT, ULP_TX_SC_IMM, V_FW_WR_LEN16, V_FW_WR_OP, V_TXPKT_VLAN, V_ULP_TXPKT_DEST, V_ULP_TXPKT_FID, V_ULPTX_CMD, sge_txq::vlan_insertion, sge_txq::vxlan_txcsum, txpkts::wr_type, and write_gl_to_txd().
Referenced by eth_tx().
|
static |
Definition at line 2108 of file t4_sge.c.
References sge_wrq::adapter, drain_wrq_wr_list(), eq, sge_wrq::eq, EQ_LOCK, EQ_UNLOCK, and wrq.
Referenced by alloc_wrq().
cpl_handler_t abort_rpl_rss_handlers[NUM_CPL_COOKIES] |
Definition at line 353 of file t4_sge.c.
Referenced by abort_rpl_rss_handler(), and t4_register_shared_cpl_handler().
cpl_handler_t act_open_rpl_handlers[NUM_CPL_COOKIES] |
Definition at line 352 of file t4_sge.c.
Referenced by act_open_rpl_handler(), and t4_register_shared_cpl_handler().
|
static |
Definition at line 138 of file t4_sge.c.
Referenced by init_fl(), and setup_pad_and_pack_boundaries().
|
static |
Definition at line 128 of file t4_sge.c.
Referenced by alloc_rxq(), t4_sge_modload(), and t4_sge_sysctls().
|
static |
Definition at line 212 of file t4_sge.c.
Referenced by parse_pkt(), t4_sge_modload(), and t4_sge_modunload().
|
static |
Definition at line 344 of file t4_sge.c.
Referenced by get_scatter_segment(), t4_sge_extfree_refs(), t4_sge_modload(), and t4_sge_modunload().
|
static |
Definition at line 345 of file t4_sge.c.
Referenced by free_fl_buffers(), refill_fl(), rxb_free(), t4_sge_extfree_refs(), t4_sge_modload(), and t4_sge_modunload().
|
static |
Definition at line 148 of file t4_sge.c.
Referenced by setup_pad_and_pack_boundaries().
int fl_pad = -1 |
Definition at line 109 of file t4_sge.c.
Referenced by add_fl_sysctls(), alloc_iq_fl_hwq(), hwsz_ok(), init_fl(), and setup_pad_and_pack_boundaries().
|
static |
Definition at line 99 of file t4_sge.c.
Referenced by t4_sge_modload(), and t4_tweak_chip_settings().
cpl_handler_t fw4_ack_handlers[NUM_CPL_COOKIES] |
Definition at line 354 of file t4_sge.c.
Referenced by fw4_ack_handler(), and t4_register_shared_cpl_handler().
cpl_handler_t l2t_write_rpl_handlers[NUM_CPL_COOKIES] |
Definition at line 351 of file t4_sge.c.
Referenced by l2t_write_rpl_handler(), and t4_register_shared_cpl_handler().
|
static |
Definition at line 155 of file t4_sge.c.
Referenced by bufidx_used(), find_refill_source(), and t4_sge_modload().
|
static |
Definition at line 197 of file t4_sge.c.
Referenced by alloc_rxq().
|
static |
Definition at line 204 of file t4_sge.c.
Referenced by alloc_rxq().
|
static |
Definition at line 208 of file t4_sge.c.
Referenced by parse_pkt(), t4_sge_modload(), and t4_sge_modunload().
|
static |
Definition at line 163 of file t4_sge.c.
Referenced by t4_init_rx_buf_info(), and t4_sge_modload().
cpl_handler_t set_tcb_rpl_handlers[NUM_CPL_COOKIES] |
Definition at line 350 of file t4_sge.c.
Referenced by set_tcb_rpl_handler(), and t4_register_shared_cpl_handler().
|
static |
Definition at line 118 of file t4_sge.c.
Referenced by t4_sge_modload(), and t4_tweak_chip_settings().
an_handler_t t4_an_handler |
Definition at line 347 of file t4_sge.c.
Referenced by service_iq(), service_iq_fl(), and t4_register_an_handler().
cpl_handler_t t4_cpl_handler[NUM_CPL_CMDS] |
Definition at line 349 of file t4_sge.c.
Referenced by handle_fw_msg(), service_iq(), service_iq_fl(), t4_register_cpl_handler(), and t4_register_shared_cpl_handler().
fw_msg_handler_t t4_fw_msg_handler[NUM_FW6_TYPES] |
Definition at line 348 of file t4_sge.c.
Referenced by handle_fw_msg(), and t4_register_fw_msg_handler().
|
static |
Definition at line 229 of file t4_sge.c.
Referenced by record_eth_tx_time().
|
static |
|
static |
Definition at line 190 of file t4_sge.c.
Referenced by t4_init_sge_params(), t4_sge_modload(), and t4_tweak_chip_settings().
|
static |
Definition at line 2674 of file t4_sge.c.
Referenced by parse_pkt().
|
static |
Definition at line 2673 of file t4_sge.c.
Referenced by parse_pkt().