MCPcopy Create free account
hub / github.com/F-Stack/f-stack / optimize_bucket_parameters

Function optimize_bucket_parameters

dpdk/drivers/event/octeontx/timvf_evdev.c:78–115  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

76}
77
78static int
79optimize_bucket_parameters(struct timvf_ring *timr)
80{
81 uint32_t hbkts;
82 uint32_t lbkts;
83 uint64_t tck_nsec;
84
85 hbkts = rte_align32pow2(timr->nb_bkts);
86 tck_nsec = RTE_ALIGN_MUL_CEIL(timr->max_tout / (hbkts - 1), 10);
87
88 if ((tck_nsec < 1000 || hbkts > TIM_MAX_BUCKETS))
89 hbkts = 0;
90
91 lbkts = rte_align32prevpow2(timr->nb_bkts);
92 tck_nsec = RTE_ALIGN_MUL_CEIL((timr->max_tout / (lbkts - 1)), 10);
93
94 if ((tck_nsec < 1000 || hbkts > TIM_MAX_BUCKETS))
95 lbkts = 0;
96
97 if (!hbkts && !lbkts)
98 return 0;
99
100 if (!hbkts) {
101 timr->nb_bkts = lbkts;
102 goto end;
103 } else if (!lbkts) {
104 timr->nb_bkts = hbkts;
105 goto end;
106 }
107
108 timr->nb_bkts = (hbkts - timr->nb_bkts) <
109 (timr->nb_bkts - lbkts) ? hbkts : lbkts;
110end:
111 timr->get_target_bkt = bkt_and;
112 timr->tck_nsec = RTE_ALIGN_MUL_CEIL((timr->max_tout /
113 (timr->nb_bkts - 1)), 10);
114 return 1;
115}
116
117static int
118timvf_ring_start(const struct rte_event_timer_adapter *adptr)

Callers 1

timvf_ring_createFunction · 0.85

Calls 2

rte_align32pow2Function · 0.50
rte_align32prevpow2Function · 0.50

Tested by

no test coverage detected