Lines Matching +full:free +full:- +full:running
1 /* SPDX-License-Identifier: (GPL-2.0 OR MIT)
4 * Copyright (C) 2015-2024 Google LLC
10 #include <linux/dma-mapping.h>
48 #define GVE_DATA_SLOT_ADDR_PAGE_MASK (~(PAGE_SIZE - 1))
66 (GVE_ADMINQ_BUFFER_SIZE / sizeof(((struct gve_adminq_queried_flow_rule *)0)->location))
81 /* 2K buffers for DQO-QPL */
86 /* If number of free/recyclable buffers are less than this threshold; driver
87 * allocs and uses a non-qpl page on the receive path of DQO QPL to free
180 * which point every other offset is free to be reused.
184 /* Linked list index to next element in the list, or -1 if none */
188 /* `head` and `tail` are indices into an array, or -1 if empty. */
241 * buf_states, or -1 if empty.
246 * buf_states, or -1 if empty.
258 * buf_states, or -1 if empty.
274 /* Address info of the buffers for header-split */
279 u64 rbytes; /* free-running bytes received */
280 u64 rx_hsplit_bytes; /* free-running header bytes received */
281 u64 rpackets; /* free-running packets received */
282 u32 cnt; /* free-running total number of completed packets */
283 u32 fill_cnt; /* free-running total number of descs and buffs posted */
285 u64 rx_hsplit_pkt; /* free-running packets with headers split */
286 u64 rx_copybreak_pkt; /* free-running count of copybreak packets */
287 u64 rx_copied_pkt; /* free-running total number of copied packets */
288 u64 rx_skb_alloc_fail; /* free-running count of skb alloc fails */
289 u64 rx_buf_alloc_fail; /* free-running count of buffer alloc fails */
290 u64 rx_desc_err_dropped_pkt; /* free-running count of packets dropped by descriptor error */
291 /* free-running count of unsplit packets due to header buffer overflow or hdr_len is 0 */
293 u64 rx_cont_packet_cnt; /* free-running multi-fragment packets received */
294 u64 rx_frag_flip_cnt; /* free-running count of rx segments where page_flip was used */
295 u64 rx_frag_copy_cnt; /* free-running count of rx segments copied */
296 u64 rx_frag_alloc_cnt; /* free-running count of rx page allocations */
351 /* A TX buffer - each queue has one */
368 /* Packet is in free list, available to be allocated.
375 * re-injection completion.
401 /* Linked list index to next element in the list, or -1 if none */
404 /* Linked list index to prev element in the list, or -1 if none.
416 * freed if the corresponding re-injection completion is not received
424 /* Cacheline 0 -- Accessed & dirtied during transmit */
436 * pending_packets, or -1 if empty.
454 /* free running number of packet buf descriptors posted */
456 /* free running number of packet buf descriptors completed */
462 * tx_qpl_buf_next, or -1 if empty.
471 /* Free running count of the number of QPL tx buffers
482 /* Cacheline 1 -- Accessed & dirtied during gve_clean_tx_done */
500 * pending_packets, or -1 if empty.
526 * tx_qpl_buf_next, or -1 if empty.
535 /* Free running count of the number of tx buffers
542 u64 pkt_done; /* free-running - total packets completed */
543 u64 bytes_done; /* free-running - total bytes completed */
544 u64 dropped_pkt; /* free-running - total packets dropped */
547 /* Cacheline 2 -- Read-mostly fields */
589 /* Slow-path fields */
761 /* Admin queue - see gve_adminq.h*/
767 u32 adminq_prod_cnt; /* free-running count of AQ cmds executed */
768 u32 adminq_cmd_fail; /* free-running count of AQ cmds failed */
769 u32 adminq_timeouts; /* free-running count of AQ cmds timeouts */
770 /* free-running count of per AQ cmd executed */
796 u32 stats_report_trigger_cnt; /* count of device-requested stats-reports since last reset */
829 u16 header_buf_size; /* device configured, header-split supported if non-zero */
861 return test_bit(GVE_PRIV_FLAGS_DO_RESET, &priv->service_task_flags); in gve_get_do_reset()
866 set_bit(GVE_PRIV_FLAGS_DO_RESET, &priv->service_task_flags); in gve_set_do_reset()
871 clear_bit(GVE_PRIV_FLAGS_DO_RESET, &priv->service_task_flags); in gve_clear_do_reset()
877 &priv->service_task_flags); in gve_get_reset_in_progress()
882 set_bit(GVE_PRIV_FLAGS_RESET_IN_PROGRESS, &priv->service_task_flags); in gve_set_reset_in_progress()
887 clear_bit(GVE_PRIV_FLAGS_RESET_IN_PROGRESS, &priv->service_task_flags); in gve_clear_reset_in_progress()
893 &priv->service_task_flags); in gve_get_probe_in_progress()
898 set_bit(GVE_PRIV_FLAGS_PROBE_IN_PROGRESS, &priv->service_task_flags); in gve_set_probe_in_progress()
903 clear_bit(GVE_PRIV_FLAGS_PROBE_IN_PROGRESS, &priv->service_task_flags); in gve_clear_probe_in_progress()
909 &priv->service_task_flags); in gve_get_do_report_stats()
914 set_bit(GVE_PRIV_FLAGS_DO_REPORT_STATS, &priv->service_task_flags); in gve_set_do_report_stats()
919 clear_bit(GVE_PRIV_FLAGS_DO_REPORT_STATS, &priv->service_task_flags); in gve_clear_do_report_stats()
924 return test_bit(GVE_PRIV_FLAGS_ADMIN_QUEUE_OK, &priv->state_flags); in gve_get_admin_queue_ok()
929 set_bit(GVE_PRIV_FLAGS_ADMIN_QUEUE_OK, &priv->state_flags); in gve_set_admin_queue_ok()
934 clear_bit(GVE_PRIV_FLAGS_ADMIN_QUEUE_OK, &priv->state_flags); in gve_clear_admin_queue_ok()
939 return test_bit(GVE_PRIV_FLAGS_DEVICE_RESOURCES_OK, &priv->state_flags); in gve_get_device_resources_ok()
944 set_bit(GVE_PRIV_FLAGS_DEVICE_RESOURCES_OK, &priv->state_flags); in gve_set_device_resources_ok()
949 clear_bit(GVE_PRIV_FLAGS_DEVICE_RESOURCES_OK, &priv->state_flags); in gve_clear_device_resources_ok()
954 return test_bit(GVE_PRIV_FLAGS_DEVICE_RINGS_OK, &priv->state_flags); in gve_get_device_rings_ok()
959 set_bit(GVE_PRIV_FLAGS_DEVICE_RINGS_OK, &priv->state_flags); in gve_set_device_rings_ok()
964 clear_bit(GVE_PRIV_FLAGS_DEVICE_RINGS_OK, &priv->state_flags); in gve_clear_device_rings_ok()
969 return test_bit(GVE_PRIV_FLAGS_NAPI_ENABLED, &priv->state_flags); in gve_get_napi_enabled()
974 set_bit(GVE_PRIV_FLAGS_NAPI_ENABLED, &priv->state_flags); in gve_set_napi_enabled()
979 clear_bit(GVE_PRIV_FLAGS_NAPI_ENABLED, &priv->state_flags); in gve_clear_napi_enabled()
984 return test_bit(GVE_PRIV_FLAGS_REPORT_STATS, &priv->ethtool_flags); in gve_get_report_stats()
989 clear_bit(GVE_PRIV_FLAGS_REPORT_STATS, &priv->ethtool_flags); in gve_clear_report_stats()
997 return &priv->db_bar2[be32_to_cpu(*block->irq_db_index)]; in gve_irq_doorbell()
1011 return (priv->num_ntfy_blks / 2) + queue_idx; in gve_rx_idx_to_ntfy()
1016 return priv->queue_format == GVE_GQI_QPL_FORMAT || in gve_is_qpl()
1017 priv->queue_format == GVE_DQO_QPL_FORMAT; in gve_is_qpl()
1027 return tx_cfg->num_queues + num_xdp_queues; in gve_num_tx_qpls()
1034 if (priv->queue_format != GVE_GQI_QPL_FORMAT) in gve_num_xdp_qpls()
1037 return priv->num_xdp_queues; in gve_num_xdp_qpls()
1046 return rx_cfg->num_queues; in gve_num_rx_qpls()
1056 return priv->tx_cfg.max_queues + rx_qid; in gve_rx_qpl_id()
1061 return tx_cfg->max_queues + rx_qid; in gve_get_rx_qpl_id()
1077 * out-of-order completions. Set it to two times of ring size. in gve_get_rx_pages_per_qpl_dqo()
1086 if (id < gve_rx_start_qpl_id(&priv->tx_cfg)) in gve_qpl_dma_dir()
1094 return priv->queue_format == GVE_GQI_RDA_FORMAT || in gve_is_gqi()
1095 priv->queue_format == GVE_GQI_QPL_FORMAT; in gve_is_gqi()
1100 return priv->tx_cfg.num_queues + priv->num_xdp_queues; in gve_num_tx_queues()
1105 return priv->tx_cfg.num_queues + queue_id; in gve_xdp_tx_queue_id()