5 #ifndef _RTE_EMPTY_POLL_H 6 #define _RTE_EMPTY_POLL_H 23 #define NUM_FREQS RTE_MAX_LCORE_FREQS 27 #define DROP (NUM_DIRECTIONS * NUM_DEVICES) 29 #define NUM_PRIORITIES 2 51 struct freq_threshold {
55 uint32_t threshold_percent;
56 uint32_t cur_train_iter;
60 struct priority_worker {
65 uint64_t empty_dequeues;
66 uint64_t num_dequeue_pkts;
68 enum queue_state queue_state;
70 uint64_t empty_dequeues_prev;
73 struct freq_threshold thresh[NUM_FREQ];
74 enum freq_val cur_freq;
78 uint64_t edpi_av[BINS_AV];
83 uint32_t iter_counter;
84 uint32_t threshold_ctr;
93 struct priority_worker wrk_stats[NUM_NODES];
104 uint64_t interval_ticks;
105 uint32_t max_train_iter;
108 struct stats_data wrk_data;
115 uint64_t med_base_edpi;
116 uint64_t hgh_base_edpi;
118 enum queue_state state;
140 struct ep_policy *policy);
__rte_experimental uint64_t rte_power_poll_stat_fetch(unsigned int lcore_id)
__rte_experimental int rte_power_poll_stat_update(unsigned int lcore_id, uint8_t nb_pkt)
__rte_experimental void rte_power_empty_poll_stat_free(void)
__rte_experimental void rte_empty_poll_detection(struct rte_timer *tim, void *arg)
__rte_experimental int rte_power_empty_poll_stat_update(unsigned int lcore_id)
#define __rte_cache_aligned
__rte_experimental uint64_t rte_power_empty_poll_stat_fetch(unsigned int lcore_id)
__rte_experimental int rte_power_empty_poll_stat_init(struct ep_params **eptr, uint8_t *freq_tlb, struct ep_policy *policy)