| 1168 | } |
| 1169 | |
| 1170 | static int |
| 1171 | configure_eventdev(void) |
| 1172 | { |
| 1173 | struct rte_event_queue_conf queue_conf; |
| 1174 | struct rte_event_dev_config devconf; |
| 1175 | struct rte_event_dev_info info; |
| 1176 | uint32_t queue_count; |
| 1177 | uint32_t port_count; |
| 1178 | int ret; |
| 1179 | uint8_t qid; |
| 1180 | |
| 1181 | if (!rte_event_dev_count()) { |
| 1182 | /* If there is no hardware eventdev, or no software vdev was |
| 1183 | * specified on the command line, create an instance of |
| 1184 | * event_sw. |
| 1185 | */ |
| 1186 | LOG_DBG("Failed to find a valid event device... " |
| 1187 | "testing with event_sw device\n"); |
| 1188 | TEST_ASSERT_SUCCESS(rte_vdev_init("event_sw0", NULL), |
| 1189 | "Error creating eventdev"); |
| 1190 | evdev = rte_event_dev_get_dev_id("event_sw0"); |
| 1191 | } |
| 1192 | |
| 1193 | ret = rte_event_dev_info_get(evdev, &info); |
| 1194 | TEST_ASSERT_SUCCESS(ret, "Failed to get event dev info\n"); |
| 1195 | |
| 1196 | evdev_set_conf_values(&devconf, &info); |
| 1197 | |
| 1198 | ret = rte_event_dev_configure(evdev, &devconf); |
| 1199 | TEST_ASSERT_SUCCESS(ret, "Failed to configure eventdev\n"); |
| 1200 | |
| 1201 | /* Set up event queue */ |
| 1202 | ret = rte_event_dev_attr_get(evdev, RTE_EVENT_DEV_ATTR_QUEUE_COUNT, |
| 1203 | &queue_count); |
| 1204 | TEST_ASSERT_SUCCESS(ret, "Queue count get failed\n"); |
| 1205 | TEST_ASSERT_EQUAL(queue_count, 2, "Unexpected queue count\n"); |
| 1206 | |
| 1207 | qid = TEST_APP_EV_QUEUE_ID; |
| 1208 | ret = rte_event_queue_setup(evdev, qid, NULL); |
| 1209 | TEST_ASSERT_SUCCESS(ret, "Failed to setup queue=%d\n", qid); |
| 1210 | |
| 1211 | queue_conf.nb_atomic_flows = info.max_event_queue_flows; |
| 1212 | queue_conf.nb_atomic_order_sequences = 32; |
| 1213 | queue_conf.schedule_type = RTE_SCHED_TYPE_ATOMIC; |
| 1214 | queue_conf.priority = RTE_EVENT_DEV_PRIORITY_HIGHEST; |
| 1215 | queue_conf.event_queue_cfg = RTE_EVENT_QUEUE_CFG_SINGLE_LINK; |
| 1216 | |
| 1217 | qid = TEST_CRYPTO_EV_QUEUE_ID; |
| 1218 | ret = rte_event_queue_setup(evdev, qid, &queue_conf); |
| 1219 | TEST_ASSERT_SUCCESS(ret, "Failed to setup queue=%u\n", qid); |
| 1220 | |
| 1221 | /* Set up event port */ |
| 1222 | ret = rte_event_dev_attr_get(evdev, RTE_EVENT_DEV_ATTR_PORT_COUNT, |
| 1223 | &port_count); |
| 1224 | TEST_ASSERT_SUCCESS(ret, "Port count get failed\n"); |
| 1225 | TEST_ASSERT_EQUAL(port_count, 1, "Unexpected port count\n"); |
| 1226 | |
| 1227 | ret = rte_event_port_setup(evdev, TEST_APP_PORT_ID, NULL); |
no test coverage detected