FreeBSD kernel BXE device code
bxe_stats.c File Reference
#include <sys/cdefs.h>
#include "bxe.h"
#include "bxe_stats.h"
Include dependency graph for bxe_stats.c:

Go to the source code of this file.

Macros

#define BITS_PER_LONG   64
 

Functions

 __FBSDID ("$FreeBSD$")
 
static long bxe_hilo (uint32_t *hiref)
 
static uint16_t bxe_get_port_stats_dma_len (struct bxe_softc *sc)
 
static void bxe_dp_stats (struct bxe_softc *sc)
 
static void bxe_storm_stats_post (struct bxe_softc *sc)
 
static void bxe_hw_stats_post (struct bxe_softc *sc)
 
static int bxe_stats_comp (struct bxe_softc *sc)
 
static void bxe_stats_pmf_update (struct bxe_softc *sc)
 
static void bxe_port_stats_init (struct bxe_softc *sc)
 
static void bxe_func_stats_init (struct bxe_softc *sc)
 
static void bxe_stats_start (struct bxe_softc *sc)
 
static void bxe_stats_pmf_start (struct bxe_softc *sc)
 
static void bxe_stats_restart (struct bxe_softc *sc)
 
static void bxe_bmac_stats_update (struct bxe_softc *sc)
 
static void bxe_mstat_stats_update (struct bxe_softc *sc)
 
static void bxe_emac_stats_update (struct bxe_softc *sc)
 
static int bxe_hw_stats_update (struct bxe_softc *sc)
 
static int bxe_storm_stats_validate_counters (struct bxe_softc *sc)
 
static int bxe_storm_stats_update (struct bxe_softc *sc)
 
static void bxe_net_stats_update (struct bxe_softc *sc)
 
uint64_t bxe_get_counter (if_t ifp, ift_counter cnt)
 
static void bxe_drv_stats_update (struct bxe_softc *sc)
 
static uint8_t bxe_edebug_stats_stopped (struct bxe_softc *sc)
 
static void bxe_stats_update (struct bxe_softc *sc)
 
static void bxe_port_stats_stop (struct bxe_softc *sc)
 
static void bxe_stats_stop (struct bxe_softc *sc)
 
static void bxe_stats_do_nothing (struct bxe_softc *sc)
 
void bxe_stats_handle (struct bxe_softc *sc, enum bxe_stats_event event)
 
static void bxe_port_stats_base_init (struct bxe_softc *sc)
 
static void bxe_prep_fw_stats_req (struct bxe_softc *sc)
 
void bxe_stats_init (struct bxe_softc *sc)
 
void bxe_save_statistics (struct bxe_softc *sc)
 
void bxe_afex_collect_stats (struct bxe_softc *sc, void *void_afex_stats, uint32_t stats_type)
 

Variables

struct {
   void(*   action )(struct bxe_softc *sc)
 
