struct rte_mempool *pool = t->pool;
struct perf_elt *m;
struct rte_event_timer_adapter **adptr = t->timer_adptr;
+ struct rte_event_timer tim;
uint64_t timeout_ticks = opt->expiry_nsec / opt->timer_tick_nsec;
+ memset(&tim, 0, sizeof(struct rte_event_timer));
timeout_ticks = opt->optm_timer_tick_nsec ?
(timeout_ticks * opt->timer_tick_nsec)
/ opt->optm_timer_tick_nsec : timeout_ticks;
timeout_ticks += timeout_ticks ? 0 : 1;
- const struct rte_event_timer tim = {
- .ev.op = RTE_EVENT_OP_NEW,
- .ev.queue_id = p->queue_id,
- .ev.sched_type = t->opt->sched_type_list[0],
- .ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL,
- .ev.event_type = RTE_EVENT_TYPE_TIMER,
- .state = RTE_EVENT_TIMER_NOT_ARMED,
- .timeout_ticks = timeout_ticks,
- };
+ tim.ev.event_type = RTE_EVENT_TYPE_TIMER;
+ tim.ev.op = RTE_EVENT_OP_NEW;
+ tim.ev.sched_type = t->opt->sched_type_list[0];
+ tim.ev.queue_id = p->queue_id;
+ tim.ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL;
+ tim.state = RTE_EVENT_TIMER_NOT_ARMED;
+ tim.timeout_ticks = timeout_ticks;
if (opt->verbose_level > 1)
printf("%s(): lcore %d\n", __func__, rte_lcore_id());
struct rte_mempool *pool = t->pool;
struct perf_elt *m[BURST_SIZE + 1] = {NULL};
struct rte_event_timer_adapter **adptr = t->timer_adptr;
+ struct rte_event_timer tim;
uint64_t timeout_ticks = opt->expiry_nsec / opt->timer_tick_nsec;
+ memset(&tim, 0, sizeof(struct rte_event_timer));
timeout_ticks = opt->optm_timer_tick_nsec ?
(timeout_ticks * opt->timer_tick_nsec)
/ opt->optm_timer_tick_nsec : timeout_ticks;
timeout_ticks += timeout_ticks ? 0 : 1;
- const struct rte_event_timer tim = {
- .ev.op = RTE_EVENT_OP_NEW,
- .ev.queue_id = p->queue_id,
- .ev.sched_type = t->opt->sched_type_list[0],
- .ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL,
- .ev.event_type = RTE_EVENT_TYPE_TIMER,
- .state = RTE_EVENT_TIMER_NOT_ARMED,
- .timeout_ticks = timeout_ticks,
- };
+ tim.ev.event_type = RTE_EVENT_TYPE_TIMER;
+ tim.ev.op = RTE_EVENT_OP_NEW;
+ tim.ev.sched_type = t->opt->sched_type_list[0];
+ tim.ev.queue_id = p->queue_id;
+ tim.ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL;
+ tim.state = RTE_EVENT_TIMER_NOT_ARMED;
+ tim.timeout_ticks = timeout_ticks;
if (opt->verbose_level > 1)
printf("%s(): lcore %d\n", __func__, rte_lcore_id());
memset(&queue_conf, 0,
sizeof(struct rte_event_eth_rx_adapter_queue_conf));
queue_conf.ev.sched_type = opt->sched_type_list[0];
- for (prod = 0; prod < rte_eth_dev_count(); prod++) {
+ RTE_ETH_FOREACH_DEV(prod) {
uint32_t cap;
ret = rte_event_eth_rx_adapter_caps_get(opt->dev_id,
int
perf_ethdev_setup(struct evt_test *test, struct evt_options *opt)
{
- int i;
+ uint16_t i;
struct test_perf *t = evt_test_priv(test);
struct rte_eth_conf port_conf = {
.rxmode = {
.mq_mode = ETH_MQ_RX_RSS,
.max_rx_pkt_len = ETHER_MAX_LEN,
.split_hdr_size = 0,
- .header_split = 0,
- .hw_ip_checksum = 0,
- .hw_vlan_filter = 0,
- .hw_vlan_strip = 0,
- .hw_vlan_extend = 0,
- .jumbo_frame = 0,
- .hw_strip_crc = 1,
},
.rx_adv_conf = {
.rss_conf = {
opt->prod_type == EVT_PROD_TYPE_EVENT_TIMER_ADPTR)
return 0;
- if (!rte_eth_dev_count()) {
+ if (!rte_eth_dev_count_avail()) {
evt_err("No ethernet ports found.");
return -ENODEV;
}
- for (i = 0; i < rte_eth_dev_count(); i++) {
+ RTE_ETH_FOREACH_DEV(i) {
+ struct rte_eth_dev_info dev_info;
+ struct rte_eth_conf local_port_conf = port_conf;
+
+ rte_eth_dev_info_get(i, &dev_info);
+
+ local_port_conf.rx_adv_conf.rss_conf.rss_hf &=
+ dev_info.flow_type_rss_offloads;
+ if (local_port_conf.rx_adv_conf.rss_conf.rss_hf !=
+ port_conf.rx_adv_conf.rss_conf.rss_hf) {
+ evt_info("Port %u modified RSS hash function based on hardware support,"
+ "requested:%#"PRIx64" configured:%#"PRIx64"\n",
+ i,
+ port_conf.rx_adv_conf.rss_conf.rss_hf,
+ local_port_conf.rx_adv_conf.rss_conf.rss_hf);
+ }
- if (rte_eth_dev_configure(i, 1, 1,
- &port_conf)
- < 0) {
+ if (rte_eth_dev_configure(i, 1, 1, &local_port_conf) < 0) {
evt_err("Failed to configure eth port [%d]", i);
return -EINVAL;
}
void perf_ethdev_destroy(struct evt_test *test, struct evt_options *opt)
{
- int i;
+ uint16_t i;
RTE_SET_USED(test);
if (opt->prod_type == EVT_PROD_TYPE_ETH_RX_ADPTR) {
- for (i = 0; i < rte_eth_dev_count(); i++) {
+ RTE_ETH_FOREACH_DEV(i) {
rte_event_eth_rx_adapter_stop(i);
rte_eth_dev_stop(i);
- rte_eth_dev_close(i);
}
}
}