sched: remove useless malloc in PIE data init
[dpdk.git] / examples / l3fwd / l3fwd_event.c
index ebddd8f..dd9eafa 100644 (file)
@@ -70,10 +70,14 @@ l3fwd_eth_dev_port_setup(struct rte_eth_conf *port_conf)
                printf("Creating queues: nb_rxq=%d nb_txq=1...\n",
                       evt_rsrc->eth_rx_queues);
 
-               rte_eth_dev_info_get(port_id, &dev_info);
-               if (dev_info.tx_offload_capa & DEV_TX_OFFLOAD_MBUF_FAST_FREE)
+               ret = rte_eth_dev_info_get(port_id, &dev_info);
+               if (ret != 0)
+                       rte_panic("Error during getting device (port %u) info:"
+                                 "%s\n", port_id, strerror(-ret));
+
+               if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE)
                        local_port_conf.txmode.offloads |=
-                                               DEV_TX_OFFLOAD_MBUF_FAST_FREE;
+                                               RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE;
 
                local_port_conf.rx_adv_conf.rss_conf.rss_hf &=
                                                dev_info.flow_type_rss_offloads;
@@ -211,11 +215,35 @@ void
 l3fwd_event_resource_setup(struct rte_eth_conf *port_conf)
 {
        struct l3fwd_event_resources *evt_rsrc = l3fwd_get_eventdev_rsrc();
-       const event_loop_cb lpm_event_loop[2][2] = {
-               [0][0] = lpm_event_main_loop_tx_d,
-               [0][1] = lpm_event_main_loop_tx_d_burst,
-               [1][0] = lpm_event_main_loop_tx_q,
-               [1][1] = lpm_event_main_loop_tx_q_burst,
+       const event_loop_cb lpm_event_loop[2][2][2] = {
+               [0][0][0] = lpm_event_main_loop_tx_d,
+               [0][0][1] = lpm_event_main_loop_tx_d_burst,
+               [0][1][0] = lpm_event_main_loop_tx_q,
+               [0][1][1] = lpm_event_main_loop_tx_q_burst,
+               [1][0][0] = lpm_event_main_loop_tx_d_vector,
+               [1][0][1] = lpm_event_main_loop_tx_d_burst_vector,
+               [1][1][0] = lpm_event_main_loop_tx_q_vector,
+               [1][1][1] = lpm_event_main_loop_tx_q_burst_vector,
+       };
+       const event_loop_cb em_event_loop[2][2][2] = {
+               [0][0][0] = em_event_main_loop_tx_d,
+               [0][0][1] = em_event_main_loop_tx_d_burst,
+               [0][1][0] = em_event_main_loop_tx_q,
+               [0][1][1] = em_event_main_loop_tx_q_burst,
+               [1][0][0] = em_event_main_loop_tx_d_vector,
+               [1][0][1] = em_event_main_loop_tx_d_burst_vector,
+               [1][1][0] = em_event_main_loop_tx_q_vector,
+               [1][1][1] = em_event_main_loop_tx_q_burst_vector,
+       };
+       const event_loop_cb fib_event_loop[2][2][2] = {
+               [0][0][0] = fib_event_main_loop_tx_d,
+               [0][0][1] = fib_event_main_loop_tx_d_burst,
+               [0][1][0] = fib_event_main_loop_tx_q,
+               [0][1][1] = fib_event_main_loop_tx_q_burst,
+               [1][0][0] = fib_event_main_loop_tx_d_vector,
+               [1][0][1] = fib_event_main_loop_tx_d_burst_vector,
+               [1][1][0] = fib_event_main_loop_tx_q_vector,
+               [1][1][1] = fib_event_main_loop_tx_q_burst_vector,
        };
        uint32_t event_queue_cfg;
        int ret;
@@ -249,6 +277,15 @@ l3fwd_event_resource_setup(struct rte_eth_conf *port_conf)
        if (ret < 0)
                rte_exit(EXIT_FAILURE, "Error in starting eventdev");
 
-       evt_rsrc->ops.lpm_event_loop = lpm_event_loop[evt_rsrc->tx_mode_q]
-                                                      [evt_rsrc->has_burst];
+       evt_rsrc->ops.lpm_event_loop =
+               lpm_event_loop[evt_rsrc->vector_enabled][evt_rsrc->tx_mode_q]
+                             [evt_rsrc->has_burst];
+
+       evt_rsrc->ops.em_event_loop =
+               em_event_loop[evt_rsrc->vector_enabled][evt_rsrc->tx_mode_q]
+                            [evt_rsrc->has_burst];
+
+       evt_rsrc->ops.fib_event_loop =
+               fib_event_loop[evt_rsrc->vector_enabled][evt_rsrc->tx_mode_q]
+                             [evt_rsrc->has_burst];
 }