5 #ifndef _RTE_EMPTY_POLL_H
6 #define _RTE_EMPTY_POLL_H
26 #define NUM_FREQS RTE_MAX_LCORE_FREQS
30 #define DROP (NUM_DIRECTIONS * NUM_DEVICES)
32 #define NUM_PRIORITIES 2
54 struct freq_threshold {
58 uint32_t threshold_percent;
59 uint32_t cur_train_iter;
63 struct priority_worker {
68 uint64_t empty_dequeues;
69 uint64_t num_dequeue_pkts;
71 enum queue_state queue_state;
73 uint64_t empty_dequeues_prev;
74 uint64_t num_dequeue_pkts_prev;
77 struct freq_threshold thresh[NUM_FREQ];
78 enum freq_val cur_freq;
82 uint64_t edpi_av[BINS_AV];
86 uint64_t ppi_av[BINS_AV];
91 uint32_t iter_counter;
92 uint32_t threshold_ctr;
101 struct priority_worker wrk_stats[NUM_NODES];
112 uint64_t interval_ticks;
113 uint32_t max_train_iter;
116 struct stats_data wrk_data;
123 uint64_t med_base_edpi;
124 uint64_t hgh_base_edpi;
126 enum queue_state state;
145 int __rte_experimental
147 struct ep_policy *policy);
152 void __rte_experimental
166 int __rte_experimental
181 int __rte_experimental
193 uint64_t __rte_experimental
205 uint64_t __rte_experimental
216 void __rte_experimental
int __rte_experimental rte_power_empty_poll_stat_init(struct ep_params **eptr, uint8_t *freq_tlb, struct ep_policy *policy)
uint64_t __rte_experimental rte_power_poll_stat_fetch(unsigned int lcore_id)
void __rte_experimental rte_empty_poll_detection(struct rte_timer *tim, void *arg)
uint64_t __rte_experimental rte_power_empty_poll_stat_fetch(unsigned int lcore_id)
#define __rte_cache_aligned
int __rte_experimental rte_power_empty_poll_stat_update(unsigned int lcore_id)
int __rte_experimental rte_power_poll_stat_update(unsigned int lcore_id, uint8_t nb_pkt)
void __rte_experimental rte_power_empty_poll_stat_free(void)