|SUCCESS|dpdk-next-net-intel|cf20807cce| Intel-Testing

sys_stv at intel.com sys_stv at intel.com
Fri Oct 23 00:16:23 CEST 2026


Test-Label: intel-Testing
Test-Status: SUCCESS
_Testing PASS_

DPDK git repo: dpdk-next-net-intel
commit cf20807cce0589e6abf5e026f007e46384df7a7e
Author: Marek Kasiewicz <marek.kasiewicz at intel.com>
Date:   Wed Oct 14 12:24:27 2026 +0000

    net/iavf: fix interrupt callback race on close
    
    In iavf_dev_close(), rte_intr_callback_unregister() can return -EAGAIN
    while the interrupt thread is executing a callback for the same source.
    The return value is ignored, leaving the callback registered.
    
    Close hits that window. It sends virtchnl commands (RSS, promiscuous
    mode, flows), and iavf_dev_interrupt_handler() handles each response.
    The handler clears the pending command before it returns, so the
    thread waiting in iavf_wait_for_msg() can go on to the unregister
    while the interrupt thread is still inside the callback. This is
    likely when the two threads share a CPU.
    
    Two failures follow:
    - The interrupt thread resumes the callback after
      rte_eth_dev_release_port() has set dev->data to NULL, and
      iavf_handle_virtchnl_msg() dereferences it: segmentation fault.
    - The callback returns, but its source stays registered after the
      port is closed. At rte_eal_cleanup(),
      pci_vfio_unmap_resource_primary() closes the interrupt eventfd, and
      the next rebuild of the epoll set aborts the process:
        EAL: PANIC in eal_intr_thread_main():
        Error adding fd 49 epoll_ctl, Bad file descriptor
    
    Use rte_intr_callback_unregister_sync(), as ice_dev_close() does. The
    iavf_dev_init() error path has the same pattern; fix it too.
    
    The sync variant waits for a running callback to return. It would
    spin forever only if called from iavf_dev_interrupt_handler() itself,
    and that handler never closes or re-initializes the port: it hands PF
    events and resets to the iavf-event thread with iavf_dev_event_post().
    A close from any other interrupt thread callback, such as an alarm,
    returns at once, because the iavf source is not active then.
    
    Fixes: 22b123a36d07 ("net/avf: initialize PMD")
    Fixes: e35a5737a746 ("net/iavf: unregister interrupt handler before FD close")
    Cc: stable at dpdk.org
    
    Signed-off-by: Marek Kasiewicz <marek.kasiewicz at intel.com>
    Signed-off-by: Dawid Wesierski <dawid.wesierski at intel.com>
    Acked-by: Bruce Richardson <bruce.richardson at intel.com>

Testing Summary : 18 Case Done, 18 Successful, 0 Failures      

TestPlan:
	pf_smoke: http://git.dpdk.org/tools/dts/tree/test_plans/pf_smoke_test_plan.rst
	vf_smoke: http://git.dpdk.org/tools/dts/tree/test_plans/vf_smoke_test_plan.rst
	virtio_smoke: http://git.dpdk.org/tools/dts/tree/test_plans/virtio_smoke_test_plan.rst

TestSuite:
	pf_smoke: http://git.dpdk.org/tools/dts/tree/tests/TestSuite_pf_smoke.py
	vf_smoke: http://git.dpdk.org/tools/dts/tree/tests/TestSuite_vf_smoke.py
	virtio_smoke: http://git.dpdk.org/tools/dts/tree/tests/TestSuite_virtio_smoke.py


OS : Ubuntu 24.04.4 LTS       
Kernel : 6.8.0-71-generic         
GCC : 13.3.0-6ubuntu2~24.04.1        
NIC : Ethernet Controller XL710 for 40GbE QSFP+         
Target : x86_64-native-linuxapp-gcc      

	Test result details:
	+-------------+---------------------------+-------+
	| suite       | case                      | status|
	+-------------+---------------------------+-------+
	| asan_smoke  | test_rxtx_with_ASan_enable| passed|
	| pf_smoke    | test_pf_jumbo_frames      | passed|
	| pf_smoke    | test_pf_rss               | passed|
	| pf_smoke    | test_pf_tx_rx_queue       | passed|
	| vf_smoke    | test_vf_rss               | passed|
	| vf_smoke    | test_vf_tx_rx_queue       | passed|
	| vf_smoke    | test_vf_jumbo_frames      | n/a   |
	| virtio_smoke| test_virtio_loopback      | passed|
	| virtio_smoke| test_virtio_pvp           | passed|
	+-------------+---------------------------+-------+


OS : Ubuntu 24.04.4 LTS       
Kernel : 6.8.0-87-generic         
GCC : 13.3.0-6ubuntu2~24.04.1        
NIC : Ethernet Controller E810-C for SFP         
Target : x86_64-native-linuxapp-gcc      

	Test result details:
	+-------------+---------------------------+-------+
	| suite       | case                      | status|
	+-------------+---------------------------+-------+
	| asan_smoke  | test_rxtx_with_ASan_enable| passed|
	| pf_smoke    | test_pf_jumbo_frames      | passed|
	| pf_smoke    | test_pf_rss               | passed|
	| pf_smoke    | test_pf_tx_rx_queue       | passed|
	| vf_smoke    | test_vf_jumbo_frames      | passed|
	| vf_smoke    | test_vf_rss               | passed|
	| vf_smoke    | test_vf_tx_rx_queue       | passed|
	| virtio_smoke| test_virtio_loopback      | passed|
	| virtio_smoke| test_virtio_pvp           | passed|
	+-------------+---------------------------+-------+


DPDK STV team


More information about the test-report mailing list