test/interrupt: account for race with callback

Because the eal interrupt framework can race when invoking the callback
and a separate unregister call, the test needs to accommodate the chance
that the two collide.  Do this by checking the return value of unregister
against the race-condition flag (EAGAIN).

Fixes: f1a6c22424ce ("app/test: update interrupts test")
Cc: stable@dpdk.org

Signed-off-by: Aaron Conole <aconole@redhat.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
This commit is contained in:
Aaron Conole 2019-08-08 13:38:35 -04:00 committed by Thomas Monjalon
parent a6069abe02
commit 73afc9df00

View File

@ -370,9 +370,13 @@ test_interrupt_full_path_check(enum test_interrupt_handle_type intr_type)
rte_delay_ms(TEST_INTERRUPT_CHECK_INTERVAL);
rte_delay_ms(TEST_INTERRUPT_CHECK_INTERVAL);
if (rte_intr_callback_unregister(&test_intr_handle,
test_interrupt_callback, &test_intr_handle) < 0)
return -1;
while ((count =
rte_intr_callback_unregister(&test_intr_handle,
test_interrupt_callback,
&test_intr_handle)) < 0) {
if (count != -EAGAIN)
return -1;
}
if (flag == 0) {
printf("callback has not been called\n");