| /linux/drivers/net/ethernet/intel/ice/ |
| H A D | ice_base.c | 106 struct ice_q_vector *q_vector; in ice_vsi_alloc_q_vector() local 110 q_vector = kzalloc_obj(*q_vector); in ice_vsi_alloc_q_vector() 111 if (!q_vector) in ice_vsi_alloc_q_vector() 114 q_vector->vsi = vsi; in ice_vsi_alloc_q_vector() 115 q_vector->v_idx = v_idx; in ice_vsi_alloc_q_vector() 116 q_vector->tx.itr_setting = ICE_DFLT_TX_ITR; in ice_vsi_alloc_q_vector() 117 q_vector->rx.itr_setting = ICE_DFLT_RX_ITR; in ice_vsi_alloc_q_vector() 118 q_vector->tx.itr_mode = ITR_DYNAMIC; in ice_vsi_alloc_q_vector() 119 q_vector->rx.itr_mode = ITR_DYNAMIC; in ice_vsi_alloc_q_vector() 120 q_vector->tx.type = ICE_TX_CONTAINER; in ice_vsi_alloc_q_vector() [all …]
|
| H A D | ice_xsk.c | 29 ice_qvec_toggle_napi(struct ice_vsi *vsi, struct ice_q_vector *q_vector, in ice_qvec_toggle_napi() argument 32 if (!vsi->netdev || !q_vector) in ice_qvec_toggle_napi() 36 napi_enable(&q_vector->napi); in ice_qvec_toggle_napi() 38 napi_disable(&q_vector->napi); in ice_qvec_toggle_napi() 49 struct ice_q_vector *q_vector) in ice_qvec_dis_irq() argument 64 if (q_vector) { in ice_qvec_dis_irq() 65 wr32(hw, GLINT_DYN_CTL(q_vector->reg_idx), 0); in ice_qvec_dis_irq() 67 synchronize_irq(q_vector->irq.virq); in ice_qvec_dis_irq() 78 ice_qvec_cfg_msix(struct ice_vsi *vsi, struct ice_q_vector *q_vector, u16 qid) in ice_qvec_cfg_msix() argument 80 u16 reg_idx = q_vector->reg_idx; in ice_qvec_cfg_msix() [all …]
|
| H A D | ice_lib.c | 486 struct ice_q_vector *q_vector = (struct ice_q_vector *)data; in ice_msix_clean_ctrl_vsi() local 488 if (!q_vector->tx.tx_ring) in ice_msix_clean_ctrl_vsi() 491 ice_clean_ctrl_rx_irq(q_vector->rx.rx_ring); in ice_msix_clean_ctrl_vsi() 492 ice_clean_ctrl_tx_irq(q_vector->tx.tx_ring); in ice_msix_clean_ctrl_vsi() 504 struct ice_q_vector *q_vector = (struct ice_q_vector *)data; in ice_msix_clean_rings() local 506 if (!q_vector->tx.tx_ring && !q_vector->rx.rx_ring) in ice_msix_clean_rings() 509 q_vector->total_events++; in ice_msix_clean_rings() 511 napi_schedule(&q_vector->napi); in ice_msix_clean_rings() 1358 struct ice_q_vector *q_vector = vsi->q_vectors[i]; in ice_vsi_clear_rings() local 1360 if (q_vector) { in ice_vsi_clear_rings() [all …]
|
| H A D | ice_txrx.c | 1086 static void __ice_update_sample(struct ice_q_vector *q_vector, in __ice_update_sample() argument 1119 dim_update_sample(q_vector->total_events, in __ice_update_sample() 1141 static void ice_net_dim(struct ice_q_vector *q_vector) in ice_net_dim() argument 1143 struct ice_ring_container *tx = &q_vector->tx; in ice_net_dim() 1144 struct ice_ring_container *rx = &q_vector->rx; in ice_net_dim() 1149 __ice_update_sample(q_vector, tx, &dim_sample, true); in ice_net_dim() 1156 __ice_update_sample(q_vector, rx, &dim_sample, false); in ice_net_dim() 1190 static void ice_enable_interrupt(struct ice_q_vector *q_vector) in ice_enable_interrupt() argument 1192 struct ice_vsi *vsi = q_vector->vsi; in ice_enable_interrupt() 1193 bool wb_en = q_vector->wb_on_itr; in ice_enable_interrupt() [all …]
|
| /linux/drivers/net/ethernet/intel/fm10k/ |
| H A D | fm10k_debugfs.c | 116 struct fm10k_q_vector *q_vector = ring->q_vector; in fm10k_dbg_desc_open() local 120 if (ring < q_vector->rx.ring) in fm10k_dbg_desc_open() 150 void fm10k_dbg_q_vector_init(struct fm10k_q_vector *q_vector) in fm10k_dbg_q_vector_init() argument 152 struct fm10k_intfc *interface = q_vector->interface; in fm10k_dbg_q_vector_init() 160 snprintf(name, sizeof(name), "q_vector.%03d", q_vector->v_idx); in fm10k_dbg_q_vector_init() 162 q_vector->dbg_q_vector = debugfs_create_dir(name, interface->dbg_intfc); in fm10k_dbg_q_vector_init() 165 for (i = 0; i < q_vector->tx.count; i++) { in fm10k_dbg_q_vector_init() 166 struct fm10k_ring *ring = &q_vector->tx.ring[i]; in fm10k_dbg_q_vector_init() 171 q_vector->dbg_q_vector, ring, in fm10k_dbg_q_vector_init() 176 for (i = 0; i < q_vector->rx.count; i++) { in fm10k_dbg_q_vector_init() [all …]
|
| H A D | fm10k_main.c | 318 skb = napi_alloc_skb(&rx_ring->q_vector->napi, in fm10k_fetch_rx_buffer() 555 static void fm10k_receive_skb(struct fm10k_q_vector *q_vector, in fm10k_receive_skb() argument 558 napi_gro_receive(&q_vector->napi, skb); in fm10k_receive_skb() 561 static int fm10k_clean_rx_irq(struct fm10k_q_vector *q_vector, in fm10k_clean_rx_irq() argument 611 fm10k_receive_skb(q_vector, skb); in fm10k_clean_rx_irq() 627 q_vector->rx.total_packets += total_packets; in fm10k_clean_rx_irq() 628 q_vector->rx.total_bytes += total_bytes; in fm10k_clean_rx_irq() 1114 struct fm10k_intfc *interface = ring->q_vector->interface; in fm10k_get_tx_pending() 1178 static bool fm10k_clean_tx_irq(struct fm10k_q_vector *q_vector, in fm10k_clean_tx_irq() argument 1181 struct fm10k_intfc *interface = q_vector->interface; in fm10k_clean_tx_irq() [all …]
|
| H A D | fm10k.h | 104 struct fm10k_q_vector *q_vector;/* backpointer to host q_vector */ member 338 struct fm10k_q_vector *q_vector[MAX_Q_VECTORS]; member 545 void fm10k_dbg_q_vector_init(struct fm10k_q_vector *q_vector); 546 void fm10k_dbg_q_vector_exit(struct fm10k_q_vector *q_vector); 552 static inline void fm10k_dbg_q_vector_init(struct fm10k_q_vector *q_vector) {} in fm10k_dbg_q_vector_init() argument 553 static inline void fm10k_dbg_q_vector_exit(struct fm10k_q_vector *q_vector) {} in fm10k_dbg_q_vector_exit() argument
|
| /linux/drivers/net/ethernet/intel/idpf/ |
| H A D | idpf_txrx.c | 558 .xdp = idpf_xdp_enabled(bufq->q_vector->vport), in idpf_rx_hdr_buf_alloc_all() 559 .nid = idpf_q_vector_to_mem(bufq->q_vector), in idpf_rx_hdr_buf_alloc_all() 563 ret = libeth_rx_fq_create(&fq, &bufq->q_vector->napi); in idpf_rx_hdr_buf_alloc_all() 701 .nid = idpf_q_vector_to_mem(rxq->q_vector), in idpf_rx_bufs_init_singleq() 705 ret = libeth_rx_fq_create(&fq, &rxq->q_vector->napi); in idpf_rx_bufs_init_singleq() 760 .xdp = idpf_xdp_enabled(bufq->q_vector->vport), in idpf_rx_bufs_init() 761 .nid = idpf_q_vector_to_mem(bufq->q_vector), in idpf_rx_bufs_init() 768 ret = libeth_rx_fq_create(&fq, &bufq->q_vector->napi); in idpf_rx_bufs_init() 996 for (u32 j = 0; j < bufq->q_vector->num_bufq; j++) { in idpf_init_queue_set() 1001 bufqs = bufq->q_vector->bufq; in idpf_init_queue_set() [all …]
|
| H A D | idpf_txrx.h | 578 struct idpf_q_vector *q_vector; member 714 struct idpf_q_vector *q_vector; member 793 struct idpf_q_vector *q_vector; member 853 struct idpf_q_vector *q_vector; member 980 static inline int idpf_q_vector_to_mem(const struct idpf_q_vector *q_vector) in idpf_q_vector_to_mem() argument 984 if (!q_vector) in idpf_q_vector_to_mem() 987 cpu = cpumask_first(&q_vector->napi.config->affinity_mask); in idpf_q_vector_to_mem() 1051 static inline void idpf_vport_intr_set_wb_on_itr(struct idpf_q_vector *q_vector) in idpf_vport_intr_set_wb_on_itr() argument 1055 if (q_vector->wb_on_itr) in idpf_vport_intr_set_wb_on_itr() 1058 q_vector->wb_on_itr = true; in idpf_vport_intr_set_wb_on_itr() [all …]
|
| /linux/drivers/net/ethernet/intel/iavf/ |
| H A D | iavf_txrx.c | 157 static void iavf_force_wb(struct iavf_vsi *vsi, struct iavf_q_vector *q_vector) in iavf_force_wb() argument 166 IAVF_VFINT_DYN_CTLN1(q_vector->reg_idx), in iavf_force_wb() 209 iavf_force_wb(vsi, tx_ring->q_vector); in iavf_detect_recover_hung() 328 tx_ring->q_vector->tx.total_bytes += total_bytes; in iavf_clean_tx_irq() 329 tx_ring->q_vector->tx.total_packets += total_packets; in iavf_clean_tx_irq() 376 struct iavf_q_vector *q_vector) in iavf_enable_wb_on_itr() argument 378 u16 flags = q_vector->tx.ring[0].flags; in iavf_enable_wb_on_itr() 384 if (q_vector->arm_wb_state) in iavf_enable_wb_on_itr() 391 IAVF_VFINT_DYN_CTLN1(q_vector->reg_idx), val); in iavf_enable_wb_on_itr() 392 q_vector->arm_wb_state = true; in iavf_enable_wb_on_itr() [all …]
|
| H A D | iavf_main.c | 412 struct iavf_q_vector *q_vector = data; in iavf_msix_clean_rings() local 414 if (!q_vector->tx.ring && !q_vector->rx.ring) in iavf_msix_clean_rings() 417 napi_schedule_irqoff(&q_vector->napi); in iavf_msix_clean_rings() 431 struct iavf_q_vector *q_vector = &adapter->q_vectors[v_idx]; in iavf_map_vector_to_rxq() local 435 rx_ring->q_vector = q_vector; in iavf_map_vector_to_rxq() 436 rx_ring->next = q_vector->rx.ring; in iavf_map_vector_to_rxq() 438 q_vector->rx.ring = rx_ring; in iavf_map_vector_to_rxq() 439 q_vector->rx.count++; in iavf_map_vector_to_rxq() 440 q_vector->rx.next_update = jiffies + 1; in iavf_map_vector_to_rxq() 441 q_vector->rx.target_itr = ITR_TO_REG(rx_ring->itr_setting); in iavf_map_vector_to_rxq() [all …]
|
| /linux/drivers/net/ethernet/intel/ixgbe/ |
| H A D | ixgbe_lib.c | 839 struct ixgbe_q_vector *q_vector; in ixgbe_alloc_q_vector() local 857 q_vector = kzalloc_node(struct_size(q_vector, ring, ring_count), in ixgbe_alloc_q_vector() 859 if (!q_vector) in ixgbe_alloc_q_vector() 860 q_vector = kzalloc_flex(*q_vector, ring, ring_count); in ixgbe_alloc_q_vector() 861 if (!q_vector) in ixgbe_alloc_q_vector() 866 cpumask_set_cpu(cpu, &q_vector->affinity_mask); in ixgbe_alloc_q_vector() 867 q_vector->numa_node = node; in ixgbe_alloc_q_vector() 871 q_vector->cpu = -1; in ixgbe_alloc_q_vector() 875 netif_napi_add(adapter->netdev, &q_vector->napi, ixgbe_poll); in ixgbe_alloc_q_vector() 878 adapter->q_vector[v_idx] = q_vector; in ixgbe_alloc_q_vector() [all …]
|
| H A D | ixgbe_txrx_common.h | 24 void ixgbe_rx_skb(struct ixgbe_q_vector *q_vector, 40 int ixgbe_clean_rx_irq_zc(struct ixgbe_q_vector *q_vector, 44 bool ixgbe_clean_xdp_tx_irq(struct ixgbe_q_vector *q_vector, 50 struct ixgbe_q_vector *q_vector, u64 pkts, 53 struct ixgbe_q_vector *q_vector, u64 pkts,
|
| H A D | ixgbe_xsk.c | 223 skb = napi_alloc_skb(&rx_ring->q_vector->napi, totalsize); in ixgbe_construct_skb_zc() 247 int ixgbe_clean_rx_irq_zc(struct ixgbe_q_vector *q_vector, in ixgbe_clean_rx_irq_zc() argument 252 struct ixgbe_adapter *adapter = q_vector->adapter; in ixgbe_clean_rx_irq_zc() 349 ixgbe_rx_skb(q_vector, skb); in ixgbe_clean_rx_irq_zc() 361 ixgbe_update_rx_ring_stats(rx_ring, q_vector, total_rx_packets, in ixgbe_clean_rx_irq_zc() 458 bool ixgbe_clean_xdp_tx_irq(struct ixgbe_q_vector *q_vector, in ixgbe_clean_xdp_tx_irq() argument 499 ixgbe_update_tx_ring_stats(tx_ring, q_vector, total_packets, in ixgbe_clean_xdp_tx_irq() 508 return ixgbe_xmit_zc(tx_ring, q_vector->tx.work_limit); in ixgbe_clean_xdp_tx_irq() 533 if (!napi_if_scheduled_mark_missed(&ring->q_vector->napi)) { in ixgbe_xsk_wakeup() 534 u64 eics = BIT_ULL(ring->q_vector->v_idx); in ixgbe_xsk_wakeup()
|
| H A D | ixgbe_main.c | 1171 struct ixgbe_q_vector *q_vector, u64 pkts, in ixgbe_update_tx_ring_stats() argument 1178 q_vector->tx.total_bytes += bytes; in ixgbe_update_tx_ring_stats() 1179 q_vector->tx.total_packets += pkts; in ixgbe_update_tx_ring_stats() 1190 struct ixgbe_q_vector *q_vector, u64 pkts, in ixgbe_update_rx_ring_stats() argument 1197 q_vector->rx.total_bytes += bytes; in ixgbe_update_rx_ring_stats() 1198 q_vector->rx.total_packets += pkts; in ixgbe_update_rx_ring_stats() 1349 static bool ixgbe_clean_tx_irq(struct ixgbe_q_vector *q_vector, in ixgbe_clean_tx_irq() argument 1352 struct ixgbe_adapter *adapter = q_vector->adapter; in ixgbe_clean_tx_irq() 1356 unsigned int budget = q_vector->tx.work_limit; in ixgbe_clean_tx_irq() 1445 ixgbe_update_tx_ring_stats(tx_ring, q_vector, total_packets, in ixgbe_clean_tx_irq() [all …]
|
| /linux/drivers/net/ethernet/wangxun/libwx/ |
| H A D | wx_lib.c | 244 skb = napi_alloc_skb(&rx_ring->q_vector->napi, WX_RXBUFFER_256); in wx_build_skb() 399 struct wx *wx = rx_ring->q_vector->wx; in wx_is_non_eop() 590 ethertype = ring->q_vector->wx->tpid[idx]; in wx_rx_vlan() 647 wx_ptp_rx_hwtstamp(rx_ring->q_vector->wx, skb); in wx_process_skb_fields() 669 static int wx_clean_rx_irq(struct wx_q_vector *q_vector, in wx_clean_rx_irq() argument 724 napi_gro_receive(&q_vector->napi, skb); in wx_clean_rx_irq() 734 q_vector->rx.total_packets += total_rx_packets; in wx_clean_rx_irq() 735 q_vector->rx.total_bytes += total_rx_bytes; in wx_clean_rx_irq() 751 static bool wx_clean_tx_irq(struct wx_q_vector *q_vector, in wx_clean_tx_irq() argument 754 unsigned int budget = q_vector->wx->tx_work_limit; in wx_clean_tx_irq() [all …]
|
| H A D | wx_vf_common.c | 82 struct wx_q_vector *q_vector = wx->q_vector[vector]; in wx_request_msix_irqs_vf() local 85 if (q_vector->tx.ring && q_vector->rx.ring) in wx_request_msix_irqs_vf() 86 snprintf(q_vector->name, sizeof(q_vector->name) - 1, in wx_request_msix_irqs_vf() 93 q_vector->name, q_vector); in wx_request_msix_irqs_vf() 96 q_vector->name, err); in wx_request_msix_irqs_vf() 114 wx->q_vector[vector]); in wx_request_msix_irqs_vf()
|
| /linux/drivers/net/ethernet/intel/igc/ |
| H A D | igc_main.c | 321 struct igc_hw *hw = &ring->q_vector->adapter->hw; in igc_disable_tx_ring_hw() 545 rx_ring->q_vector->napi.napi_id); in igc_setup_rx_resources() 2007 skb = napi_alloc_skb(&rx_ring->q_vector->napi, in igc_construct_skb() 2193 struct igc_adapter *adapter = rx_ring->q_vector->adapter; in igc_rx_offset() 2587 static void igc_update_rx_stats(struct igc_q_vector *q_vector, in igc_update_rx_stats() argument 2590 struct igc_ring *ring = q_vector->rx.ring; in igc_update_rx_stats() 2597 q_vector->rx.total_packets += packets; in igc_update_rx_stats() 2598 q_vector->rx.total_bytes += bytes; in igc_update_rx_stats() 2601 static int igc_clean_rx_irq(struct igc_q_vector *q_vector, const int budget) in igc_clean_rx_irq() argument 2604 struct igc_adapter *adapter = q_vector->adapter; in igc_clean_rx_irq() [all …]
|
| H A D | igc_xdp.c | 32 napi_disable(&adapter->rx_ring[i]->q_vector->napi); in igc_xdp_set_prog() 47 napi_enable(&adapter->rx_ring[i]->q_vector->napi); in igc_xdp_set_prog() 92 napi = &rx_ring->q_vector->napi; in igc_xdp_enable_pool() 138 napi = &rx_ring->q_vector->napi; in igc_xdp_disable_pool()
|
| /linux/drivers/net/ethernet/intel/ixgbevf/ |
| H A D | ixgbevf_main.c | 113 static void ixgbevf_set_itr(struct ixgbevf_q_vector *q_vector); 268 static bool ixgbevf_clean_tx_irq(struct ixgbevf_q_vector *q_vector, in ixgbevf_clean_tx_irq() argument 271 struct ixgbevf_adapter *adapter = q_vector->adapter; in ixgbevf_clean_tx_irq() 367 q_vector->tx.total_bytes += total_bytes; in ixgbevf_clean_tx_irq() 368 q_vector->tx.total_packets += total_packets; in ixgbevf_clean_tx_irq() 433 static void ixgbevf_rx_skb(struct ixgbevf_q_vector *q_vector, in ixgbevf_rx_skb() argument 436 napi_gro_receive(&q_vector->napi, skb); in ixgbevf_rx_skb() 883 skb = napi_alloc_skb(&rx_ring->q_vector->napi, IXGBEVF_RX_HDR_SIZE); in ixgbevf_construct_skb() 1116 static int ixgbevf_clean_rx_irq(struct ixgbevf_q_vector *q_vector, in ixgbevf_clean_rx_irq() argument 1121 struct ixgbevf_adapter *adapter = q_vector->adapter; in ixgbevf_clean_rx_irq() [all …]
|
| /linux/drivers/net/ethernet/intel/i40e/ |
| H A D | i40e_txrx.c | 904 i40e_force_wb(vsi, tx_ring->q_vector); in i40e_detect_recover_hung() 1058 struct i40e_q_vector *q_vector) in i40e_enable_wb_on_itr() argument 1060 u16 flags = q_vector->tx.ring[0].flags; in i40e_enable_wb_on_itr() 1066 if (q_vector->arm_wb_state) in i40e_enable_wb_on_itr() 1074 I40E_PFINT_DYN_CTLN(q_vector->reg_idx), in i40e_enable_wb_on_itr() 1082 q_vector->arm_wb_state = true; in i40e_enable_wb_on_itr() 1091 void i40e_force_wb(struct i40e_vsi *vsi, struct i40e_q_vector *q_vector) in i40e_force_wb() argument 1101 I40E_PFINT_DYN_CTLN(q_vector->reg_idx), val); in i40e_force_wb() 1113 static inline bool i40e_container_is_rx(struct i40e_q_vector *q_vector, in i40e_container_is_rx() argument 1116 return &q_vector->rx == rc; in i40e_container_is_rx() [all …]
|
| H A D | i40e_txrx_common.h | 54 tx_ring->q_vector->tx.total_bytes += total_bytes; in i40e_update_tx_stats() 55 tx_ring->q_vector->tx.total_packets += total_packets; in i40e_update_tx_stats()
|
| H A D | i40e_main.c | 391 I40E_PFINT_DYN_CTLN(tx_ring->q_vector->v_idx + in i40e_tx_timeout() 3403 if (!ring->q_vector || !ring->netdev || ring->ch) in i40e_config_xps_tx_ring() 3410 cpu = cpumask_local_spread(ring->q_vector->v_idx, -1); in i40e_config_xps_tx_ring() 3594 ring->q_vector->napi.napi_id, in i40e_configure_rx_ring() 3610 ring->q_vector->napi.napi_id, in i40e_configure_rx_ring() 3892 struct i40e_q_vector *q_vector = vsi->q_vectors[i]; in i40e_vsi_configure_msix() local 3894 q_vector->rx.next_update = jiffies + 1; in i40e_vsi_configure_msix() 3895 q_vector->rx.target_itr = in i40e_vsi_configure_msix() 3898 q_vector->rx.target_itr >> 1); in i40e_vsi_configure_msix() 3899 q_vector->rx.current_itr = q_vector->rx.target_itr; in i40e_vsi_configure_msix() [all …]
|
| /linux/drivers/net/ethernet/intel/igb/ |
| H A D | igb_main.c | 758 static void igb_assign_vector(struct igb_q_vector *q_vector, int msix_vector) in igb_assign_vector() argument 760 struct igb_adapter *adapter = q_vector->adapter; in igb_assign_vector() 766 if (q_vector->rx.ring) in igb_assign_vector() 767 rx_queue = q_vector->rx.ring->reg_idx; in igb_assign_vector() 768 if (q_vector->tx.ring) in igb_assign_vector() 769 tx_queue = q_vector->tx.ring->reg_idx; in igb_assign_vector() 785 q_vector->eims_value = msixbm; in igb_assign_vector() 801 q_vector->eims_value = BIT(msix_vector); in igb_assign_vector() 822 q_vector->eims_value = BIT(msix_vector); in igb_assign_vector() 830 adapter->eims_enable_mask |= q_vector->eims_value; in igb_assign_vector() [all …]
|
| H A D | igb_xsk.c | 48 napi_disable(&rx_ring->q_vector->napi); in igb_txrx_ring_disable() 80 napi_enable(&rx_ring->q_vector->napi); in igb_txrx_ring_enable() 276 skb = napi_alloc_skb(&rx_ring->q_vector->napi, totalsize); in igb_construct_skb_zc() 341 int igb_clean_rx_irq_zc(struct igb_q_vector *q_vector, in igb_clean_rx_irq_zc() argument 344 struct igb_adapter *adapter = q_vector->adapter; in igb_clean_rx_irq_zc() 346 struct igb_ring *rx_ring = q_vector->rx.ring; in igb_clean_rx_irq_zc() 383 ts_hdr_len = igb_ptp_rx_pktstamp(rx_ring->q_vector, in igb_clean_rx_irq_zc() 436 napi_gro_receive(&q_vector->napi, skb); in igb_clean_rx_irq_zc() 447 igb_update_rx_stats(q_vector, total_packets, total_bytes); in igb_clean_rx_irq_zc() 527 static u32 igb_sw_irq_prep(struct igb_q_vector *q_vector) in igb_sw_irq_prep() argument [all …]
|