   enum bxe_stats_state   next_state
 
bxe_stats_stm [STATS_STATE_MAX][STATS_EVENT_MAX]
 

Macro Definition Documentation

◆ BITS_PER_LONG

#define BITS_PER_LONG   64

Definition at line 38 of file bxe_stats.c.

Function Documentation

◆ __FBSDID()

__FBSDID ( "$FreeBSD$"  )

◆ bxe_afex_collect_stats()

void bxe_afex_collect_stats ( struct bxe_softc sc,
void *  void_afex_stats,
uint32_t  stats_type 
)

Definition at line 1727 of file bxe_stats.c.

References ADD_64, bxe_eth_stats::brb_truncate_discard, bxe_fastpath::eth_q_stats, bxe_softc::eth_stats, bxe_eth_q_stats::etherstatsoverrsizepkts_hi, bxe_eth_q_stats::etherstatsoverrsizepkts_lo, bxe_softc::fp, bxe_eth_stats::mac_discard, bxe_eth_stats::mac_filter_discard, bxe_eth_q_stats::no_buff_discard_hi, bxe_eth_q_stats::no_buff_discard_lo, bxe_softc::num_queues, bxe_port::pmf, bxe_softc::port, afex_stats::rx_broadcast_bytes_hi, afex_stats::rx_broadcast_bytes_lo, afex_stats::rx_broadcast_frames_hi, afex_stats::rx_broadcast_frames_lo, afex_stats::rx_frames_discarded_hi, afex_stats::rx_frames_discarded_lo, afex_stats::rx_frames_dropped_hi, afex_stats::rx_frames_dropped_lo, afex_stats::rx_multicast_bytes_hi, afex_stats::rx_multicast_bytes_lo, afex_stats::rx_multicast_frames_hi, afex_stats::rx_multicast_frames_lo, afex_stats::rx_unicast_bytes_hi, afex_stats::rx_unicast_bytes_lo, afex_stats::rx_unicast_frames_hi, afex_stats::rx_unicast_frames_lo, bxe_eth_q_stats::total_broadcast_bytes_received_hi, bxe_eth_q_stats::total_broadcast_bytes_received_lo, bxe_eth_q_stats::total_broadcast_bytes_transmitted_hi, bxe_eth_q_stats::total_broadcast_bytes_transmitted_lo, bxe_eth_q_stats::total_broadcast_packets_received_hi, bxe_eth_q_stats::total_broadcast_packets_received_lo, bxe_eth_q_stats::total_broadcast_packets_transmitted_hi, bxe_eth_q_stats::total_broadcast_packets_transmitted_lo, bxe_eth_q_stats::total_multicast_bytes_received_hi, bxe_eth_q_stats::total_multicast_bytes_received_lo, bxe_eth_q_stats::total_multicast_bytes_transmitted_hi, bxe_eth_q_stats::total_multicast_bytes_transmitted_lo, bxe_eth_q_stats::total_multicast_packets_received_hi, bxe_eth_q_stats::total_multicast_packets_received_lo, bxe_eth_q_stats::total_multicast_packets_transmitted_hi, bxe_eth_q_stats::total_multicast_packets_transmitted_lo, bxe_eth_q_stats::total_packets_received_checksum_discarded_hi, bxe_eth_q_stats::total_packets_received_checksum_discarded_lo, bxe_eth_q_stats::total_packets_received_ttl0_discarded_hi, bxe_eth_q_stats::total_packets_received_ttl0_discarded_lo, bxe_eth_q_stats::total_transmitted_dropped_packets_error_hi, bxe_eth_q_stats::total_transmitted_dropped_packets_error_lo, bxe_eth_q_stats::total_unicast_bytes_received_hi, bxe_eth_q_stats::total_unicast_bytes_received_lo, bxe_eth_q_stats::total_unicast_bytes_transmitted_hi, bxe_eth_q_stats::total_unicast_bytes_transmitted_lo, bxe_eth_q_stats::total_unicast_packets_received_hi, bxe_eth_q_stats::total_unicast_packets_received_lo, bxe_eth_q_stats::total_unicast_packets_transmitted_hi, bxe_eth_q_stats::total_unicast_packets_transmitted_lo, afex_stats::tx_broadcast_bytes_hi, afex_stats::tx_broadcast_bytes_lo, afex_stats::tx_broadcast_frames_hi, afex_stats::tx_broadcast_frames_lo, afex_stats::tx_frames_dropped_hi, afex_stats::tx_frames_dropped_lo, afex_stats::tx_multicast_bytes_hi, afex_stats::tx_multicast_bytes_lo, afex_stats::tx_multicast_frames_hi, afex_stats::tx_multicast_frames_lo, afex_stats::tx_unicast_bytes_hi, afex_stats::tx_unicast_bytes_lo, afex_stats::tx_unicast_frames_hi, afex_stats::tx_unicast_frames_lo, and VICSTATST_UIF_INDEX.

◆ bxe_bmac_stats_update()

◆ bxe_dp_stats()

◆ bxe_drv_stats_update()

static void bxe_drv_stats_update ( struct bxe_softc sc)
static

Definition at line 1226 of file bxe_stats.c.

References bxe_fastpath::eth_q_stats, bxe_fastpath::eth_q_stats_old, bxe_softc::eth_stats, bxe_softc::fp, bxe_softc::num_queues, and UPDATE_ESTAT_QSTAT.

Referenced by bxe_stats_update().

Here is the caller graph for this function:

◆ bxe_edebug_stats_stopped()

static uint8_t bxe_edebug_stats_stopped ( struct bxe_softc sc)
static

Definition at line 1285 of file bxe_stats.c.

References EDEBUG_DRIVER_IF_OP_CODE_DISABLE_STAT, SHMEM2_HAS, and SHMEM2_RD.

Referenced by bxe_stats_update().

Here is the caller graph for this function:

◆ bxe_emac_stats_update()

◆ bxe_func_stats_init()

◆ bxe_get_counter()

◆ bxe_get_port_stats_dma_len()

◆ bxe_hilo()

static long bxe_hilo ( uint32_t *  hiref)
inlinestatic

Definition at line 43 of file bxe_stats.c.

References HILO_U64.

Referenced by bxe_get_counter().

Here is the caller graph for this function:

◆ bxe_hw_stats_post()

◆ bxe_hw_stats_update()

◆ bxe_mstat_stats_update()

◆ bxe_net_stats_update()

static void bxe_net_stats_update ( struct bxe_softc sc)
static

Definition at line 1173 of file bxe_stats.c.

References tstorm_per_queue_stats::checksum_discard, bxe_softc::fp, bxe_softc::ifp, bxe_softc::num_queues, and bxe_fastpath::old_tclient.

Referenced by bxe_stats_stop(), and bxe_stats_update().

Here is the caller graph for this function:

◆ bxe_port_stats_base_init()

◆ bxe_port_stats_init()

static void bxe_port_stats_init ( struct bxe_softc sc)
static

Definition at line 318 of file bxe_stats.c.

References BIGMAC2_REGISTER_RX_STAT_GR64, BIGMAC2_REGISTER_RX_STAT_GRIPJ, BIGMAC2_REGISTER_TX_STAT_GTBYT, BIGMAC2_REGISTER_TX_STAT_GTPOK, BIGMAC_REGISTER_RX_STAT_GR64, BIGMAC_REGISTER_RX_STAT_GRIPJ, BIGMAC_REGISTER_TX_STAT_GTBYT, BIGMAC_REGISTER_TX_STAT_GTPKT, BLOGE, bxe_dmae_opcode(), bxe_get_port_stats_dma_len(), BXE_SP, BXE_SP_MAPPING, CHIP_IS_E1x, CHIP_IS_E3, dmae_cmd::comp_addr_hi, dmae_cmd::comp_addr_lo, dmae_cmd::comp_val, DMAE_COMP_GRC, DMAE_COMP_PCI, DMAE_COMP_VAL, DMAE_DST_GRC, DMAE_DST_PCI, dmae_reg_go_c, DMAE_SRC_GRC, DMAE_SRC_PCI, dmae_cmd::dst_addr_hi, dmae_cmd::dst_addr_lo, ELINK_MAC_TYPE_BMAC, ELINK_MAC_TYPE_EMAC, ELINK_MAC_TYPE_UMAC, ELINK_MAC_TYPE_XMAC, EMAC_REG_EMAC_RX_STAT_AC, EMAC_REG_EMAC_RX_STAT_AC_28, EMAC_REG_EMAC_RX_STAT_AC_COUNT, EMAC_REG_EMAC_TX_STAT_AC, EMAC_REG_EMAC_TX_STAT_AC_COUNT, bxe_softc::executer_idx, bxe_softc::func_stx, GRCBASE_EMAC0, GRCBASE_EMAC1, GRCBASE_MSTAT0, GRCBASE_MSTAT1, elink_vars::link_up, bxe_softc::link_vars, bxe_slowpath::mac_stats, elink_vars::mac_type, MSTAT_REG_RX_STAT_GR64_LO, MSTAT_REG_TX_STAT_GTXPOK_LO, mac_stats::mstat_stats, NIG_REG_INGRESS_BMAC0_MEM, NIG_REG_INGRESS_BMAC1_MEM, NIG_REG_STAT0_BRB_DISCARD, NIG_REG_STAT0_EGRESS_MAC_PKT0, NIG_REG_STAT0_EGRESS_MAC_PKT1, NIG_REG_STAT1_BRB_DISCARD, NIG_REG_STAT1_EGRESS_MAC_PKT0, NIG_REG_STAT1_EGRESS_MAC_PKT1, dmae_cmd::opcode, bxe_port::pmf, PMF_DMAE_C, bxe_softc::port, bxe_port::port_stx, SC_PORT, bxe_softc::sp, dmae_cmd::src_addr_hi, dmae_cmd::src_addr_lo, mstat_stats::stats_rx, mstat_stats::stats_tx, U64_HI, and U64_LO.

Referenced by bxe_stats_start().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_port_stats_stop()

◆ bxe_prep_fw_stats_req()

◆ bxe_save_statistics()

void bxe_save_statistics ( struct bxe_softc sc)

◆ bxe_stats_comp()

static int bxe_stats_comp ( struct bxe_softc sc)
static

◆ bxe_stats_do_nothing()

static void bxe_stats_do_nothing ( struct bxe_softc sc)
static

Definition at line 1430 of file bxe_stats.c.

◆ bxe_stats_handle()

◆ bxe_stats_init()

◆ bxe_stats_pmf_start()

static void bxe_stats_pmf_start ( struct bxe_softc sc)
static

Definition at line 598 of file bxe_stats.c.

References bxe_stats_comp(), bxe_stats_pmf_update(), and bxe_stats_start().

Here is the call graph for this function:

◆ bxe_stats_pmf_update()

◆ bxe_stats_restart()

static void bxe_stats_restart ( struct bxe_softc sc)
static

Definition at line 606 of file bxe_stats.c.

References bxe_stats_comp(), bxe_stats_start(), and IS_VF.

Here is the call graph for this function:

◆ bxe_stats_start()

static void bxe_stats_start ( struct bxe_softc sc)
static

Definition at line 575 of file bxe_stats.c.

References bxe_func_stats_init(), bxe_hw_stats_post(), bxe_port_stats_init(), bxe_storm_stats_post(), bxe_softc::func_stx, IS_VF, bxe_port::pmf, and bxe_softc::port.

Referenced by bxe_stats_pmf_start(), and bxe_stats_restart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_stats_stop()

static void bxe_stats_stop ( struct bxe_softc sc)
static

◆ bxe_stats_update()

◆ bxe_storm_stats_post()

static void bxe_storm_stats_post ( struct bxe_softc sc)
static

◆ bxe_storm_stats_update()

static int bxe_storm_stats_update ( struct bxe_softc sc)
static

Definition at line 987 of file bxe_stats.c.

References ADD_64, ADD_64_LE, xstorm_per_queue_stats::bcast_bytes_sent, xstorm_per_queue_stats::bcast_pkts_sent, BLOGD, bxe_fw_port_stats_old::brb_truncate_discard, bxe_storm_stats_validate_counters(), ustorm_per_queue_stats::coalesced_bytes, DBG_STATS, bxe_eth_stats::error_bytes_received_hi, bxe_eth_stats::error_bytes_received_lo, bxe_fastpath::eth_q_stats, bxe_fastpath::eth_q_stats_old, bxe_softc::eth_stats, bxe_softc::eth_stats_old, bxe_softc::fp, bxe_softc::func_stats, bxe_softc::fw_stats_data, bxe_softc::fw_stats_old, regpair_t::hi, host_func_stats::host_func_stats_end, host_func_stats::host_func_stats_start, IS_PF, regpair_t::lo, bxe_fw_port_stats_old::mac_discard, bxe_fw_port_stats_old::mac_filter_discard, xstorm_per_queue_stats::mcast_bytes_sent, xstorm_per_queue_stats::mcast_pkts_sent, bxe_fw_port_stats_old::mf_tag_discard, bxe_softc::num_queues, bxe_fastpath::old_tclient, bxe_fastpath::old_uclient, bxe_fastpath::old_xclient, bxe_fw_stats_data::pf, bxe_port::pmf, bxe_fw_stats_data::port, bxe_softc::port, bxe_fw_stats_data::queue_stats, tstorm_per_queue_stats::rcv_bcast_bytes, tstorm_per_pf_stats::rcv_error_bytes, tstorm_per_queue_stats::rcv_mcast_bytes, tstorm_per_queue_stats::rcv_ucast_bytes, bxe_eth_stats::rx_stat_ifhcinbadoctets_hi, bxe_eth_stats::rx_stat_ifhcinbadoctets_lo, bxe_fastpath::sc, bxe_softc::stats_pending, SUB_EXTEND_USTAT, bxe_eth_q_stats::total_broadcast_bytes_received_hi, bxe_eth_q_stats::total_broadcast_bytes_received_lo, bxe_eth_q_stats::total_broadcast_bytes_transmitted_hi, bxe_eth_q_stats::total_broadcast_bytes_transmitted_lo, bxe_eth_stats::total_bytes_received_hi, bxe_eth_q_stats::total_bytes_received_hi, bxe_eth_stats::total_bytes_received_lo, bxe_eth_q_stats::total_bytes_received_lo, bxe_eth_q_stats::total_bytes_transmitted_hi, bxe_eth_q_stats::total_bytes_transmitted_lo, bxe_eth_q_stats::total_multicast_bytes_received_hi, bxe_eth_q_stats::total_multicast_bytes_received_lo, bxe_eth_q_stats::total_multicast_bytes_transmitted_hi, bxe_eth_q_stats::total_multicast_bytes_transmitted_lo, bxe_eth_q_stats::total_unicast_bytes_received_hi, bxe_eth_q_stats::total_unicast_bytes_received_lo, bxe_eth_q_stats::total_unicast_bytes_transmitted_hi, bxe_eth_q_stats::total_unicast_bytes_transmitted_lo, per_pf_stats::tstorm_pf_statistics, per_port_stats::tstorm_port_statistics, per_queue_stats::tstorm_queue_statistics, xstorm_per_queue_stats::ucast_bytes_sent, xstorm_per_queue_stats::ucast_pkts_sent, UPDATE_ESTAT, UPDATE_ESTAT_QSTAT_64, UPDATE_EXTEND_E_TSTAT, UPDATE_EXTEND_E_USTAT, UPDATE_EXTEND_TSTAT, UPDATE_EXTEND_XSTAT, UPDATE_FSTAT_QSTAT, UPDATE_FW_STAT, UPDATE_QSTAT, per_queue_stats::ustorm_queue_statistics, bxe_eth_q_stats::valid_bytes_received_hi, bxe_eth_q_stats::valid_bytes_received_lo, and per_queue_stats::xstorm_queue_statistics.

Referenced by bxe_stats_stop(), and bxe_stats_update().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bxe_storm_stats_validate_counters()

static int bxe_storm_stats_validate_counters ( struct bxe_softc sc)
static

Variable Documentation

◆ action

◆ 

const struct { ... } bxe_stats_stm[STATS_STATE_MAX][STATS_EVENT_MAX]
Initial value:
= {
{
},
{
}
}
static void bxe_stats_start(struct bxe_softc *sc)
Definition: bxe_stats.c:575
static void bxe_stats_update(struct bxe_softc *sc)
Definition: bxe_stats.c:1301
static void bxe_stats_pmf_start(struct bxe_softc *sc)
Definition: bxe_stats.c:598
static void bxe_stats_do_nothing(struct bxe_softc *sc)
Definition: bxe_stats.c:1430
static void bxe_stats_stop(struct bxe_softc *sc)
Definition: bxe_stats.c:1405
static void bxe_stats_restart(struct bxe_softc *sc)
Definition: bxe_stats.c:606
static void bxe_stats_pmf_update(struct bxe_softc *sc)
Definition: bxe_stats.c:259
@ STATS_STATE_DISABLED
Definition: bxe_stats.h:68
@ STATS_STATE_ENABLED
Definition: bxe_stats.h:69

Referenced by bxe_stats_handle().

◆ next_state