[dpdk-dev] [RFC v2] sched: parameterize QoS traffic-classes and queues
Stephen Hemminger
stephen at networkplumber.org
Fri Feb 16 21:10:56 CET 2018
On Fri, 16 Feb 2018 15:44:13 +0000
alangordondewar at gmail.com wrote:
> - qindex = tc_index * 4;
> -
> - pipe->wrr_tokens[qindex] = (grinder->wrr_tokens[0] & grinder->wrr_mask[0])
> - >> RTE_SCHED_WRR_SHIFT;
> - pipe->wrr_tokens[qindex + 1] = (grinder->wrr_tokens[1] & grinder->wrr_mask[1])
> - >> RTE_SCHED_WRR_SHIFT;
> - pipe->wrr_tokens[qindex + 2] = (grinder->wrr_tokens[2] & grinder->wrr_mask[2])
> - >> RTE_SCHED_WRR_SHIFT;
> - pipe->wrr_tokens[qindex + 3] = (grinder->wrr_tokens[3] & grinder->wrr_mask[3])
> - >> RTE_SCHED_WRR_SHIFT;
> + uint32_t q;
> + uint8_t tokens;
> +
> + qindex = tc_index * RTE_SCHED_QUEUES_PER_TRAFFIC_CLASS;
> + for (q = 0; q < RTE_SCHED_QUEUES_PER_TRAFFIC_CLASS; q++) {
> + tokens = (grinder->wrr_tokens[q] & grinder->wrr_mask[q]) >>
> + RTE_SCHED_WRR_SHIFT;
> + pipe->wrr_tokens[qindex + q] = tokens;
You could use #pragma to tell compiler to unroll the loop which would make it
as fast as the original.
More information about the dev
mailing list